From 7357aeb4b7b6eca234f8622fd8d2d833c1129518 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Fri, 23 Jul 2021 12:53:16 +0200 Subject: [PATCH] feat: rewrite error stack for inline scripts --- lib/index.mjs | 6 +++++- test/eval-err.mjs | 5 +++++ test/eval.mjs | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 test/eval-err.mjs diff --git a/lib/index.mjs b/lib/index.mjs index 6a40cdd..7b61b54 100644 --- a/lib/index.mjs +++ b/lib/index.mjs @@ -119,7 +119,11 @@ export async function loadModule (id, opts = {}) { export async function evalModule (code, opts = {}) { const transformed = await transformModule(code, opts) - return import(toDataURL(transformed, opts)) + const dataURL = toDataURL(transformed, opts) + return import(dataURL).catch((err) => { + err.stack = err.stack.replace(new RegExp(dataURL, 'g'), opts.url || '_mlly_eval_.mjs') + throw err + }) } export async function transformModule (code, opts) { diff --git a/test/eval-err.mjs b/test/eval-err.mjs new file mode 100644 index 0000000..5ff5491 --- /dev/null +++ b/test/eval-err.mjs @@ -0,0 +1,5 @@ +async function test() { + throw new Error('Something went wrong in eval-err module!') +} + +await test() diff --git a/test/eval.mjs b/test/eval.mjs index c46063d..49dbcca 100644 --- a/test/eval.mjs +++ b/test/eval.mjs @@ -12,3 +12,5 @@ await evalModule(` await loadModule('./hello.mjs', { url: import.meta.url }) console.log(await loadModule('../package.json', { url: import.meta.url }).then(r => r.default.name)) + +await loadModule('./eval-err.mjs', { url: import.meta.url }).catch(e => console.error(e))