vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
28 lines (27 loc) • 1.43 kB
JavaScript
export { loadAndParseVirtualFilePageEntry };
import { objectAssign } from '../../utils/objectAssign.js';
import { parseConfigValuesSerialized } from './serialize/parsePageConfigsSerialized.js';
import { assertVirtualFileExports } from '../assertVirtualFileExports.js';
async function loadAndParseVirtualFilePageEntry(pageConfig, isDev) {
if ('isPageEntryLoaded' in pageConfig &&
// We don't need to cache in dev, since Vite already caches the virtual module
!isDev) {
return pageConfig;
}
const { moduleId, moduleExportsPromise } = pageConfig.loadVirtualFilePageEntry();
const moduleExports = await moduleExportsPromise;
/* `moduleExports` is sometimes `undefined` https://github.com/vikejs/vike/discussions/2092
assert(moduleExports)
//*/
// Catch @cloudflare/vite-plugin bug
assertVirtualFileExports(moduleExports, () => 'configValuesSerialized' in moduleExports, moduleId);
const virtualFileExportsPageEntry = moduleExports;
const configValues = parseVirtualFileExportsPageEntry(virtualFileExportsPageEntry);
Object.assign(pageConfig.configValues, configValues);
objectAssign(pageConfig, { isPageEntryLoaded: true });
return pageConfig;
}
function parseVirtualFileExportsPageEntry(virtualFileExportsPageEntry) {
const configValues = parseConfigValuesSerialized(virtualFileExportsPageEntry.configValuesSerialized);
return configValues;
}