UNPKG

vike

Version:

The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.

55 lines (54 loc) 3.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getVirtualFilePageConfigsEager = getVirtualFilePageConfigsEager; const virtualFilePageConfigLazy_js_1 = require("../../../shared/virtualFiles/virtualFilePageConfigLazy.js"); const debug_js_1 = require("./debug.js"); const resolveVikeConfigInternal_js_1 = require("../../shared/resolveVikeConfigInternal.js"); const isRuntimeEnvMatch_js_1 = require("./isRuntimeEnvMatch.js"); const serializeConfigValues_js_1 = require("../../../../shared/page-configs/serialize/serializeConfigValues.js"); async function getVirtualFilePageConfigsEager(isForClientSide, isDev, id, isClientRouting) { const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)(true); const { _pageConfigs: pageConfigs, _pageConfigGlobal: pageConfigGlobal } = vikeConfig; return getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isClientRouting); } function getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isClientRouting) { const lines = []; const importStatements = []; const filesEnv = new Map(); lines.push('export const pageConfigsSerialized = ['); lines.push(getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRouting, isDev, importStatements, filesEnv)); lines.push('];'); lines.push('export const pageConfigGlobalSerialized = {'); lines.push(getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements, filesEnv)); lines.push('};'); const code = [...importStatements, ...lines].join('\n'); (0, debug_js_1.debug)(id, isForClientSide ? 'CLIENT-SIDE' : 'SERVER-SIDE', code); return code; } function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRouting, isDev, importStatements, filesEnv) { const lines = []; pageConfigs.forEach((pageConfig) => { const { pageId, routeFilesystem, isErrorPage } = pageConfig; lines.push(` {`); lines.push(` pageId: ${JSON.stringify(pageId)},`); lines.push(` isErrorPage: ${JSON.stringify(isErrorPage)},`); lines.push(` routeFilesystem: ${JSON.stringify(routeFilesystem)},`); const virtualFileId = JSON.stringify((0, virtualFilePageConfigLazy_js_1.getVirtualFileIdPageConfigLazy)(pageId, isForClientSide)); const load = `() => ({ moduleId: ${virtualFileId}, moduleExports: import(${virtualFileId}) })`; lines.push(` loadConfigLazy: ${load},`); lines.push(` configValuesSerialized: {`); lines.push(...(0, serializeConfigValues_js_1.serializeConfigValues)(pageConfig, importStatements, filesEnv, (configEnv) => (0, isRuntimeEnvMatch_js_1.isRuntimeEnvMatch)(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', true)); lines.push(` },`); lines.push(` },`); }); const code = lines.join('\n'); return code; } function getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements, filesEnv) { const lines = []; lines.push(` configValuesSerialized: {`); lines.push(...(0, serializeConfigValues_js_1.serializeConfigValues)(pageConfigGlobal, importStatements, filesEnv, (configEnv) => (0, isRuntimeEnvMatch_js_1.isRuntimeEnvMatch)(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', null)); lines.push(` },`); const code = lines.join('\n'); return code; }