UNPKG

vike

Version:

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

109 lines (108 loc) 4.58 kB
export { redirect }; export { render }; export { RenderErrorPage }; export { isAbortError }; export { isAbortPageContext }; export { logAbortErrorHandled }; export { getPageContextFromAllRewrites }; export { AbortRender }; export { assertNoInfiniteAbortLoop }; export type { RedirectStatusCode }; export type { AbortStatusCode }; export type { ErrorAbort }; export type { PageContextFromRewrite }; export type { UrlRedirect }; type RedirectStatusCode = number & Parameters<typeof redirect>[1]; type AbortStatusCode = number & Parameters<typeof render>[0]; type UrlRedirect = { url: string; statusCode: RedirectStatusCode; }; type AbortRedirect = Error; type AbortReason = Required<({ abortReason?: unknown; } & Vike.PageContext)['abortReason']>; /** * Abort the rendering of the current page, and redirect the user to another URL instead. * * https://vike.dev/redirect * * @param url The URL to redirect to. * @param statusCode By default a temporary redirection (`302`) is performed. For permanent redirections (`301`), use `config.redirects` https://vike.dev/redirects instead or, alternatively, set the `statusCode` argument to `301`. */ declare function redirect(url: string, statusCode?: 301 | 302): AbortRedirect; /** * Abort the rendering of the current page, and render the error page instead. * * https://vike.dev/render * * @param abortStatusCode * One of the following: * `401` Unauthorized (user isn't logged in) * `403` Forbidden (user is logged in but isn't allowed) * `404` Not Found * `410` Gone (use this instead of `404` if the page existed in the past, see https://github.com/vikejs/vike/issues/1097#issuecomment-1695260887) * `429` Too Many Requests (rate limiting) * `500` Internal Server Error (your client or server has a bug) * `503` Service Unavailable (server is overloaded, or a third-party API isn't responding) * @param abortReason Sets `pageContext.abortReason` which is usually used by the error page to show a message to the user, see https://vike.dev/error-page */ declare function render(abortStatusCode: 401 | 403 | 404 | 410 | 429 | 500 | 503, abortReason?: AbortReason): Error; /** * Abort the rendering of the current page, and render another page instead. * * https://vike.dev/render * * @param url The URL to render. * @param abortReason Sets `pageContext.abortReason` which is used by the error page to show a message to the user, see https://vike.dev/error-page */ declare function render(url: `/${string}`, abortReason?: AbortReason): Error; type AbortCall = `redirect(${string})` | `render(${string})` | `RenderErrorPage()`; type AbortCaller = `throw redirect()` | `throw render()` | `throw RenderErrorPage()`; type PageContextAbort = { _abortCall: AbortCall; _abortCaller: AbortCaller; } & (({ _abortCall: `redirect(${string})`; _abortCaller: 'throw redirect()'; _urlRedirect: UrlRedirect; } & Omit<AbortUndefined, '_urlRedirect'>) | ({ _abortCall: `render(${string})` | `RenderErrorPage()`; _abortCaller: 'throw render()' | 'throw RenderErrorPage()'; abortReason: undefined | unknown; _urlRewrite: string; } & Omit<AbortUndefined, '_urlRewrite'>) | ({ _abortCall: `render(${string})` | `RenderErrorPage()`; _abortCaller: 'throw render()' | 'throw RenderErrorPage()'; abortReason: undefined | unknown; abortStatusCode: number; } & Omit<AbortUndefined, 'abortStatusCode'>)); type AbortUndefined = { _urlRedirect?: undefined; _urlRewrite?: undefined; abortStatusCode?: undefined; }; declare function AbortRender(pageContextAbort: PageContextAbort): Error; /** * @deprecated Use `throw render()` or `throw redirect()` instead, see https://vike.dev/render' */ declare function RenderErrorPage({ pageContext }?: { pageContext?: Record<string, unknown>; }): Error; type ErrorAbort = { _pageContextAbort: PageContextAbort; }; declare function isAbortError(thing: unknown): thing is ErrorAbort; declare function isAbortPageContext(pageContext: Record<string, unknown>): pageContext is PageContextAbort; declare function logAbortErrorHandled(err: ErrorAbort, isProduction: boolean, pageContext: { urlOriginal: string; _urlRewrite: null | string; }): void; type PageContextFromRewrite = { _urlRewrite: string; }; type PageContextFromAllRewrites = { _urlRewrite: null | string; }; declare function getPageContextFromAllRewrites(pageContextsFromRewrite: PageContextFromRewrite[]): PageContextFromAllRewrites; declare function assertNoInfiniteAbortLoop(rewriteCount: number, redirectCount: number): void;