0.0.2 • Published 2 years ago

@live/swc-wallaby v0.0.2

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

@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/@node-rs+helper@1.3.3/node_modules/@node-rs/helper/lib/loader.js:50:11)
    at file:///Users/Vaughan/dev-mono/thirtyfive/node_modules/.pnpm/@live+swc-wallaby@0.0.1/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.