UNPKG

vike

Version:

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

30 lines (29 loc) 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isFontFallback = isFontFallback; const assert_js_1 = require("../../../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) { (0, assert_js_1.assert)(!assetUrl.includes('\\')); // The logic below doesn't work for '/assets/chunk-0e184ced.js' (0, assert_js_1.assert)(!assetUrl.endsWith('.js')); const paths = assetUrl.split('/'); { const filename = paths[paths.length - 1]; const filenameParts = filename.split('.'); (0, assert_js_1.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); (0, assert_js_1.assert)(filenameBase.length >= 1); paths[paths.length - 1] = filenameBase.join('.'); } return paths.join('/'); }