@irida-app/ts-alias-file-import
v0.0.2
Published
`@irida-app/ts-alias-file-import` is a utility for importing files using TypeScript's `paths` aliases defined in `tsconfig.json`. It resolves alias paths and reads the corresponding files, returning them as Buffers.
Readme
@irida-app/ts-alias-file-import
@irida-app/ts-alias-file-import is a utility for importing files using TypeScript's paths aliases defined in tsconfig.json. It resolves alias paths and reads the corresponding files, returning them as Buffers.
Note:
This package is particularly useful for server-side file imports in API routes when working with Next.js App Router or Expo Router. It helps resolve file paths in your application structure by leveraging TypeScript's aliasing system.
Features
- Resolves file paths based on TypeScript
pathsandbaseUrlconfiguration. - Supports file imports using alias patterns (e.g.
@/components/*). - Reads the matched file as a Buffer.
Installation
npm install @irida-app/ts-alias-file-importUsage
First, make sure you have path aliases configured in your tsconfig.json:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
}
}Then, use @irida-app/ts-alias-file-import to load a file using its alias:
import { importFile } from '@irida-app/ts-alias-file-import';
async function loadFile() {
const fileBuffer = await importFile('@/components/MyComponent.tsx');
if (fileBuffer) {
console.log('File loaded successfully!');
} else {
console.log('File not found or an error occurred.');
}
}
loadFile();API
importFile(aliasPath: string): Promise<Buffer | null>
- aliasPath: The path using a TypeScript alias (e.g.,
@/components/MyComponent). - Returns: A promise that resolves to the file content as a
Buffer, ornullif the file is not found.
To-Do's
- Support for prefixed
*.tsconfig.jsonfiles: Currently, the package looks fortsconfig.jsonby default. A future enhancement will allow it to handle files with custom prefixes, such asdev.tsconfig.jsonorprod.tsconfig.json, for more flexible development environments. - More features: Additional capabilities may include file caching or improved error handling.
PRs are welcome! If you have ideas or want to help implement new features, feel free to contribute.
License
MIT
