UNPKG

iles

Version:

Vite & Vue powered static site generator with partial hydration

51 lines (49 loc) 1.58 kB
// src/node/build/chunks.ts function extendManualChunks(config) { const userChunks = config.ssg.manualChunks; const cache = /* @__PURE__ */ new Map(); const chunkForExtension = { jsx: `vendor-${config.jsx}`, tsx: `vendor-${config.jsx}`, svelte: "vendor-svelte", vue: "vendor-vue" }; return (id, api) => { const name = userChunks?.(id, api); if (name) return name; if (id.includes("vite/") || id.includes("plugin-vue")) return "vite"; if (id.includes("hydration/dist")) return "iles"; if (id.includes("node_modules")) return vendorPerFramework(chunkForExtension, id, api, cache); }; } function vendorPerFramework(chunkForExtension, id, api, cache, importStack = []) { if (cache.has(id)) return cache.get(id); if (importStack.includes(id)) { cache.set(id, void 0); return; } const mod = api.getModuleInfo(id); if (!mod) { cache.set(id, void 0); return; } if (mod.isEntry) { const queryIndex = id.lastIndexOf("?"); const idWithoutQuery = queryIndex > -1 ? id.slice(0, queryIndex) : id; const extension = idWithoutQuery.slice(idWithoutQuery.lastIndexOf(".") + 1); const name2 = chunkForExtension[extension]; cache.set(id, name2); return name2; } let name; for (const importer of mod.importers) { const importerChunk = vendorPerFramework(chunkForExtension, importer, api, cache, importStack.concat(id)); if (!name) name = importerChunk; if (importerChunk && importerChunk !== name) break; } cache.set(id, name); return name; } export { extendManualChunks };