Skip to content

Commit fd6e933

Browse files
committed
use blob url
1 parent 198e9e4 commit fd6e933

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

packages/rspack/src/util/require.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,20 @@ export function nonWebpackRequire(): RequireFn {
2323
return;
2424
}
2525

26-
const loaderCode = data?.toString() || "";
2726
// Only custom esm loader is supported.
28-
// Use `import(base64code)` to load ESM
29-
const dataUrl = `data:text/javascript;base64,${btoa(loaderCode)}`;
27+
const loaderCode = data?.toString() || "";
28+
const codeUrl = URL.createObjectURL(
29+
new Blob([loaderCode], { type: "text/javascript" })
30+
);
3031
try {
3132
// biome-ignore lint/security/noGlobalEval: use `eval("import")` rather than `import` to suppress the warning in @rspack/browser
32-
const modulePromise = eval(`import("${dataUrl}")`);
33-
modulePromise.then(resolve);
33+
const modulePromise = eval(
34+
`import("${codeUrl}")`
35+
) as Promise<unknown>;
36+
modulePromise.then(module => {
37+
URL.revokeObjectURL(codeUrl);
38+
resolve(module);
39+
});
3440
} catch (e) {
3541
reject(e);
3642
}

0 commit comments

Comments
 (0)