swrun
v0.6.2
Published
Typescript node runtime powered by swc-node
Downloads
586
Readme
swrun
forked from oxrun, the swc version of oxrun (swrun)
Typescript node runtime powered by swc-node
Why?
Due to the current lack of support for the emitDecoratorMetadata
configuration in tsx tsx#37, this can cause exceptions when running some TypeORM projects (e.g., nestjs). Additionally, oxc-node is still in the development stage and does not support hybrid mode oxc-node#80.
Feature
🚀 Super fast typescript transformer by swc
🧭 Run ts file with a single command
🙅 No installation required
👜 Import typescript in nodejs as a module
Usage
CLI
npx swrun hello.ts
or install as dependency
pnpm add swrun -D
{
"scripts": {
"dev": "swrun scripts/dev.ts"
}
}
Watch
Swrun supports watch mode with watch
and this will automatically re-run your script whenever any of files under root dir changed.
npx swrun watch hello.ts
Programmatic
// hello.ts
const msg = 'hello'
console.log(msg)
export default msg
// entry.js
import swrun from 'swrun'
(async () => {
await swrun('./hello.ts') // output: hello
const mod = await swrun.import('./hello.ts')
console.log(mod.default) // output: hello
})()
Props
props.include
- Type:
string
|string[]
- Default:
false
Watch can be a boolean or string (Can be set to a string of the path), empty string ''
will be parse as a truthy value like true
.
swrun watch hello.ts --include ./other-dep.txt --include "./other-deps/*"
props.exclude
- Type:
string
- Default:
undefined
swrun watch hello.ts --exclude ./**/*.test.js
Development
- Clone this repository
- Install dependencies using
pnpm install
- Run
pnpm build
- Run
pnpm test
Credits
The swrun project is heavily inspired by:
- bundle-require, created by EGOIST
- jiti, created by pi0 and maintained by unjs
- tsx, created by Hiroki Osame