Skip to content
This repository has been archived by the owner on May 5, 2022. It is now read-only.
/ swc-register Public archive

An SWC require hook and jest transformer with full decorator support

License

Notifications You must be signed in to change notification settings

sylodev/swc-register

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@sylo-digital/swc-register

This is a require hook and jest transformer to transform .ts files with SWC that handles falling back to and caching the result of tsc for files with decorators. SWC has some funky issues when it comes to decorators, making it incompatible with NestJS projects and other libraries that use decorators. This transformer will use SWC for files without decorators as normal, but for files with decorators it will use tsc to compile the file and cache the result on disk by the files hash.

Other attempts like @swc/register and @swc-node/register do not play well with decorators, and do not have simple jest support with decorators.

This is a replacement for a previous attempt, @sylo-digital/swc-decorator-fix. The previous attempt worked fine, but it lacked jest support and when used with @swc/register like it was intended to it meant compiling the same files multiple times.

usage

You can enable debug mode by setting NODE_DEBUG to swc-register.

  • Install with pnpm add @sylo-digital/swc-register @swc/core
  • For NodeJS run with node -r @sylo-digital/swc-register ./src/index.ts
  • For Jest add transform: { "^.+\\.tsx?$": "@sylo-digital/swc-register" } to your jest.config.js
    • This is currently a hack until Jest 28 where @sylo-digital/swc-register/jest will work.
    • Debug mode won't show everything with jest because jest does its own caching on top of ours.

todo

  • Copy tests from @sylo-digital/swc-decorator-fix
  • Disable caching when running with jest, it has its own caching.

About

An SWC require hook and jest transformer with full decorator support

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published