UNPKG

@modern-js/utils

Version:

A Progressive React Framework for modern web development.

35 lines (34 loc) 1.48 kB
import { MAIN_ENTRY_NAME } from "../constants.mjs"; import { isEmpty } from "./type.mjs"; const isSSR = (config)=>{ const { server } = config; if (server?.ssr) return true; if (server?.ssrByEntries && !isEmpty(server.ssrByEntries)) { for (const name of Object.keys(server.ssrByEntries))if (server.ssrByEntries[name]) return true; } return false; }; const isUseSSRBundle = (config)=>{ const { output } = config; if (output?.ssg || output?.ssgByEntries && Object.keys(output?.ssgByEntries).length > 0) return true; return isSSR(config); }; const isUseRsc = (config)=>config?.server?.rsc; const isServiceWorker = (config)=>{ const { output, deploy } = config; if (deploy?.worker?.ssr && (output?.ssg || isSSR(config))) return true; return false; }; const isSSGEntry = (config, entryName, entrypoints)=>{ const { output, source } = config; const single = isSingleEntry(entrypoints, source?.mainEntryName); if (single) { const byEntries = output?.ssgByEntries; return Boolean(output?.ssg) || byEntries && !isEmpty(byEntries); } const byEntries = output?.ssgByEntries; if (!byEntries || isEmpty(byEntries)) return false; return Boolean(byEntries[entryName]); }; const isSingleEntry = (entrypoints, mainEntryName = MAIN_ENTRY_NAME)=>1 === entrypoints.length && entrypoints[0].entryName === mainEntryName; export { isSSGEntry, isSSR, isServiceWorker, isSingleEntry, isUseRsc, isUseSSRBundle };