From 28935bbc432a7fbe81f7e437015f2a82340223c5 Mon Sep 17 00:00:00 2001 From: Abian Suarez Date: Wed, 28 Jan 2026 20:05:42 +0000 Subject: [PATCH] fix: wasm path --- .changeset/tidy-flies-fix.md | 5 +++++ apps/server/src/code/parser.ts | 32 ++++++++++++++------------------ 2 files changed, 19 insertions(+), 18 deletions(-) create mode 100644 .changeset/tidy-flies-fix.md diff --git a/.changeset/tidy-flies-fix.md b/.changeset/tidy-flies-fix.md new file mode 100644 index 0000000..42e03ef --- /dev/null +++ b/.changeset/tidy-flies-fix.md @@ -0,0 +1,5 @@ +--- +"code-recall": patch +--- + +fix: wasm path resolve diff --git a/apps/server/src/code/parser.ts b/apps/server/src/code/parser.ts index 1dd2500..f942925 100644 --- a/apps/server/src/code/parser.ts +++ b/apps/server/src/code/parser.ts @@ -5,11 +5,8 @@ */ import { dirname, resolve } from "node:path"; -import { fileURLToPath } from "node:url"; import { Language, Parser, type Tree } from "web-tree-sitter"; -const __dirname = dirname(fileURLToPath(import.meta.url)); - let parserInstance: Parser | null = null; let isInitializing = false; let initPromise: Promise | null = null; @@ -17,23 +14,22 @@ let initPromise: Promise | null = null; // Language cache const languageCache = new Map(); -// Paths to WASM files +function resolveWasm(pkg: string, file: string): string { + const pkgJson = require.resolve(`${pkg}/package.json`); + return resolve(dirname(pkgJson), file); +} + +// Paths to WASM files (resolved via require.resolve to handle npm hoisting) const WASM_PATHS = { - parser: resolve( - __dirname, - "../../node_modules/web-tree-sitter/web-tree-sitter.wasm", - ), - typescript: resolve( - __dirname, - "../../node_modules/tree-sitter-typescript/tree-sitter-typescript.wasm", - ), - tsx: resolve( - __dirname, - "../../node_modules/tree-sitter-typescript/tree-sitter-tsx.wasm", + parser: resolveWasm("web-tree-sitter", "web-tree-sitter.wasm"), + typescript: resolveWasm( + "tree-sitter-typescript", + "tree-sitter-typescript.wasm", ), - javascript: resolve( - __dirname, - "../../node_modules/tree-sitter-javascript/tree-sitter-javascript.wasm", + tsx: resolveWasm("tree-sitter-typescript", "tree-sitter-tsx.wasm"), + javascript: resolveWasm( + "tree-sitter-javascript", + "tree-sitter-javascript.wasm", ), };