UNPKG

vike

Version:

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

322 lines (321 loc) 12.8 kB
export type { PageContext }; export type { PageContextServer }; export type { PageContextClient }; export type { PageContextWithServerRouting }; export type { PageContextClientWithServerRouting }; export type { PageContextInternalServer }; export type { PageContextInternalClient }; export type { PageContextInternalClient_ServerRouting }; export type { PageContextInternalClient_ClientRouting }; export type { PageContextInit }; export type { PageContextBuiltInServer_deprecated as PageContextBuiltInServer }; export type { PageContextBuiltInClientWithClientRouting_deprecated as PageContextBuiltInClientWithClientRouting }; export type { PageContextBuiltInClientWithServerRouting_deprecated as PageContextBuiltInClientWithServerRouting }; import type { PageContextUrlInternal, PageContextUrlClient, PageContextUrlServer } from '../shared-server-client/getPageContextUrlComputed.js'; import type { From, PageContextConfig, Source, Sources } from '../shared-server-client/page-configs/resolveVikeConfigPublic.js'; import type { Config } from './Config.js'; import type { AbortStatusCode } from '../shared-server-client/route/abort.js'; import type { GlobalContextClient, GlobalContextServer, GlobalContextClientWithServerRouting } from './GlobalContext.js'; import type { DangerouslyUseInternals } from '../shared-server-client/getPublicProxy.js'; import type { PageContextInternalClientAfterRender } from '../client/runtime-client-routing/renderPageClient.js'; import type { PageContextAfterRender } from '../server/runtime/renderPageServer/renderPageServerAfterRoute.js'; import type { PageContextPublicServer } from '../server/runtime/renderPageServer/getPageContextPublicServer.js'; import type { PageContextPublicProxyClient } from '../client/runtime-client-routing/getPageContextPublicClient.js'; type PageContextServer<Data = unknown> = PageContextBuiltInServer<Data> & { /** https://vike.dev/warning/internals */ dangerouslyUseInternals: DangerouslyUseInternals<PageContextInternalServer & PageContextAfterRender & PageContextPublicServer>; } & Vike.PageContext & Vike.PageContextServer; type PageContext<Data = unknown> = PageContextClient<Data> | PageContextServer<Data>; type PageContextClient<Data = unknown> = PageContextBuiltInClientWithClientRouting<Data> & { /** https://vike.dev/warning/internals */ dangerouslyUseInternals: DangerouslyUseInternals<PageContextInternalClient_ClientRouting & PageContextInternalClientAfterRender & PageContextPublicProxyClient>; } & Vike.PageContext & Vike.PageContextClient; type PageContextWithServerRouting<Data = unknown> = PageContextClientWithServerRouting<Data> | PageContextServer<Data>; type PageContextClientWithServerRouting<Data = unknown> = PageContextBuiltInClientWithServerRouting<Data> & Vike.PageContext & Vike.PageContextClient; type PageContextBuiltInCommon<Data> = PageContextConfig & { /** * Useful for distinguishing `pageContext` from other objects and narrowing down TypeScript unions. * * https://vike.dev/pageContext#typescript */ isPageContext: true; /** The `export { Page }` of your `.page.js` file. * * https://vike.dev/Page * https://vike.dev/pageContext#Page */ Page: Config['Page']; /** Route Parameters, e.g. `pageContext.routeParams.productId` for a Route String `/product/@productId`. * * https://vike.dev/route-string * https://vike.dev/pageContext#routeParams */ routeParams: Record<string, string>; /** The page's data which was fetched using the data() hook. * * https://vike.dev/data * https://vike.dev/pageContext#data */ data: Data; /** * The HTTP response headers. * * https://vike.dev/headers#response */ headersResponse: Headers; /** If an error occurs, whether the error is a `404 Page Not Found`. * * https://vike.dev/error-page */ is404: boolean | null; /** * Whether the page was navigated by the client-side router. * * https://vike.dev/pageContext#isClientSideNavigation */ isClientSideNavigation: boolean; /** * The reason why the original page was aborted. Usually used for showing a custom message on the error page. * * https://vike.dev/render * https://vike.dev/pageContext#abortReason */ abortReason?: unknown; /** * The status code set by `throw render(abortStatusCode)`. * * https://vike.dev/render * https://vike.dev/pageContext#abortStatusCode */ abortStatusCode?: AbortStatusCode; /** * Error that occurred while rendering. * * https://vike.dev/error-tracking * https://vike.dev/pageContext#errorWhileRendering */ errorWhileRendering?: unknown; /** * The page's unique identifier. */ pageId: string | null; /** @experimental https://github.com/vikejs/vike/issues/1268 */ from: From; /** @experimental https://github.com/vikejs/vike/issues/1268 */ source: Source; /** @experimental https://github.com/vikejs/vike/issues/1268 */ sources: Sources; /** @deprecated */ pageExports: Record<string, unknown>; /** * Whether the Base URL is missing in the URL of the HTTP request made to the SSR server. * * https://vike.dev/base-url#setup * https://vike.dev/pageContext#isBaseMissing */ isBaseMissing?: true; }; type PageContextInit = { /** The URL provided when `renderPage({ urlOriginal })` is called. * * https://vike.dev/renderPage */ urlOriginal: string; /** * The HTTP request headers. * * The original object provided by the server. * * https://vike.dev/headers * https://vike.dev/pageContext#headersOriginal */ headersOriginal?: unknown; /** @deprecated Set `pageContextInit.urlOriginal` instead */ url?: string; /** @deprecated Set pageContextInit.headersOriginal instead */ headers?: Record<string, string>; }; type PageContextBuiltInServer<Data> = PageContextBuiltInCommon<Data> & PageContextInit & PageContextUrlServer & { /** * The HTTP request headers. * * As a string object normalized by Vike. * * https://vike.dev/headers * https://vike.dev/pageContext#headers */ headers: Record<string, string> | null; /** * Whether the environment is the client-side: * - In the browser, the value is `true`. * - Upon SSR and pre-rendering, the value is `false`. * * https://vike.dev/pageContext#isClientSide */ isClientSide: false; /** * Whether the page is being pre-rendered. * * The value is always `false` in development. * * https://vike.dev/pre-rendering * https://vike.dev/pageContext#isPrerendering */ isPrerendering: boolean; /** * Runtime information about your app. * * https://vike.dev/getGlobalContext * https://vike.dev/pageContext#globalContext */ globalContext: GlobalContextServer; /** * The CSP nonce. * * https://vike.dev/csp */ cspNonce: string | null; /** * List of previous `pageContext` aborted by `throw redirect()` or `throw render()` that led to the final rendered page. * * https://vike.dev/pageContext#pageContextsAborted */ pageContextsAborted: Partial<PageContextServer<Data>>[]; isHydration?: undefined; isBackwardNavigation?: undefined; isHistoryNavigation?: undefined; previousPageContext?: undefined; }; type PageContextBuiltInClientWithClientRouting<Data> = Partial<PageContextBuiltInCommon<Data>> & Pick<PageContextBuiltInCommon<Data>, 'Page' | 'routeParams' | 'pageExports' | 'config' | 'configEntries' | 'exports' | 'exportsAll' | 'abortReason' | 'data' | 'pageId' | 'source' | 'sources' | 'from'> & PageContextClientCommon & { /** * The current URL unprocessed (e.g. with the Base URL). */ urlOriginal: string; /** * Whether the page is the first page rendered. * * https://vike.dev/pageContext#isHydration */ isHydration: boolean; /** * Whether the user is navigating backward in history. * * The value is `true` when the user clicks on his browser's backward navigation button, or when invoking `history.back()`. * * https://vike.dev/pageContext#isBackwardNavigation */ isBackwardNavigation: boolean | null; /** * Whether the user is navigating back or forward in history. * * The value is `true` when the user clicks on his browser's backward/forward button, or when invoking `history.back()` or `history.forward()`. * * https://vike.dev/pageContext#isHistoryNavigation */ isHistoryNavigation: boolean; /** * Upon client-side page navigation, you can use `pageContext.previousPageContext` to access the `pageContext` of the previous page. * * https://vike.dev/pageContext#previousPageContext */ previousPageContext: PageContextClient<Data> | null; /** * List of previous `pageContext` aborted by `throw redirect()` or `throw render()` that led to the final rendered page. * * https://vike.dev/pageContext#pageContextsAborted */ pageContextsAborted: Partial<PageContextClient<Data>>[]; globalContext: GlobalContextClient; } & PageContextUrlClient; type PageContextBuiltInClientWithServerRouting<Data> = Partial<PageContextBuiltInCommon<Data>> & Pick<PageContextBuiltInCommon<Data>, 'Page' | 'pageExports' | 'exports' | 'abortReason' | 'pageId' | 'data'> & PageContextClientCommon & { /** * Whether the page is the first page rendered. * * The value is always `true` when using Server Routing. * * https://vike.dev/pageContext#isHydration */ isHydration: true; /** * Whether the user is navigating back in history. * * The `isBackwardNavigation` property only works with Client Routing. (The value is always `null` when using Server Routing.) * * https://vike.dev/pageContext#isBackwardNavigation */ isBackwardNavigation: null; /** * Whether the user is navigating back or forward in history. * * The `isHistoryNavigation` property only works with Client Routing. (The value is always `null` when using Server Routing.) * * https://vike.dev/pageContext#isHistoryNavigation */ isHistoryNavigation: null; globalContext: GlobalContextClientWithServerRouting; }; type PageContextClientCommon = { /** * Whether the environment is the client-side: * - In the browser, the value is `true`. * - Upon SSR and pre-rendering, the value is `false`. * * https://vike.dev/pageContext#isClientSide */ isClientSide: true; /** * Whether the page is being pre-rendered. * * The value is always `false` in development. * * https://vike.dev/pre-rendering * https://vike.dev/pageContext#isPrerendering */ isPrerendering: false; }; type PageContextInternalServer = Omit<PageContextBuiltInCommon<unknown> & PageContextUrlInternal, 'data' | 'globalContext'>; type OnlyUsers = 'data' | 'Page' | 'globalContext'; type PageContextInternalClient = Omit<PageContextInternalClient_ClientRouting | PageContextInternalClient_ServerRouting, OnlyUsers>; type PageContextInternalClient_ClientRouting = Omit<PageContextBuiltInClientWithClientRouting<unknown>, OnlyUsers | 'previousPageContext' | 'pageContextsAborted'> & { previousPageContext: { pageId: string; } | null; }; type PageContextInternalClient_ServerRouting = Omit<PageContextBuiltInClientWithServerRouting<unknown>, OnlyUsers>; /** @deprecated * Replace: * ``` * import type { PageContextBuiltInServer } from 'vike/types' * ``` * With: * ``` * import { PageContextServer } from 'vike/types' * ``` * * See https://vike.dev/pageContext#typescript */ type PageContextBuiltInServer_deprecated<_Page = never> = PageContextBuiltInServer<unknown>; /** @deprecated * Replace: * ``` * import type { PageContextBuiltInClientWithClientRouting } from 'vike/types' * ``` * With: * ``` * import { PageContextClient } from 'vike/types' * ``` * * See https://vike.dev/pageContext#typescript */ type PageContextBuiltInClientWithClientRouting_deprecated<_Page = never> = PageContextBuiltInClientWithClientRouting<unknown>; /** @deprecated * Replace: * ``` * import type { PageContextBuiltInClientWithServerRouting } from 'vike/types' * ``` * With: * ``` * import { PageContextClientWithServerRouting as PageContextClient } from 'vike/types' * ``` * * See https://vike.dev/pageContext#typescript */ type PageContextBuiltInClientWithServerRouting_deprecated<_Page = never> = PageContextBuiltInClientWithServerRouting<unknown>;