Skip to content
This repository has been archived by the owner on Jul 29, 2022. It is now read-only.

Commit

Permalink
fix: wrap with Object.assign to avoid changing semantic
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed May 14, 2022
1 parent 65089d4 commit aee551b
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 57 deletions.
114 changes: 62 additions & 52 deletions src/__tests__/__snapshots__/fixture.test.ts.snap
Expand Up @@ -9,64 +9,69 @@ import { name as __vite_glob_next_3_1 } from \\"./modules/b.ts\\"
import { name as __vite_glob_next_3_2 } from \\"./modules/index.ts\\"
import { default as __vite_glob_next_5_0 } from \\"./modules/a.ts?raw\\"
import { default as __vite_glob_next_5_1 } from \\"./modules/b.ts?raw\\"
export const basic = {
export const basic = Object.assign({
\\"./modules/a.ts\\": () => import(\\"./modules/a.ts\\"),
\\"./modules/b.ts\\": () => import(\\"./modules/b.ts\\"),
\\"./modules/index.ts\\": () => import(\\"./modules/index.ts\\")
};
export const basicEager = {
});
export const basicEager = Object.assign({
\\"./modules/a.ts\\": __vite_glob_next_1_0,
\\"./modules/b.ts\\": __vite_glob_next_1_1,
\\"./modules/index.ts\\": __vite_glob_next_1_2
};
export const ignore = {
});
export const ignore = Object.assign({
\\"./modules/a.ts\\": () => import(\\"./modules/a.ts\\"),
\\"./modules/b.ts\\": () => import(\\"./modules/b.ts\\")
};
export const namedEager = {
});
export const namedEager = Object.assign({
\\"./modules/a.ts\\": __vite_glob_next_3_0,
\\"./modules/b.ts\\": __vite_glob_next_3_1,
\\"./modules/index.ts\\": __vite_glob_next_3_2
};
export const namedDefault = {
});
export const namedDefault = Object.assign({
\\"./modules/a.ts\\": () => import(\\"./modules/a.ts\\").then(m => m[\\"default\\"]),
\\"./modules/b.ts\\": () => import(\\"./modules/b.ts\\").then(m => m[\\"default\\"]),
\\"./modules/index.ts\\": () => import(\\"./modules/index.ts\\").then(m => m[\\"default\\"])
};
export const eagerAs = {
});
export const eagerAs = Object.assign({
\\"./modules/a.ts\\": __vite_glob_next_5_0,
\\"./modules/b.ts\\": __vite_glob_next_5_1
};
export const excludeSelf = {
});
export const excludeSelf = Object.assign({
\\"./sibling.ts\\": () => import(\\"./sibling.ts\\")
};
export const customQueryString = {
});
export const customQueryString = Object.assign({
\\"./sibling.ts\\": () => import(\\"./sibling.ts?custom\\")
};
export const customQueryObject = {
});
export const customQueryObject = Object.assign({
\\"./sibling.ts\\": () => import(\\"./sibling.ts?foo=bar&raw=true\\")
};
export const parent = {
});
export const parent = Object.assign({
};
export const rootMixedRelative = {
});
export const rootMixedRelative = Object.assign({
\\"/build.config.ts\\": () => import(\\"../../../build.config.ts?url\\").then(m => m[\\"default\\"]),
\\"/client.d.ts\\": () => import(\\"../../../client.d.ts?url\\").then(m => m[\\"default\\"]),
\\"/src/__tests__/fixture-b/a.ts\\": () => import(\\"../fixture-b/a.ts?url\\").then(m => m[\\"default\\"]),
\\"/src/__tests__/fixture-b/b.ts\\": () => import(\\"../fixture-b/b.ts?url\\").then(m => m[\\"default\\"]),
\\"/src/__tests__/fixture-b/index.ts\\": () => import(\\"../fixture-b/index.ts?url\\").then(m => m[\\"default\\"]),
\\"/takeover.d.ts\\": () => import(\\"../../../takeover.d.ts?url\\").then(m => m[\\"default\\"]),
\\"/types.ts\\": () => import(\\"../../../types.ts?url\\").then(m => m[\\"default\\"])
};
export const cleverCwd1 = {
});
export const cleverCwd1 = Object.assign({
\\"./node_modules/framework/pages/hello.page.js\\": () => import(\\"./node_modules/framework/pages/hello.page.js\\")
};
export const cleverCwd2 = {
});
export const cleverCwd2 = Object.assign({
\\"./modules/a.ts\\": () => import(\\"./modules/a.ts\\"),
\\"./modules/b.ts\\": () => import(\\"./modules/b.ts\\"),
\\"../fixture-b/a.ts\\": () => import(\\"../fixture-b/a.ts\\"),
\\"../fixture-b/b.ts\\": () => import(\\"../fixture-b/b.ts\\")
};
});
export const keys = Object.keys({ ...Object.assign({
\\"./modules/a.ts\\": () => import(\\"./modules/a.ts\\"),
\\"./modules/b.ts\\": () => import(\\"./modules/b.ts\\"),
\\"./modules/index.ts\\": () => import(\\"./modules/index.ts\\")
}) });
"
`;

Expand All @@ -79,63 +84,68 @@ import { name as __vite_glob_next_3_1 } from \\"./modules/b.ts\\"
import { name as __vite_glob_next_3_2 } from \\"./modules/index.ts\\"
import { default as __vite_glob_next_5_0 } from \\"./modules/a.ts?raw\\"
import { default as __vite_glob_next_5_1 } from \\"./modules/b.ts?raw\\"
export const basic = {
export const basic = Object.assign({
\\"./modules/a.ts\\": () => import(\\"./modules/a.ts\\"),
\\"./modules/b.ts\\": () => import(\\"./modules/b.ts\\"),
\\"./modules/index.ts\\": () => import(\\"./modules/index.ts\\")
};
export const basicEager = {
});
export const basicEager = Object.assign({
\\"./modules/a.ts\\": __vite_glob_next_1_0,
\\"./modules/b.ts\\": __vite_glob_next_1_1,
\\"./modules/index.ts\\": __vite_glob_next_1_2
};
export const ignore = {
});
export const ignore = Object.assign({
\\"./modules/a.ts\\": () => import(\\"./modules/a.ts\\"),
\\"./modules/b.ts\\": () => import(\\"./modules/b.ts\\")
};
export const namedEager = {
});
export const namedEager = Object.assign({
\\"./modules/a.ts\\": __vite_glob_next_3_0,
\\"./modules/b.ts\\": __vite_glob_next_3_1,
\\"./modules/index.ts\\": __vite_glob_next_3_2
};
export const namedDefault = {
});
export const namedDefault = Object.assign({
\\"./modules/a.ts\\": () => import(\\"./modules/a.ts\\").then(m => m[\\"default\\"]),
\\"./modules/b.ts\\": () => import(\\"./modules/b.ts\\").then(m => m[\\"default\\"]),
\\"./modules/index.ts\\": () => import(\\"./modules/index.ts\\").then(m => m[\\"default\\"])
};
export const eagerAs = {
});
export const eagerAs = Object.assign({
\\"./modules/a.ts\\": __vite_glob_next_5_0,
\\"./modules/b.ts\\": __vite_glob_next_5_1
};
export const excludeSelf = {
});
export const excludeSelf = Object.assign({
\\"./sibling.ts\\": () => import(\\"./sibling.ts\\")
};
export const customQueryString = {
});
export const customQueryString = Object.assign({
\\"./sibling.ts\\": () => import(\\"./sibling.ts?custom&lang.ts\\")
};
export const customQueryObject = {
});
export const customQueryObject = Object.assign({
\\"./sibling.ts\\": () => import(\\"./sibling.ts?foo=bar&raw=true&lang.ts\\")
};
export const parent = {
});
export const parent = Object.assign({
};
export const rootMixedRelative = {
});
export const rootMixedRelative = Object.assign({
\\"/build.config.ts\\": () => import(\\"../../../build.config.ts?url&lang.ts\\").then(m => m[\\"default\\"]),
\\"/client.d.ts\\": () => import(\\"../../../client.d.ts?url&lang.ts\\").then(m => m[\\"default\\"]),
\\"/src/__tests__/fixture-b/a.ts\\": () => import(\\"../fixture-b/a.ts?url&lang.ts\\").then(m => m[\\"default\\"]),
\\"/src/__tests__/fixture-b/b.ts\\": () => import(\\"../fixture-b/b.ts?url&lang.ts\\").then(m => m[\\"default\\"]),
\\"/src/__tests__/fixture-b/index.ts\\": () => import(\\"../fixture-b/index.ts?url&lang.ts\\").then(m => m[\\"default\\"]),
\\"/takeover.d.ts\\": () => import(\\"../../../takeover.d.ts?url&lang.ts\\").then(m => m[\\"default\\"]),
\\"/types.ts\\": () => import(\\"../../../types.ts?url&lang.ts\\").then(m => m[\\"default\\"])
};
export const cleverCwd1 = {
});
export const cleverCwd1 = Object.assign({
\\"./node_modules/framework/pages/hello.page.js\\": () => import(\\"./node_modules/framework/pages/hello.page.js\\")
};
export const cleverCwd2 = {
});
export const cleverCwd2 = Object.assign({
\\"./modules/a.ts\\": () => import(\\"./modules/a.ts\\"),
\\"./modules/b.ts\\": () => import(\\"./modules/b.ts\\"),
\\"../fixture-b/a.ts\\": () => import(\\"../fixture-b/a.ts\\"),
\\"../fixture-b/b.ts\\": () => import(\\"../fixture-b/b.ts\\")
};
});
export const keys = Object.keys({ ...Object.assign({
\\"./modules/a.ts\\": () => import(\\"./modules/a.ts\\"),
\\"./modules/b.ts\\": () => import(\\"./modules/b.ts\\"),
\\"./modules/index.ts\\": () => import(\\"./modules/index.ts\\")
}) });
"
`;
2 changes: 2 additions & 0 deletions src/__tests__/fixture-a/index.ts
Expand Up @@ -55,3 +55,5 @@ export const cleverCwd2 = import.meta.glob([
'!**/index.ts',
],
)

