UNPKG

@stilljs/core

Version:

<div style="display:flex; justify-content: center"> <img src="@still/img/logo-no-bg.png" style="width: 5em;"/> </div>

63 lines (50 loc) 2.01 kB
import { stillRoutesMap } from "../../../config/route.map.js"; import { ComponentType } from "../type/ComponentType.js"; const $stillGetRouteMap = () => { return { route: { ...stillRoutesMap.viewRoutes.regular, ...stillRoutesMap.viewRoutes.lazyInitial }, } } addEventListener('message', (event) => { /** @type { Array<ComponentType> } */ const components = event.data.components; const vendorPath = event.data.vendorPath; components.forEach(cmp => { let cmpPath, cmpFolder, prePath = vendorPath; if (String(cmp.component).startsWith('@')) { cmpPath = cmp.component.slice(1); cmpFolder = cmpPath.split('/'); const cls = cmpFolder.at(-1); cmpFolder.pop() cmpFolder = cmpFolder.join('/'); } else { cmpPath = `${$stillGetRouteMap().route[cmp.component]?.path}/${cmp.component}`; prePath = vendorPath.replace('/@still/vendors', '') } fetch(`${prePath}/${cmpPath}.js`) .then(() => { if (cmp.assets?.length) { cmp.assets.forEach(asset => { fetch(`${vendorPath}/${cmpFolder}/${asset}`) .then(async r => { self.postMessage({ path: `${vendorPath}/${cmpFolder}/${asset}`, type: asset.slice(-3) }); }) .catch(r => { console.log(`Error on loading `, `${vendorPath}/${cmpFolder}/${asset}`); console.log(r); }); }); } }) .catch(err => { console.log(`Error on prefetching `, `${vendorPath}/${cmpPath}.js`); console.log(err); }) }) });