Skip to content

Commit 97aa3ce

Browse files
authored
fix transitive preloads (#979)
1 parent b07b78f commit 97aa3ce

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/render.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,15 +176,19 @@ function prettyPath(path: string): string {
176176
return path.replace(/\/index$/, "/") || "/";
177177
}
178178

179-
function renderHead(parse: MarkdownPage, resolvers: Resolvers, {scripts, head, root}: RenderOptions): Html {
179+
function renderHead(
180+
parse: MarkdownPage,
181+
{stylesheets, staticImports, resolveImport, resolveStylesheet}: Resolvers,
182+
{scripts, head, root}: RenderOptions
183+
): Html {
180184
if (parse.data?.head !== undefined) head = parse.data.head;
181-
const resolveScript = (src: string) => (/^\w+:/.test(src) ? src : resolvers.resolveImport(relativePath(root, src)));
185+
const resolveScript = (src: string) => (/^\w+:/.test(src) ? src : resolveImport(relativePath(root, src)));
182186
return html`<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>${
183-
Array.from(resolvers.stylesheets, (i) => renderStylesheetPreload(resolvers.resolveStylesheet(i))) // <link rel=preload as=style>
187+
Array.from(new Set(Array.from(stylesheets, (i) => resolveStylesheet(i))), renderStylesheetPreload) // <link rel=preload as=style>
184188
}${
185-
Array.from(resolvers.stylesheets, (i) => renderStylesheet(resolvers.resolveStylesheet(i))) // <link rel=stylesheet>
189+
Array.from(new Set(Array.from(stylesheets, (i) => resolveStylesheet(i))), renderStylesheet) // <link rel=stylesheet>
186190
}${
187-
Array.from(resolvers.staticImports, (i) => renderModulePreload(resolvers.resolveImport(i))) // <link rel=modulepreload>
191+
Array.from(new Set(Array.from(staticImports, (i) => resolveImport(i))), renderModulePreload) // <link rel=modulepreload>
188192
}${
189193
head ? html`\n${html.unsafe(head)}` : null // arbitrary user content
190194
}${

src/resolvers.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ export async function getResolvers(page: MarkdownPage, {root, path}: {root: stri
184184
const path = resolvePath(value, i.name);
185185
const specifier = `npm:${resolveNpmSpecifier(path)}`;
186186
staticImports.add(specifier);
187+
npmStaticResolutions.add(path);
187188
}
188189
}
189190
}

0 commit comments

Comments
 (0)