vike
Version:
(Replaces Next.js/Nuxt) 🔨 Composable framework to build advanced applications with flexibility and stability.
36 lines (35 loc) • 1.14 kB
JavaScript
export { sortPageAssetsForEarlyHintsHeader };
import { higherFirst } from '../../../../utils/sorter.js';
import '../../../assertEnvServer.js';
async function sortPageAssetsForEarlyHintsHeader(pageAssets, isProduction) {
pageAssets.sort(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;
}));
}