useafterfree / swc-node

Faster ts-node without typecheck

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

swc-node

πŸš€ Help me to become a full-time open-source developer by sponsoring me on Github

Fast TypeScript/JavaScript transformer without node-gyp and postinstall script.

Build Status Downloads License

Usage

Run TypeScript with node, without compilation or typechecking:

npm i -D @swc-node/register
node -r @swc-node/register script.ts

Support matrix

node10 node12 node14 node16
Windows x64 βœ“ βœ“ βœ“ βœ“
Windows x32 βœ“ βœ“ βœ“ βœ“
Windows arm64 βœ“ βœ“ βœ“ βœ“
macOS x64 βœ“ βœ“ βœ“ βœ“
macOS arm64 βœ“ βœ“ βœ“ βœ“
Linux x64 gnu βœ“ βœ“ βœ“ βœ“
Linux x64 musl βœ“ βœ“ βœ“ βœ“
Linux arm gnueabihf βœ“ βœ“ βœ“ βœ“
Linux arm64 gnu βœ“ βœ“ βœ“ βœ“
Linux arm64 musl βœ“ βœ“ βœ“ βœ“
Android arm64 βœ“ βœ“ βœ“ βœ“
FreeBSD x64 βœ“ βœ“ βœ“ βœ“

@swc-node/core

Fastest TypeScript transformer.

Detail: @swc-node/core

Benchmark

transform RxJS AjaxObservable.ts to ES2015 & CommonJS JavaScript. Benchmark code: bench

Hardware info:

Model Name: MacBook Pro
Model Identifier: MacBookPro15,1
Processor Name: 6-Core Intel Core i7
Processor Speed: 2.6 GHz
Number of Processors: 1
Total Number of Cores: 6
L2 Cache (per Core): 256 KB
L3 Cache: 12 MB
Hyper-Threading Technology: Enabled
Memory: 16 GB

transformSync

esbuild x 510 ops/sec Β±1.28% (88 runs sampled)
@swc-node/core x 438 ops/sec Β±1.00% (88 runs sampled)
typescript x 28.83 ops/sec Β±10.20% (52 runs sampled)
babel x 24.21 ops/sec Β±10.66% (46 runs sampled)
Transform rxjs/AjaxObservable.ts benchmark bench suite: Fastest is esbuild

transform parallel

UV_THREADPOOL_SIZE=11 yarn bench

@swc-node/core x 1,253 ops/sec Β±0.90% (75 runs sampled)
esbuild x 914 ops/sec Β±1.31% (77 runs sampled)
Transform rxjs/AjaxObservable.ts parallel benchmark bench suite: Fastest is @swc-node/core

yarn bench

@swc-node/core x 1,123 ops/sec Β±0.95% (77 runs sampled)
esbuild x 847 ops/sec Β±3.74% (71 runs sampled)
Transform rxjs/AjaxObservable.ts parallel benchmark bench suite: Fastest is @swc-node/core

@swc-node/jest

Fastest jest TypeScript transformer.

Detail: @swc-node/jest

Performance glance

Testing in pure TypeScript project, compile target is ES2018. Running with npx jest --no-cache, ts-jest was configured with isolatedModules: true

ts-jest

Test Suites: 49 passed, 49 total
Tests:       254 passed, 254 total
Snapshots:   53 passed, 53 total
Time:        54.631 s
Ran all test suites.
✨  Done in 62.71s.

@swc-node/jest

Test Suites: 49 passed, 49 total
Tests:       254 passed, 254 total
Snapshots:   53 passed, 53 total
Time:        10.511 s
Ran all test suites.
✨  Done in 14.34s.

@swc-node/register

Faster ts-node/register/transpile-only alternative.

Detail: @swc-node/register

Development

Install dependencies

  • pnpm latest

Build and test

  • pnpm install
  • pnpm test

Sponsors

sponsors

About

Faster ts-node without typecheck

License:MIT License


Languages

Language:TypeScript 98.1%Language:JavaScript 1.6%Language:Shell 0.2%