refactor: flip Promise.all to for await for perf!

This commit is contained in:
bholmesdev 2022-05-19 17:49:51 -04:00
parent 2bb2b5e8ad
commit da8a6873f5

View file

@ -55,36 +55,34 @@ export async function collectMdMetadata(
viteServer: ViteDevServer, viteServer: ViteDevServer,
) { ) {
const importedModules = [...(modGraph?.importedModules ?? [])]; const importedModules = [...(modGraph?.importedModules ?? [])];
await Promise.all( for await (let importedModule of importedModules) {
importedModules.map(async (importedModule) => { // recursively check for importedModules
// recursively check for importedModules if (!importedModule.id || seenMdMetadata.has(importedModule.id)) return;
if (!importedModule.id || seenMdMetadata.has(importedModule.id)) return;
seenMdMetadata.add(importedModule.id); seenMdMetadata.add(importedModule.id);
await collectMdMetadata(metadata, importedModule, viteServer); await collectMdMetadata(metadata, importedModule, viteServer);
if (!importedModule?.id?.endsWith(MARKDOWN_IMPORT_FLAG)) return; if (!importedModule?.id?.endsWith(MARKDOWN_IMPORT_FLAG)) return;
const mdSSRMod = await viteServer.ssrLoadModule(importedModule.id); const mdSSRMod = await viteServer.ssrLoadModule(importedModule.id);
const mdMetadata = (await mdSSRMod.$$loadMetadata?.()) as Metadata; const mdMetadata = (await mdSSRMod.$$loadMetadata?.()) as Metadata;
if (!mdMetadata) return; if (!mdMetadata) return;
for (let mdMod of mdMetadata.modules) { for (let mdMod of mdMetadata.modules) {
mdMod.specifier = mdMetadata.resolvePath(mdMod.specifier); mdMod.specifier = mdMetadata.resolvePath(mdMod.specifier);
metadata.modules.push(mdMod); metadata.modules.push(mdMod);
} }
for (let mdHoisted of mdMetadata.hoisted) { for (let mdHoisted of mdMetadata.hoisted) {
metadata.hoisted.push(mdHoisted); metadata.hoisted.push(mdHoisted);
} }
for (let mdHydrated of mdMetadata.hydratedComponents) { for (let mdHydrated of mdMetadata.hydratedComponents) {
metadata.hydratedComponents.push(mdHydrated); metadata.hydratedComponents.push(mdHydrated);
} }
for (let mdClientOnly of mdMetadata.clientOnlyComponents) { for (let mdClientOnly of mdMetadata.clientOnlyComponents) {
metadata.clientOnlyComponents.push(mdClientOnly); metadata.clientOnlyComponents.push(mdClientOnly);
} }
for (let mdHydrationDirective of mdMetadata.hydrationDirectives) { for (let mdHydrationDirective of mdMetadata.hydrationDirectives) {
metadata.hydrationDirectives.add(mdHydrationDirective); metadata.hydrationDirectives.add(mdHydrationDirective);
} }
}) }
);
} }