Files
fil/e2e/wasm/node.loader.mjs

43 lines
1.1 KiB
JavaScript
Raw Normal View History

2026-06-01 23:40:55 +02:00
// Custom Node.js loader for WASM imports
import Module from "module";
const originalResolveFilename = Module.prototype._resolveFilename;
Module.prototype._resolveFilename = function (request, parent, isMain) {
if (request === "env" || request === "wasi_snapshot_preview1") {
// Return a fake module path that won't be resolved
// Instead, we'll handle it in the import hook
return request;
}
return originalResolveFilename.apply(this, arguments);
};
// ES module loader hook
export async function resolve(specifier, context, nextResolve) {
if (specifier === "env" || specifier === "wasi_snapshot_preview1") {
return {
url: "node:vm",
shortCircuit: true,
};
}
return nextResolve(specifier);
}
export async function getFormat(url, context, nextGetFormat) {
return nextGetFormat(url);
}
export async function getSource(url, context, nextGetSource) {
return nextGetSource(url);
}
export async function load(url, context, nextLoad) {
if (url === "node:vm") {
return {
format: "module",
source: "export default {}; export const wasi_snapshot_preview1 = {};",
};
}
return nextLoad(url);
}