preload-links-by-lighthouse
Version:
Generate html with embedded preload links using lighthouse
26 lines • 922 B
JavaScript
export const DEFAULT_HREF_MAPPER = (networkRecord) => networkRecord.url;
export const DEFAULT_AS_MAPPER = (networkRecord) => {
if (networkRecord.resourceType === 'Script')
return 'script';
return undefined;
};
export function generatePreloadLinks(args) {
const hrefMapper = args.hrefMapper ?? DEFAULT_HREF_MAPPER;
const asMapper = args.asMapper ?? DEFAULT_AS_MAPPER;
return args.networkRecords
.map((networkRecord) => {
const href = hrefMapper(networkRecord);
const as = asMapper(networkRecord);
if (href.startsWith('data')) {
console.log(networkRecord);
}
let preloadLink = `<link rel="preload"`;
preloadLink += ` href="${href}"`;
if (as)
preloadLink += ` as="${as}"`;
preloadLink += `>`;
return preloadLink;
})
.join('\n');
}
//# sourceMappingURL=preload-link-generator.js.map