next
Version:
The React Framework
108 lines (107 loc) • 4.74 kB
TypeScript
/// <reference types="node" />
import type { WebNextRequest, WebNextResponse } from './base-http/web';
import type { RenderOpts } from './render';
import type RenderResult from './render-result';
import type { NextParsedUrlQuery, NextUrlWithParsedQuery } from './request-meta';
import type { Params } from '../shared/lib/router/utils/route-matcher';
import type { PayloadOptions } from './send-payload';
import type { LoadComponentsReturnType } from './load-components';
import type { BaseNextRequest, BaseNextResponse } from './base-http';
import type { UrlWithParsedQuery } from 'url';
import BaseServer, { Options } from './base-server';
import WebResponseCache from './response-cache/web';
import { IncrementalCache } from './lib/incremental-cache';
import { PrerenderManifest } from '../build';
interface WebServerOptions extends Options {
webServerConfig: {
page: string;
normalizedPage: string;
pagesType: 'app' | 'pages' | 'root';
loadComponent: (pathname: string) => Promise<LoadComponentsReturnType | null>;
extendRenderOpts: Partial<BaseServer['renderOpts']> & Pick<BaseServer['renderOpts'], 'buildId'>;
renderToHTML: typeof import('./app-render/app-render').renderToHTMLOrFlight | undefined;
incrementalCacheHandler?: any;
prerenderManifest: PrerenderManifest | undefined;
};
}
export default class NextWebServer extends BaseServer<WebServerOptions> {
constructor(options: WebServerOptions);
protected handleCompression(): void;
protected getIncrementalCache({ requestHeaders, }: {
requestHeaders: IncrementalCache['requestHeaders'];
}): IncrementalCache;
protected getResponseCache(): WebResponseCache;
protected getCustomRoutes(): {
headers: never[];
rewrites: {
fallback: never[];
afterFiles: never[];
beforeFiles: never[];
};
redirects: never[];
};
protected run(req: BaseNextRequest, res: BaseNextResponse, parsedUrl: UrlWithParsedQuery): Promise<void>;
protected hasPage(page: string): Promise<boolean>;
protected getPublicDir(): string;
protected getBuildId(): string;
protected loadEnvConfig(): void;
protected getHasAppDir(): boolean;
protected getHasStaticDir(): boolean;
protected getFallback(): Promise<string>;
protected getFontManifest(): undefined;
protected getPagesManifest(): {
[x: string]: string;
};
protected getAppPathsManifest(): {
[x: string]: string;
};
protected getFilesystemPaths(): Set<string>;
protected attachRequestMeta(req: WebNextRequest, parsedUrl: NextUrlWithParsedQuery): void;
protected getPrerenderManifest(): PrerenderManifest | {
version: any;
routes: {};
dynamicRoutes: {};
notFoundRoutes: never[];
preview: any;
};
protected getNextFontManifest(): import("../build/webpack/plugins/next-font-manifest-plugin").NextFontManifest | undefined;
protected normalizeNextData(req: BaseNextRequest, res: BaseNextResponse, parsedUrl: NextUrlWithParsedQuery): Promise<{
finished: boolean;
}>;
protected handleCatchallRenderRequest(req: BaseNextRequest, res: BaseNextResponse, parsedUrl: NextUrlWithParsedQuery): Promise<{
finished: boolean;
}>;
protected handleApiRequest(): Promise<boolean>;
protected renderHTML(req: WebNextRequest, res: WebNextResponse, pathname: string, query: NextParsedUrlQuery, renderOpts: RenderOpts): Promise<RenderResult>;
protected sendRenderResult(_req: WebNextRequest, res: WebNextResponse, options: {
result: RenderResult;
type: 'html' | 'json';
generateEtags: boolean;
poweredByHeader: boolean;
options?: PayloadOptions | undefined;
}): Promise<void>;
protected runApi(): Promise<boolean>;
protected findPageComponents({ pathname, query, params, }: {
pathname: string;
query: NextParsedUrlQuery;
params: Params | null;
isAppPath: boolean;
}): Promise<{
query: {
[x: string]: any;
__nextNotFoundSrcPage?: string | undefined;
__nextDefaultLocale?: string | undefined;
__nextFallback?: "true" | undefined;
__nextLocale?: string | undefined;
__nextInferredLocaleFromDefault?: "1" | undefined;
__nextSsgPath?: string | undefined;
_nextBubbleNoFallback?: "1" | undefined;
__nextDataReq?: "1" | undefined;
__nextCustomErrorRender?: "1" | undefined;
_rsc?: string | undefined;
amp?: "1" | undefined;
};
components: LoadComponentsReturnType;
} | null>;
}
export {};