@live/swc-wallaby
v0.0.2
Published
**TODO: Binaries/package are not published to npm yet.**
Downloads
1
Readme
@live/swc-wallaby
TODO: Binaries/package are not published to npm yet.
Returns ranges
as needed by Wallaby custom compilers.
- import * as swc from '@swc/core'
+ import * as swc from '@live/swc-wallaby'
- const {code, map} = swc.transformSync(...)
+ const {code, map, ranges} = swc.transformSync(...)
See: https://wallabyjs.com/docs/config/compilers.html#writing-a-custom-compiler
Why
Parsing AST with SWC and sending to JS is currently slow in SWC.
The JS-based parser/visitor is being deprecated, it will be Rust-only in future.
When using a JS-based visitor, the spans (locations) are raw byte positions without line number which need processing. Also, on consecutive calls, the byte positions begin from the end of the previous file.
Building
npm run build-native
cd example
node .
Reference
See: https://github.com/wallabyjs/public/issues/2823
Project adapted from: https://github.com/vercel/next.js/tree/canary/packages/next/build/swc
Troubleshooting
Error: Can not load bindings
Error: Can not load bindings
at loadBinding (/Users/Vaughan/dev-mono/thirtyfive/node_modules/.pnpm/@[email protected]/node_modules/@node-rs/helper/lib/loader.js:50:11)
at file:///Users/Vaughan/dev-mono/thirtyfive/node_modules/.pnpm/@[email protected]/node_modules/@live/swc-wallaby/index.js:16:18
at ModuleJob.run (node:internal/modules/esm/module_job:193:25)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Will usually be because of bindings compiled to wrong arch...x64 instead of arm64.
You can check what package the loader is trying to load and then check what one is installed.
Check the package.json#optionalDepedencies
to make sure you arch is in there. I think this can be done automatically by napi with a config setting but I couldn't be bothered.
I just ran this pnpm link /Users/Vaughan/dev/fork/+swc/swc-wallaby/npm/darwin-arm64
You must run pnpm link -g @live/swc-wallaby
to have it link to here.