web-server.d.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /// <reference types="node" />
  2. import type { WebNextRequest, WebNextResponse } from './base-http/web';
  3. import type { RenderOpts } from './render';
  4. import type RenderResult from './render-result';
  5. import type { NextParsedUrlQuery, NextUrlWithParsedQuery } from './request-meta';
  6. import type { Params } from '../shared/lib/router/utils/route-matcher';
  7. import type { PayloadOptions } from './send-payload';
  8. import type { LoadComponentsReturnType } from './load-components';
  9. import { Options } from './base-server';
  10. import type { DynamicRoutes, PageChecker, Route } from './router';
  11. import type { NextConfig } from './config-shared';
  12. import BaseServer from './base-server';
  13. import WebResponseCache from './response-cache/web';
  14. import type { BaseNextRequest, BaseNextResponse } from './base-http';
  15. import type { UrlWithParsedQuery } from 'url';
  16. interface WebServerOptions extends Options {
  17. webServerConfig: {
  18. page: string;
  19. loadComponent: (pathname: string) => Promise<LoadComponentsReturnType | null>;
  20. extendRenderOpts: Partial<BaseServer['renderOpts']> & Pick<BaseServer['renderOpts'], 'buildId'>;
  21. pagesRenderToHTML?: typeof import('./render').renderToHTML;
  22. appRenderToHTML?: typeof import('./app-render').renderToHTMLOrFlight;
  23. };
  24. }
  25. export default class NextWebServer extends BaseServer<WebServerOptions> {
  26. constructor(options: WebServerOptions);
  27. protected handleCompression(): void;
  28. protected getResponseCache(): WebResponseCache;
  29. protected getCustomRoutes(): {
  30. headers: never[];
  31. rewrites: {
  32. fallback: never[];
  33. afterFiles: never[];
  34. beforeFiles: never[];
  35. };
  36. redirects: never[];
  37. };
  38. protected run(req: BaseNextRequest, res: BaseNextResponse, parsedUrl: UrlWithParsedQuery): Promise<void>;
  39. protected hasPage(page: string): Promise<boolean>;
  40. protected getPublicDir(): string;
  41. protected getBuildId(): string;
  42. protected loadEnvConfig(): void;
  43. protected getHasStaticDir(): boolean;
  44. protected getFallback(): Promise<string>;
  45. protected getFontManifest(): undefined;
  46. protected getPagesManifest(): {
  47. [x: string]: string;
  48. };
  49. protected getAppPathsManifest(): {
  50. [x: string]: string;
  51. };
  52. protected getFilesystemPaths(): Set<string>;
  53. protected attachRequestMeta(req: WebNextRequest, parsedUrl: NextUrlWithParsedQuery): void;
  54. protected getPrerenderManifest(): {
  55. version: 3;
  56. routes: {};
  57. dynamicRoutes: {};
  58. notFoundRoutes: never[];
  59. preview: {
  60. previewModeId: string;
  61. previewModeSigningKey: string;
  62. previewModeEncryptionKey: string;
  63. };
  64. };
  65. protected getServerComponentManifest(): any;
  66. protected getServerCSSManifest(): any;
  67. protected generateRoutes(): {
  68. headers: Route[];
  69. rewrites: {
  70. beforeFiles: Route[];
  71. afterFiles: Route[];
  72. fallback: Route[];
  73. };
  74. fsRoutes: Route[];
  75. redirects: Route[];
  76. catchAllRoute: Route;
  77. catchAllMiddleware: Route[];
  78. pageChecker: PageChecker;
  79. useFileSystemPublicRoutes: boolean;
  80. dynamicRoutes: DynamicRoutes | undefined;
  81. nextConfig: NextConfig;
  82. };
  83. protected handleApiRequest(): Promise<boolean>;
  84. protected renderHTML(req: WebNextRequest, _res: WebNextResponse, pathname: string, query: NextParsedUrlQuery, renderOpts: RenderOpts): Promise<RenderResult | null>;
  85. protected sendRenderResult(_req: WebNextRequest, res: WebNextResponse, options: {
  86. result: RenderResult;
  87. type: 'html' | 'json';
  88. generateEtags: boolean;
  89. poweredByHeader: boolean;
  90. options?: PayloadOptions | undefined;
  91. }): Promise<void>;
  92. protected runApi(): Promise<boolean>;
  93. protected findPageComponents({ pathname, query, params, }: {
  94. pathname: string;
  95. query: NextParsedUrlQuery;
  96. params: Params | null;
  97. isAppPath: boolean;
  98. }): Promise<{
  99. query: {
  100. [x: string]: any;
  101. __nextNotFoundSrcPage?: string | undefined;
  102. __nextDefaultLocale?: string | undefined;
  103. __nextFallback?: "true" | undefined;
  104. __nextLocale?: string | undefined;
  105. __nextSsgPath?: string | undefined;
  106. _nextBubbleNoFallback?: "1" | undefined;
  107. __nextDataReq?: "1" | undefined;
  108. __nextCustomErrorRender?: "1" | undefined;
  109. amp?: "1" | undefined;
  110. };
  111. components: LoadComponentsReturnType;
  112. } | null>;
  113. }
  114. export {};