export const keys = Object.keys({ ...import.meta.glob('./modules/*.ts') })
8 changes: 4 additions & 4 deletions src/__tests__/fixture.test.ts
Expand Up @@ -25,16 +25,16 @@ describe('fixture', async () => {
].join('\n')
expect((await transform(code, 'virtual:module', root, resolveId, options))?.s.toString())
.toMatchInlineSnapshot(`
"{
"Object.assign({
\\"/modules/a.ts\\": () => import(\\"/modules/a.ts\\"),
\\"/modules/b.ts\\": () => import(\\"/modules/b.ts\\"),
\\"/modules/index.ts\\": () => import(\\"/modules/index.ts\\")
}
{
})
Object.assign({
\\"/../fixture-b/a.ts\\": () => import(\\"/../fixture-b/a.ts\\"),
\\"/../fixture-b/b.ts\\": () => import(\\"/../fixture-b/b.ts\\"),
\\"/../fixture-b/index.ts\\": () => import(\\"/../fixture-b/index.ts\\")
}"
})"
`,
)

Expand Down
2 changes: 1 addition & 1 deletion src/plugin.ts
Expand Up @@ -371,7 +371,7 @@ export async function transform(
}
})

const replacement = `{\n${objectProps.join(',\n')}\n}`
const replacement = `Object.assign({\n${objectProps.join(',\n')}\n})`
s.overwrite(start, end, replacement)

return staticImports
Expand Down

0 comments on commit aee551b

Please sign in to comment.