diff --git a/packages/next/src/server/next.ts b/packages/next/src/server/next.ts index 530793da01fb3..93169c36188ba 100644 --- a/packages/next/src/server/next.ts +++ b/packages/next/src/server/next.ts @@ -6,7 +6,7 @@ import type { import type { UrlWithParsedQuery } from 'url' import type { IncomingMessage, ServerResponse } from 'http' import type { Duplex } from 'stream' -import type { NextUrlWithParsedQuery } from './request-meta' +import type { NextParsedUrlQuery, NextUrlWithParsedQuery } from './request-meta' import type { WorkerRequestHandler, WorkerUpgradeHandler } from './lib/types' import './require-hook' @@ -26,6 +26,7 @@ import { getTracer } from './lib/trace/tracer' import { NextServerSpan } from './lib/trace/constants' import { formatUrl } from '../shared/lib/router/utils/format-url' import type { ServerFields } from './lib/router-utils/setup-dev-bundler' +import type { ParsedUrlQuery } from 'querystring' let ServerImpl: typeof NextNodeServer @@ -57,7 +58,7 @@ export type UpgradeHandler = ( const SYMBOL_LOAD_CONFIG = Symbol('next.load_config') -export interface NextWrapperServer { +export interface NextWrapperServer extends LegacyServerMethods { // NOTE: the methods/properties here are the public API for custom servers. // Consider backwards compatibilty when changing something here! @@ -72,54 +73,74 @@ export interface NextWrapperServer { // used internally getUpgradeHandler(): UpgradeHandler +} - // legacy exposed methods - +interface LegacyServerMethods { /** * @deprecated * This method is public for legacy reasons and may be removed in a future release. * */ - logError(...args: Parameters): void + logError(err: Error): void /** * @deprecated * This method is only public for backwards compatibility, and may change or be removed in a future release. * */ render( - ...args: Parameters - ): ReturnType + req: IncomingMessage, + res: ServerResponse, + pathname: string, + query?: NextParsedUrlQuery, + parsedUrl?: NextUrlWithParsedQuery, + internal?: boolean + ): Promise /** * @deprecated * This method is only public for backwards compatibility, and may change or be removed in a future release. * */ renderToHTML( - ...args: Parameters - ): ReturnType + req: IncomingMessage, + res: ServerResponse, + pathname: string, + query?: ParsedUrlQuery + ): Promise /** * @deprecated * This method is only public for backwards compatibility, and may change or be removed in a future release. * */ renderError( - ...args: Parameters - ): ReturnType + err: Error | null, + req: IncomingMessage, + res: ServerResponse, + pathname: string, + query?: NextParsedUrlQuery, + setHeaders?: boolean + ): Promise /** * @deprecated * This method is only public for backwards compatibility, and may change or be removed in a future release. * */ renderErrorToHTML( - ...args: Parameters - ): ReturnType + err: Error | null, + req: IncomingMessage, + res: ServerResponse, + pathname: string, + query?: ParsedUrlQuery + ): Promise /** * @deprecated * This method is only public for backwards compatibility, and may change or be removed in a future release. * */ render404( - ...args: Parameters - ): ReturnType + req: IncomingMessage, + res: ServerResponse, + parsedUrl?: NextUrlWithParsedQuery, + setHeaders?: boolean + ): Promise } /** The wrapper server used by `next start` */