fix: add type check for plugin.name
This commit is contained in:
parent
d825a35e18
commit
58a22585e7
1 changed files with 8 additions and 3 deletions
|
@ -136,19 +136,24 @@ export async function createVite(
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPluginName(plugin: vite.PluginOption) {
|
function getPluginName(plugin: vite.Plugin) {
|
||||||
if (plugin && typeof plugin === 'object' && !Array.isArray(plugin)) {
|
if (plugin && typeof plugin === 'object' && !Array.isArray(plugin)) {
|
||||||
return plugin.name;
|
return plugin.name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isVitePlugin(plugin: vite.PluginOption): plugin is vite.Plugin {
|
||||||
|
return Boolean(plugin?.hasOwnProperty('name'))
|
||||||
|
}
|
||||||
|
|
||||||
function sortPlugins(result: ViteConfigWithSSR) {
|
function sortPlugins(result: ViteConfigWithSSR) {
|
||||||
|
const plugins = result.plugins?.filter(isVitePlugin) ?? []
|
||||||
// HACK: move mdxPlugin to top because it needs to run before internal JSX plugin
|
// HACK: move mdxPlugin to top because it needs to run before internal JSX plugin
|
||||||
const mdxPluginIndex =
|
const mdxPluginIndex =
|
||||||
result.plugins?.findIndex((plugin) => getPluginName(plugin) === '@mdx-js/rollup') ?? -1;
|
plugins.findIndex((plugin) => getPluginName(plugin) === '@mdx-js/rollup') ?? -1;
|
||||||
if (mdxPluginIndex === -1) return;
|
if (mdxPluginIndex === -1) return;
|
||||||
const jsxPluginIndex =
|
const jsxPluginIndex =
|
||||||
result.plugins?.findIndex((plugin) => getPluginName(plugin) === 'astro:jsx') ?? -1;
|
plugins.findIndex((plugin) => getPluginName(plugin) === 'astro:jsx') ?? -1;
|
||||||
const mdxPlugin = result.plugins?.[mdxPluginIndex];
|
const mdxPlugin = result.plugins?.[mdxPluginIndex];
|
||||||
result.plugins?.splice(mdxPluginIndex, 1);
|
result.plugins?.splice(mdxPluginIndex, 1);
|
||||||
result.plugins?.splice(jsxPluginIndex, 0, mdxPlugin);
|
result.plugins?.splice(jsxPluginIndex, 0, mdxPlugin);
|
||||||
|
|
Loading…
Reference in a new issue