nuxt
Version:
33 lines • 1.62 kB
TypeScript
import { NuxtRendererOptions } from "./runtime.js";
import { App } from "vue";
import { RendererContext } from "vue-bundle-renderer/runtime";
import { NuxtSSRContext } from "#app/types";
//#region src/runtime/server/renderer/build-files.d.ts
export type Entry = (ssrContext: NuxtSSRContext) => Promise<App>;
export declare const APP_ROOT_OPEN_TAG: string;
export declare const APP_ROOT_CLOSE_TAG: string;
interface Renderer {
rendererContext: RendererContext;
renderToString(ssrContext: NuxtSSRContext): Promise<{
html: string;
renderResourceHeaders: () => Record<string, string>;
renderResourceHints: () => string;
renderStyles: () => string;
renderScripts: () => string;
}>;
}
/** The build artifacts a set of renderer options renders with, loaded once per renderer. */
export interface BuildFiles {
/** The renderer for a request: the SSR renderer, or the SPA shell for a request opted out of it. */
getRenderer(ssrContext: NuxtSSRContext): Promise<Renderer>;
/** The SSR renderer, for a consumer that renders a document fragment (an island) rather than a route. */
getSSRRenderer(): Promise<Renderer>;
/** The SSR app factory, which streaming needs directly. */
getServerApp(): Promise<Entry>;
}
/** Load the build artifacts for a set of renderer options, caching each of them on the returned object. */
export declare function createBuildFiles(options: NuxtRendererOptions): BuildFiles;
export declare const getSSRStyles: () => Promise<Record<string, () => Promise<string[]>>>;
export declare const getInlinedCSS: () => Promise<Record<string, string[][]>>;
//#endregion
export {};