UNPKG

vike

Version:

The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.

28 lines (27 loc) 1.16 kB
export { isFontFallback }; import { assert } from '../../../utils/assert.js'; function isFontFallback(asset, pageAssets) { if (asset.assetType !== 'font') { return false; } const fontUrlBase = removeFileExtensionAndHash(asset.src); return pageAssets.some((assetOther) => { return assetOther.assetType === 'font' && removeFileExtensionAndHash(assetOther.src) === fontUrlBase; }); } function removeFileExtensionAndHash(assetUrl) { assert(!assetUrl.includes('\\')); // The logic below doesn't work for '/assets/chunk-0e184ced.js' assert(!assetUrl.endsWith('.js')); const paths = assetUrl.split('/'); { const filename = paths[paths.length - 1]; const filenameParts = filename.split('.'); assert(filenameParts.length >= 2); // User may set config.build.rollupOptions.output.assetFileNames => we can't assume the filename to be `*.${hash}.${ext}` const filenameBase = filenameParts.slice(0, filenameParts.length === 2 ? -1 : -2); assert(filenameBase.length >= 1); paths[paths.length - 1] = filenameBase.join('.'); } return paths.join('/'); }