UNPKG

vike

Version:

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

569 lines (568 loc) 21.4 kB
export { runPrerender }; export type { PrerenderOptions }; export type { PrerenderContextPublic }; export type { PrerenderTrigger }; import type { PageFile } from '../../shared/getPageFiles.js'; import { type GlobalContextServerInternal } from '../runtime/globalContext.js'; import { type ResolvedConfig } from 'vite'; import type { APIOptions } from '../api/types.js'; type ProvidedByHook = null | { hookFilePath: string; hookName: 'onBeforePrerenderStart' | 'prerender'; }; type ProvidedByHookTransformer = null | { hookFilePath: string; hookName: 'onPrerenderStart' | 'onBeforePrerender'; }; type PageContextPrerendered = { urlOriginal: string; _providedByHook?: ProvidedByHook; pageId: string | null; isRedirect?: true; is404: boolean; }; type PrerenderedPageContexts = Record<string, PageContextPrerendered>; type PrerenderContextPublic = Pick<PrerenderContext, 'pageContexts' | 'output'>; type PrerenderContext = { pageContexts: PageContext[]; output: Output; _pageContextInit: Record<string, unknown> | null; _noExtraDir: boolean | null; _prerenderedPageContexts: PrerenderedPageContexts; }; type Output<PageContext = PageContextPrerendered> = { filePath: string; fileType: FileType; fileContent: string; pageContext: PageContext; }[]; type FileType = 'HTML' | 'JSON'; type PageContext = Awaited<ReturnType<typeof createPageContextPrerendering>> & { _urlOriginalBeforeHook?: string; }; type PrerenderOptions = APIOptions & { /** Initial `pageContext` values */ pageContextInit?: Record<string, unknown>; /** @experimental Don't use without having talked to a vike maintainer. */ onPagePrerender?: Function; /** @deprecated Define `prerender({ viteConfig: { root }})` instead. */ root?: string; /** @deprecated Define `prerender({ viteConfig: { configFile }})` instead. */ configFile?: string; /** @deprecated Define `partial` in vite.config.js instead, see https://vike.dev/prerender */ partial?: boolean; /** @deprecated Define `noExtraDir` in vite.config.js instead, see https://vike.dev/prerender */ noExtraDir?: boolean; /** @deprecated Define `parallel` in vite.config.js instead, see https://vike.dev/prerender */ parallel?: number; /** @deprecated */ outDir?: string; /** @deprecated */ base?: string; }; type PrerenderTrigger = '$ vike prerender' | 'prerender()' | 'auto-run'; declare function runPrerender(options: PrerenderOptions | undefined, trigger: PrerenderTrigger): Promise<{ viteConfig: ResolvedConfig; }>; declare function createPageContextPrerendering(urlOriginal: string, prerenderContext: PrerenderContext, globalContext: GlobalContextServerInternal, is404: boolean, pageId: string | undefined, providedByHook: ProvidedByHook): Promise<((({ _isOriginalObject: true; isPageContext: true; } & { isClientSide: false; isPrerendering: boolean; } & Pick<import("../../types/PageContext.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & { url?: string; headers?: Record<string, string>; } & { _globalContext: { isGlobalContext: true; _isOriginalObject: true; _virtualFileExports: unknown; _pageFilesAll: PageFile[]; _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[]; _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime; _allPageIds: string[]; _vikeConfigPublicGlobal: { config: import("../../types/index.js").ConfigResolved; _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source; _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources; _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From; }; config: import("../../types/index.js").ConfigResolved; pages: { [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager; }; } & ({ _isProduction: false; _isPrerendering: false; assetsManifest: null; _viteDevServer: import("vite").ViteDevServer; viteConfig: ResolvedConfig; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; } | { _isPrerendering: true; viteConfig: ResolvedConfig; _isProduction: true; assetsManifest: import("../../types/ViteManifest.js").ViteManifest; _viteDevServer: null; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; _usesClientRouter: boolean; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; } | { _isPrerendering: false; viteConfig: null; _isProduction: true; assetsManifest: import("../../types/ViteManifest.js").ViteManifest; _viteDevServer: null; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; _usesClientRouter: boolean; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; }); _pageFilesAll: PageFile[]; _baseServer: string; _baseAssets: string; _pageContextInit: import("../runtime/renderPage.js").PageContextInit; _urlRewrite: null; _urlHandler: ((url: string) => string) | null; isClientSideNavigation: boolean; } & { config: import("../../types/index.js").ConfigResolved; _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source; _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources; _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From; } & { urlParsed: import("../runtime/utils.js").UrlPublic; urlPathname: string; url: string; } & { headers: Record<string, string> | null; } & { _urlHandler: null; _httpRequestId: null; _urlRewrite: null; _noExtraDir: boolean | null; _prerenderContext: PrerenderContext; _providedByHook: ProvidedByHook; _urlOriginalModifiedByHook: ProvidedByHookTransformer; is404: boolean; } & import("../../shared/route/index.js").PageContextFromRoute & Record<"pageId", string>) | ({ _isOriginalObject: true; isPageContext: true; } & { isClientSide: false; isPrerendering: boolean; } & Pick<import("../../types/PageContext.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & { url?: string; headers?: Record<string, string>; } & { _globalContext: { isGlobalContext: true; _isOriginalObject: true; _virtualFileExports: unknown; _pageFilesAll: PageFile[]; _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[]; _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime; _allPageIds: string[]; _vikeConfigPublicGlobal: { config: import("../../types/index.js").ConfigResolved; _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source; _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources; _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From; }; config: import("../../types/index.js").ConfigResolved; pages: { [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager; }; } & ({ _isProduction: false; _isPrerendering: false; assetsManifest: null; _viteDevServer: import("vite").ViteDevServer; viteConfig: ResolvedConfig; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; } | { _isPrerendering: true; viteConfig: ResolvedConfig; _isProduction: true; assetsManifest: import("../../types/ViteManifest.js").ViteManifest; _viteDevServer: null; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; _usesClientRouter: boolean; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; } | { _isPrerendering: false; viteConfig: null; _isProduction: true; assetsManifest: import("../../types/ViteManifest.js").ViteManifest; _viteDevServer: null; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; _usesClientRouter: boolean; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; }); _pageFilesAll: PageFile[]; _baseServer: string; _baseAssets: string; _pageContextInit: import("../runtime/renderPage.js").PageContextInit; _urlRewrite: null; _urlHandler: ((url: string) => string) | null; isClientSideNavigation: boolean; } & { config: import("../../types/index.js").ConfigResolved; _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source; _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources; _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From; } & { urlParsed: import("../runtime/utils.js").UrlPublic; urlPathname: string; url: string; } & { headers: Record<string, string> | null; } & { _urlHandler: null; _httpRequestId: null; _urlRewrite: null; _noExtraDir: boolean | null; _prerenderContext: PrerenderContext; _providedByHook: ProvidedByHook; _urlOriginalModifiedByHook: ProvidedByHookTransformer; is404: boolean; } & { pageId: string; _debugRouteMatches: never[]; routeParams: {}; })) & (((({ _isOriginalObject: true; isPageContext: true; } & { isClientSide: false; isPrerendering: boolean; } & Pick<import("../../types/PageContext.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & { url?: string; headers?: Record<string, string>; } & { _globalContext: { isGlobalContext: true; _isOriginalObject: true; _virtualFileExports: unknown; _pageFilesAll: PageFile[]; _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[]; _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime; _allPageIds: string[]; _vikeConfigPublicGlobal: { config: import("../../types/index.js").ConfigResolved; _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source; _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources; _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From; }; config: import("../../types/index.js").ConfigResolved; pages: { [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager; }; } & ({ _isProduction: false; _isPrerendering: false; assetsManifest: null; _viteDevServer: import("vite").ViteDevServer; viteConfig: ResolvedConfig; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; } | { _isPrerendering: true; viteConfig: ResolvedConfig; _isProduction: true; assetsManifest: import("../../types/ViteManifest.js").ViteManifest; _viteDevServer: null; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; _usesClientRouter: boolean; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; } | { _isPrerendering: false; viteConfig: null; _isProduction: true; assetsManifest: import("../../types/ViteManifest.js").ViteManifest; _viteDevServer: null; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; _usesClientRouter: boolean; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; }); _pageFilesAll: PageFile[]; _baseServer: string; _baseAssets: string; _pageContextInit: import("../runtime/renderPage.js").PageContextInit; _urlRewrite: null; _urlHandler: ((url: string) => string) | null; isClientSideNavigation: boolean; } & { config: import("../../types/index.js").ConfigResolved; _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source; _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources; _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From; } & { urlParsed: import("../runtime/utils.js").UrlPublic; urlPathname: string; url: string; } & { headers: Record<string, string> | null; } & { _urlHandler: null; _httpRequestId: null; _urlRewrite: null; _noExtraDir: boolean | null; _prerenderContext: PrerenderContext; _providedByHook: ProvidedByHook; _urlOriginalModifiedByHook: ProvidedByHookTransformer; is404: boolean; } & import("../../shared/route/index.js").PageContextFromRoute & Record<"pageId", string>) | ({ _isOriginalObject: true; isPageContext: true; } & { isClientSide: false; isPrerendering: boolean; } & Pick<import("../../types/PageContext.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & { url?: string; headers?: Record<string, string>; } & { _globalContext: { isGlobalContext: true; _isOriginalObject: true; _virtualFileExports: unknown; _pageFilesAll: PageFile[]; _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[]; _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime; _allPageIds: string[]; _vikeConfigPublicGlobal: { config: import("../../types/index.js").ConfigResolved; _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source; _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources; _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From; }; config: import("../../types/index.js").ConfigResolved; pages: { [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager; }; } & ({ _isProduction: false; _isPrerendering: false; assetsManifest: null; _viteDevServer: import("vite").ViteDevServer; viteConfig: ResolvedConfig; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; } | { _isPrerendering: true; viteConfig: ResolvedConfig; _isProduction: true; assetsManifest: import("../../types/ViteManifest.js").ViteManifest; _viteDevServer: null; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; _usesClientRouter: boolean; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; } | { _isPrerendering: false; viteConfig: null; _isProduction: true; assetsManifest: import("../../types/ViteManifest.js").ViteManifest; _viteDevServer: null; viteConfigRuntime: { root: string; build: { outDir: string; }; _baseViteOriginal: string; vitePluginServerEntry: { inject: boolean | undefined; }; }; _usesClientRouter: boolean; baseServer: string; baseAssets: string; isClientSide: false; _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes; _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null; }); _pageFilesAll: PageFile[]; _baseServer: string; _baseAssets: string; _pageContextInit: import("../runtime/renderPage.js").PageContextInit; _urlRewrite: null; _urlHandler: ((url: string) => string) | null; isClientSideNavigation: boolean; } & { config: import("../../types/index.js").ConfigResolved; _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source; _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources; _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From; } & { urlParsed: import("../runtime/utils.js").UrlPublic; urlPathname: string; url: string; } & { headers: Record<string, string> | null; } & { _urlHandler: null; _httpRequestId: null; _urlRewrite: null; _noExtraDir: boolean | null; _prerenderContext: PrerenderContext; _providedByHook: ProvidedByHook; _urlOriginalModifiedByHook: ProvidedByHookTransformer; is404: boolean; } & { pageId: string; _debugRouteMatches: never[]; routeParams: {}; })) & import("../../shared/getPageFiles.js").VikeConfigPublicPageLazy) & { Page: unknown; _isHtmlOnly: boolean; _passToClient: string[]; _pageFilePathsLoaded: string[]; } & { __getPageAssets: () => Promise<import("../runtime/renderPage/getPageAssets.js").PageAsset[]>; })) & { _usesClientRouter: boolean; }>;