UNPKG

vike

Version:

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

56 lines (55 loc) 3.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getVirtualFilePageConfigLazy = getVirtualFilePageConfigLazy; const utils_js_1 = require("../../utils.js"); const virtualFilePageConfigLazy_js_1 = require("../../../shared/virtualFiles/virtualFilePageConfigLazy.js"); const resolveVikeConfigInternal_js_1 = require("../../shared/resolveVikeConfigInternal.js"); const extractAssetsQuery_js_1 = require("../../../shared/extractAssetsQuery.js"); const debug_js_1 = require("./debug.js"); const isRuntimeEnvMatch_js_1 = require("./isRuntimeEnvMatch.js"); const serializeConfigValues_js_1 = require("../../../../shared/page-configs/serialize/serializeConfigValues.js"); const handleAssetsManifest_js_1 = require("../pluginBuild/handleAssetsManifest.js"); const getConfigValueBuildTime_js_1 = require("../../../../shared/page-configs/getConfigValueBuildTime.js"); const getPageAssets_js_1 = require("../../../runtime/renderPage/getPageAssets.js"); async function getVirtualFilePageConfigLazy(id, isDev, config) { const result = (0, virtualFilePageConfigLazy_js_1.isVirtualFileIdPageConfigLazy)(id); (0, utils_js_1.assert)(result); /* This assertion fails when using includeAssetsImportedByServer { const isForClientSide = !config.build.ssr assert(result.isForClientSide === isForClientSide) } */ const { pageId, isForClientSide } = result; const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)(true); const { _pageConfigs: pageConfigs } = vikeConfig; const pageConfig = pageConfigs.find((pageConfig) => pageConfig.pageId === pageId); if (!isDev) { (0, utils_js_1.assert)(pageConfig); } else { /* This assertion sometimes fail. It happens very seldom and I couldn't reproduce it (https://gist.github.com/brillout/9e212ce829f4d62a912ca163ffa8881a). I suspect some kind of HMR race condition. assert(pageConfig, { id, pageId }) /*/ if (!pageConfig) throw (0, utils_js_1.getProjectError)('Outdated request'); //*/ } const code = getLoadConfigLazy(pageConfig, isForClientSide, pageId, (0, getPageAssets_js_1.resolveIncludeAssetsImportedByServer)(vikeConfig.config), config, isDev); (0, debug_js_1.debug)(id, isForClientSide ? 'CLIENT-SIDE' : 'SERVER-SIDE', code); return code; } function getLoadConfigLazy(pageConfig, isForClientSide, pageId, includeAssetsImportedByServer, config, isDev) { const lines = []; const importStatements = []; const filesEnv = new Map(); const isClientRouting = (0, getConfigValueBuildTime_js_1.getConfigValueBuildTime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false; lines.push('export const configValuesSerialized = {'); lines.push(...(0, serializeConfigValues_js_1.serializeConfigValues)(pageConfig, importStatements, filesEnv, (configEnv) => (0, isRuntimeEnvMatch_js_1.isRuntimeEnvMatch)(configEnv, { isForClientSide, isClientRouting, isDev }), '', false)); lines.push('};'); if (!(0, handleAssetsManifest_js_1.handleAssetsManifest_isFixEnabled)(config) && includeAssetsImportedByServer && isForClientSide && !isDev) { importStatements.push(`import '${(0, extractAssetsQuery_js_1.extractAssetsAddQuery)((0, virtualFilePageConfigLazy_js_1.getVirtualFileIdPageConfigLazy)(pageId, false))}'`); } const code = [...importStatements, ...lines].join('\n'); return code; }