UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

125 lines (124 loc) 4.38 kB
import { prependForwardSlash, removeFileExtension } from "../path.js"; import { viteID } from "../util.js"; function createBuildInternals() { return { clientInput: /* @__PURE__ */ new Set(), cssModuleToChunkIdMap: /* @__PURE__ */ new Map(), inlinedScripts: /* @__PURE__ */ new Map(), entrySpecifierToBundleMap: /* @__PURE__ */ new Map(), pagesByKeys: /* @__PURE__ */ new Map(), pagesByViteID: /* @__PURE__ */ new Map(), pagesByClientOnly: /* @__PURE__ */ new Map(), pagesByScriptId: /* @__PURE__ */ new Map(), pagesByHydratedComponent: /* @__PURE__ */ new Map(), propagatedStylesMap: /* @__PURE__ */ new Map(), discoveredHydratedComponents: /* @__PURE__ */ new Map(), discoveredClientOnlyComponents: /* @__PURE__ */ new Map(), discoveredScripts: /* @__PURE__ */ new Set(), staticFiles: /* @__PURE__ */ new Set(), componentMetadata: /* @__PURE__ */ new Map(), astroActionsEntryPoint: void 0, middlewareEntryPoint: void 0, loggerEntryPoint: void 0, clientChunksAndAssets: /* @__PURE__ */ new Set(), ssrAssetsPerEnvironment: /* @__PURE__ */ new Map() }; } function getOrCreateSSRAssets(internals, envName) { const key = envName; let assets = internals.ssrAssetsPerEnvironment.get(key); if (!assets) { assets = /* @__PURE__ */ new Set(); internals.ssrAssetsPerEnvironment.set(key, assets); } return assets; } function getSSRAssets(internals, envName) { return internals.ssrAssetsPerEnvironment.get(envName) ?? /* @__PURE__ */ new Set(); } function trackPageData(internals, _component, pageData, componentModuleId, componentURL) { pageData.moduleSpecifier = componentModuleId; internals.pagesByKeys.set(pageData.key, pageData); internals.pagesByViteID.set(viteID(componentURL), pageData); } function trackClientOnlyPageDatas(internals, pageData, clientOnlys) { for (const clientOnlyComponent of clientOnlys) { let pageDataSet; if (internals.pagesByClientOnly.has(clientOnlyComponent)) { pageDataSet = internals.pagesByClientOnly.get(clientOnlyComponent); } else { pageDataSet = /* @__PURE__ */ new Set(); internals.pagesByClientOnly.set(clientOnlyComponent, pageDataSet); } pageDataSet.add(pageData); } } function trackScriptPageDatas(internals, pageData, scriptIds) { for (const scriptId of scriptIds) { let pageDataSet; if (internals.pagesByScriptId.has(scriptId)) { pageDataSet = internals.pagesByScriptId.get(scriptId); } else { pageDataSet = /* @__PURE__ */ new Set(); internals.pagesByScriptId.set(scriptId, pageDataSet); } pageDataSet.add(pageData); } } function trackHydratedComponentPageDatas(internals, pageData, hydratedComponents) { for (const hydratedComponent of hydratedComponents) { let pageDataSet; if (internals.pagesByHydratedComponent.has(hydratedComponent)) { pageDataSet = internals.pagesByHydratedComponent.get(hydratedComponent); } else { pageDataSet = /* @__PURE__ */ new Set(); internals.pagesByHydratedComponent.set(hydratedComponent, pageDataSet); } pageDataSet.add(pageData); } } function* getPageDatasByClientOnlyID(internals, viteid) { const pagesByClientOnly = internals.pagesByClientOnly; if (pagesByClientOnly.size) { let pageBuildDatas = pagesByClientOnly.get(viteid); if (!pageBuildDatas) { let pathname = `/@fs${prependForwardSlash(viteid)}`; pageBuildDatas = pagesByClientOnly.get(pathname); } if (!pageBuildDatas) { let pathname = `/@fs${prependForwardSlash(removeFileExtension(viteid))}`; pageBuildDatas = pagesByClientOnly.get(pathname); } if (pageBuildDatas) { for (const pageData of pageBuildDatas) { yield pageData; } } } } function getPageDataByViteID(internals, viteid) { if (internals.pagesByViteID.has(viteid)) { return internals.pagesByViteID.get(viteid); } return void 0; } function hasPrerenderedPages(internals) { for (const pageData of internals.pagesByKeys.values()) { if (pageData.route.prerender) { return true; } } return false; } export { createBuildInternals, getOrCreateSSRAssets, getPageDataByViteID, getPageDatasByClientOnlyID, getSSRAssets, hasPrerenderedPages, trackClientOnlyPageDatas, trackHydratedComponentPageDatas, trackPageData, trackScriptPageDatas };