vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
37 lines (36 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sortPageAssetsForEarlyHintsHeader = sortPageAssetsForEarlyHintsHeader;
const utils_js_1 = require("../../utils.js");
async function sortPageAssetsForEarlyHintsHeader(pageAssets, isProduction) {
pageAssets.sort((0, utils_js_1.higherFirst)(({ assetType }) => {
// In dev, we load scripts first in order to parallelize I/O and CPU
if (!isProduction && assetType === 'script') {
return 1;
}
let priority = 0;
// CSS has highest priority
if (assetType === 'style')
return priority;
priority--;
// Visual assets have high priority
if (assetType === 'font')
return priority;
priority--;
if (assetType === 'image')
return priority;
priority--;
if (assetType === 'video')
return priority;
priority--;
if (assetType === 'audio')
return priority;
priority--;
// Others
if (assetType !== 'script')
return priority;
priority--;
// JavaScript has lowest priority
return priority;
}));
}