Import (compile and cache on the fly) TypeScript files dynamically with ease.
2. Usage
3. Features
npm i ts-importts
import { tsImport } from 'ts-import';const bootstrap = async () => {
const filePath =
/home/user/file.ts;
const compiled = await tsImport.compile(filePath);
};bootstrap();
`
Features
- Asynchronous - uses import over require.
- Caches JavaScript files into directory inside node_modules/ts-import/cache (pretty much like typescript-require). Removing node_modules removes cache as well.
- Compiler class - allows making multiple instances of compiler with different configurations and overriding default settings to all of them (i.e. logger) via static "defaults" property: Compiler.defaults = { ...customDefaults }. tsImport object is a default instance of Compiler class suitable for majority of use-cases.
- Fast - I've benchmarked ways to compare detecting file changes with fs module and checking mtimeMs turned out to be fastest (https://jsperf.com/fs-stat-mtime-vs-mtimems).
- Highly flexible and configurable - all tsc flags are available for customization. By default uses: --module commonjs, --target es2015, --downlevelIteration, --emitDecoratorMetadata, --experimentalDecorators, --resolveJsonModule`.