0.34.0 • Published 12 months ago

@oxc-parser/wasm v0.34.0

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

About

Experimental wasm package for the oxc parser, with full TypeScript typings support.

This package is built with different wasm-pack's target builds:

  • wasm-pack build --target web for bundler (webpack / vite) consumption.
  • wasm-pack build --target nodejs for node.js

And exports the files as

"main": "./node/oxc_parser_wasm.js",
"browser": "./web/oxc_parser_wasm.js",
"types": "./node/oxc_parser_wasm.d.ts",

Checkout oxc-parser for usage in node.js via napi bindings.

Source code: https://github.com/oxc-project/oxc/tree/main/wasm/parser

Usage

import initWasm, { parseSync } from '@oxc-parser/wasm';

async function main() {
  await initWasm();

  const code = 'let foo';
  const result = parseSync(code, { sourceFilename: 'test.ts' });
  console.log(result);
}

main();

Notes

UTF8 vs UTF16 byte offsets

The span value returned from the ASTs and diagnostics is in UTF8 byte offsets. Converting to UTF16 byte offsets:

let sourceTextUtf8 = new TextEncoder().encode(sourceText);

const convertToUtf8 = (sourceTextUtf8, d) => {
  return new TextDecoder().decode(sourceTextUtf8.slice(0, d)).length;
};

const diagnostics = result.errors.map((d) => ({
  from: convertToUtf8(sourceTextUtf8, d.start),
  to: convertToUtf8(sourceTextUtf8, d.end),
  severity: d.severity.toLowerCase(),
  message: d.message,
}));

Vite

wasm-pack build --target web is used for the wasm build.

You may need something like https://github.com/nshen/vite-plugin-wasm-pack to get it working with vite, otherwise vite will load the wasm file as a HTML file causing a CompileError: WebAssembly.instantiate(): expected magic word error.

0.34.0

12 months ago

0.33.0

12 months ago

0.32.0

12 months ago

0.30.5

1 year ago

0.30.4

1 year ago

0.30.3

1 year ago

0.30.2

1 year ago

0.31.0

1 year ago

0.30.1

1 year ago

0.30.0

1 year ago

0.29.0

1 year ago

0.28.0

1 year ago

0.27.0

1 year ago

0.26.0

1 year ago

0.21.0

1 year ago

0.20.0

1 year ago

0.19.0

1 year ago

0.17.2

1 year ago

0.16.3

1 year ago

0.14.0

1 year ago

0.15.0

1 year ago

0.16.0

1 year ago

0.13.3

1 year ago

0.17.0

1 year ago

0.16.1

1 year ago

0.13.4

1 year ago

0.18.0

1 year ago

0.17.1

1 year ago

0.16.2

1 year ago

0.13.5

1 year ago

0.24.3

1 year ago

0.24.2

1 year ago

0.25.0

1 year ago

0.24.1

1 year ago

0.24.0

1 year ago

0.23.1

1 year ago

0.23.0

1 year ago

0.22.1

1 year ago

0.22.0

1 year ago

0.0.6-alpha.0

2 years ago

0.0.6-alpha.1

2 years ago

0.0.6-alpha.2

2 years ago

0.1.0

2 years ago

0.0.6-alpha.3

2 years ago

0.0.6-alpha.4

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago