UNPKG

@sls-next/core

Version:
44 lines (43 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usedSSR = void 0; const locale_1 = require("../route/locale"); /* * Dynamic SSR + dynamic SSG fallback + dynamic SSG with ISR */ const filterDynamic = (manifest) => { const isrSources = {}; for (const ssg of Object.values(manifest.pages.ssg.nonDynamic)) { if (ssg.initialRevalidateSeconds && ssg.srcRoute) { isrSources[ssg.srcRoute] = true; } } return Object.fromEntries(Object.entries(manifest.pages.ssr.dynamic).filter(([key]) => { const dynamicSSG = manifest.pages.ssg.dynamic[key]; return !dynamicSSG || dynamicSSG.fallback !== false || isrSources[key]; })); }; /* * Non-dynamic SSR + non-dynamic SSG with ISR */ const filterNonDynamic = (manifest, routesManifest) => { const ssgPages = manifest.pages.ssg.nonDynamic; return Object.fromEntries(Object.entries(manifest.pages.ssr.nonDynamic).filter(([key]) => { const nonDynamicSSG = ssgPages[key] || ssgPages[(0, locale_1.addDefaultLocaleToPath)(key, routesManifest)]; return !nonDynamicSSG || nonDynamicSSG.initialRevalidateSeconds; })); }; /* * Keeps only required SSR pages. */ const usedSSR = (manifest, routesManifest) => { // If there are API pages, preview mode is possible meaning everything has to be kept if (manifest.hasApiPages) { return manifest.pages.ssr; } return { dynamic: filterDynamic(manifest), nonDynamic: filterNonDynamic(manifest, routesManifest) }; }; exports.usedSSR = usedSSR;