Skip to content

Commit 51acd57

Browse files
smeng9Shaoyu Mengclaude
authored
fix(browser): inlined awaited import should not trigger syntax error after transform (#10784)
Co-authored-by: Shaoyu Meng <[email protected]> Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
1 parent 63dd3de commit 51acd57

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

packages/mocker/src/node/dynamicImportPlugin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export function injectDynamicImport(
6868
},
6969
onDynamicImport(node) {
7070
const globalThisAccessor = options.globalThisAccessor || '"__vitest_mocker__"'
71-
const replaceString = `globalThis[${globalThisAccessor}].wrapDynamicImport(() => import(`
71+
const replaceString = `globalThis[${globalThisAccessor}].wrapDynamicImport(async () => import(`
7272
const importSubstring = code.substring(node.start, node.end)
7373
const hasIgnore = importSubstring.includes('/* @vite-ignore */')
7474
s.overwrite(

test/unit/test/injector-esm.test.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,12 @@ test('dynamic import', async () => {
1414
const result = injectSimpleCode(
1515
'export const i = () => import(\'./foo\')',
1616
)
17-
expect(result).toMatchInlineSnapshot(`"export const i = () => globalThis["__vitest_mocker__"].wrapDynamicImport(() => import('./foo'))"`)
17+
expect(result).toMatchInlineSnapshot(`"export const i = () => globalThis["__vitest_mocker__"].wrapDynamicImport(async () => import('./foo'))"`)
18+
})
19+
20+
test('dynamic import with await in the argument', async () => {
21+
const result = injectSimpleCode(
22+
'export const i = async () => import(await getSpecifier())',
23+
)
24+
expect(result).toMatchInlineSnapshot(`"export const i = async () => globalThis["__vitest_mocker__"].wrapDynamicImport(async () => import(await getSpecifier()))"`)
1825
})

0 commit comments

Comments
 (0)