vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
28 lines (27 loc) • 1.42 kB
JavaScript
export { createPageContextClientSide };
import { createPageContextObject, createPageContextShared } from '../../shared/createPageContextShared.js';
import { getPageContextUrlComputed } from '../../shared/getPageContextUrlComputed.js';
import { getBaseServer } from './getBaseServer.js';
import { getGlobalContextClientInternal } from './globalContext.js';
import { assert, augmentType, isBaseServer, objectAssign } from './utils.js';
async function createPageContextClientSide(urlOriginal) {
const globalContext = await getGlobalContextClientInternal();
const baseServer = getBaseServer();
assert(isBaseServer(baseServer));
const pageContextCreated = createPageContextObject();
objectAssign(pageContextCreated, {
isClientSide: true,
isPrerendering: false,
urlOriginal,
_globalContext: globalContext,
_pageFilesAll: globalContext._pageFilesAll, // TODO/v1-release: remove
_urlHandler: null,
_urlRewrite: null,
_baseServer: baseServer,
});
const pageContextUrlComputed = getPageContextUrlComputed(pageContextCreated);
objectAssign(pageContextCreated, pageContextUrlComputed);
const pageContextAugmented = await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal, globalContext._vikeConfigPublicGlobal);
augmentType(pageContextCreated, pageContextAugmented);
return pageContextCreated;
}