diff --git a/.gitignore b/.gitignore index 5291ecd7..25177c4b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ unit-tests-result.json build target .npmrc +src/providers/tree-sitter-requirements.wasm diff --git a/package.json b/package.json index fcf2ed35..92b6e144 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,11 @@ "test": "c8 npm run tests", "tests": "mocha --config .mocharc.json --grep \".*analysis module.*\" --invert", "tests:rep": "mocha --reporter-option maxDiffSize=0 --reporter json > unit-tests-result.json", + "pretest": "cp node_modules/tree-sitter-requirements/tree-sitter-requirements.wasm src/providers/tree-sitter-requirements.wasm", "precompile": "rm -rf dist", "compile": "tsc -p tsconfig.json", - "compile:dev": "tsc -p tsconfig.dev.json" + "compile:dev": "tsc -p tsconfig.dev.json", + "postcompile": "cp node_modules/tree-sitter-requirements/tree-sitter-requirements.wasm dist/src/providers/tree-sitter-requirements.wasm" }, "dependencies": { "@babel/core": "^7.23.2", diff --git a/src/providers/requirements_parser.js b/src/providers/requirements_parser.js index d06f30ec..55001a53 100644 --- a/src/providers/requirements_parser.js +++ b/src/providers/requirements_parser.js @@ -1,12 +1,13 @@ -import { fileURLToPath } from 'url'; +import { readFile } from 'node:fs/promises'; import { Language, Parser, Query } from 'web-tree-sitter'; -const wasmPath = fileURLToPath(import.meta.resolve('tree-sitter-requirements/tree-sitter-requirements.wasm')); +const wasmUrl = new URL('./tree-sitter-requirements.wasm', import.meta.url); async function init() { await Parser.init(); - return await Language.load(wasmPath); + const wasmBytes = new Uint8Array(await readFile(wasmUrl)); + return await Language.load(wasmBytes); } export async function getParser() {