diff --git a/goldens/public-api/angular/ssr/index.api.md b/goldens/public-api/angular/ssr/index.api.md index f8db8663c89b..bf56e3d29c15 100644 --- a/goldens/public-api/angular/ssr/index.api.md +++ b/goldens/public-api/angular/ssr/index.api.md @@ -33,6 +33,9 @@ export enum RenderMode { Server = 1 } +// @public +export type RequestHandlerFunction = (request: Request) => Promise | null | Response; + // @public export type ServerRoute = ServerRouteAppShell | ServerRouteClient | ServerRoutePrerender | ServerRoutePrerenderWithParams | ServerRouteServer; diff --git a/goldens/public-api/angular/ssr/node/index.api.md b/goldens/public-api/angular/ssr/node/index.api.md index 27e3a967804e..9b196f0bfd41 100644 --- a/goldens/public-api/angular/ssr/node/index.api.md +++ b/goldens/public-api/angular/ssr/node/index.api.md @@ -43,7 +43,7 @@ export interface CommonEngineRenderOptions { } // @public -export function createNodeRequestHandler(handler: T): T; +export function createNodeRequestHandler(handler: T): T; // @public export function createWebRequestFromNodeRequest(nodeRequest: IncomingMessage): Request; @@ -51,6 +51,9 @@ export function createWebRequestFromNodeRequest(nodeRequest: IncomingMessage): R // @public export function isMainModule(url: string): boolean; +// @public +export type NodeRequestHandlerFunction = (req: IncomingMessage, res: ServerResponse, next: (err?: unknown) => void) => Promise | void; + // @public export function writeResponseToNodeResponse(source: Response, destination: ServerResponse): Promise; diff --git a/packages/angular/ssr/node/public_api.ts b/packages/angular/ssr/node/public_api.ts index a08d88d2738e..81932873a440 100644 --- a/packages/angular/ssr/node/public_api.ts +++ b/packages/angular/ssr/node/public_api.ts @@ -14,7 +14,7 @@ export { export { AngularNodeAppEngine } from './src/app-engine'; -export { createNodeRequestHandler } from './src/handler'; +export { createNodeRequestHandler, type NodeRequestHandlerFunction } from './src/handler'; export { writeResponseToNodeResponse } from './src/response'; export { createWebRequestFromNodeRequest } from './src/request'; export { isMainModule } from './src/module'; diff --git a/packages/angular/ssr/node/src/handler.ts b/packages/angular/ssr/node/src/handler.ts index 40fedb46e0f6..be67c1dcb339 100644 --- a/packages/angular/ssr/node/src/handler.ts +++ b/packages/angular/ssr/node/src/handler.ts @@ -16,8 +16,9 @@ import type { IncomingMessage, ServerResponse } from 'node:http'; * @param next - A callback function that signals the completion of the middleware or forwards the error if provided. * * @returns A Promise that resolves to void or simply void. The handler can be asynchronous. + * @developerPreview */ -type RequestHandlerFunction = ( +export type NodeRequestHandlerFunction = ( req: IncomingMessage, res: ServerResponse, next: (err?: unknown) => void, @@ -67,7 +68,7 @@ type RequestHandlerFunction = ( * ``` * @developerPreview */ -export function createNodeRequestHandler(handler: T): T { +export function createNodeRequestHandler(handler: T): T { (handler as T & { __ng_node_request_handler__?: boolean })['__ng_node_request_handler__'] = true; return handler; diff --git a/packages/angular/ssr/public_api.ts b/packages/angular/ssr/public_api.ts index bf751f07a374..a8a707e13f29 100644 --- a/packages/angular/ssr/public_api.ts +++ b/packages/angular/ssr/public_api.ts @@ -9,7 +9,7 @@ export * from './private_export'; export { AngularAppEngine } from './src/app-engine'; -export { createRequestHandler } from './src/handler'; +export { createRequestHandler, type RequestHandlerFunction } from './src/handler'; export { type PrerenderFallback, diff --git a/packages/angular/ssr/src/handler.ts b/packages/angular/ssr/src/handler.ts index 16425ff3ccb2..e375b327f829 100644 --- a/packages/angular/ssr/src/handler.ts +++ b/packages/angular/ssr/src/handler.ts @@ -12,8 +12,11 @@ * @param request - The incoming HTTP request object. * @returns A Promise resolving to a `Response` object, `null`, or directly a `Response`, * supporting both synchronous and asynchronous handling. + * @developerPreview */ -type RequestHandlerFunction = (request: Request) => Promise | null | Response; +export type RequestHandlerFunction = ( + request: Request, +) => Promise | null | Response; /** * Annotates a request handler function with metadata, marking it as a special