From cfd0ab69a02f7094266830134c054b8a0ce4e723 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 20 Dec 2023 18:39:59 -0300 Subject: [PATCH 1/4] feat: Implement getHeader and appendHeader methods in adapters The setHeader method would replace a header, while there can be multiple headers with the same name --- packages/core/adapters/http-adapter.ts | 4 ++++ packages/platform-express/adapters/express-adapter.ts | 8 ++++++++ packages/platform-fastify/adapters/fastify-adapter.ts | 8 ++++++++ 3 files changed, 20 insertions(+) diff --git a/packages/core/adapters/http-adapter.ts b/packages/core/adapters/http-adapter.ts index 6bfc4add701..79c6a8f452f 100644 --- a/packages/core/adapters/http-adapter.ts +++ b/packages/core/adapters/http-adapter.ts @@ -117,7 +117,11 @@ export abstract class AbstractHttpAdapter< abstract setErrorHandler(handler: Function, prefix?: string); abstract setNotFoundHandler(handler: Function, prefix?: string); abstract isHeadersSent(response: any); + // TODO remove optional signature (v11) + abstract getHeader?(response: any, name: string, value: string); abstract setHeader(response: any, name: string, value: string); + // TODO remove optional signature (v11) + abstract appendHeader?(response: any, name: string, value: string); abstract registerParserMiddleware(prefix?: string, rawBody?: boolean); abstract enableCors( options: CorsOptions | CorsOptionsDelegate, diff --git a/packages/platform-express/adapters/express-adapter.ts b/packages/platform-express/adapters/express-adapter.ts index faf26eb01bc..6ff37178b09 100644 --- a/packages/platform-express/adapters/express-adapter.ts +++ b/packages/platform-express/adapters/express-adapter.ts @@ -143,10 +143,18 @@ export class ExpressAdapter extends AbstractHttpAdapter< return response.headersSent; } + public getHeader?(response: any, name: string) { + return response.get(name); + } + public setHeader(response: any, name: string, value: string) { return response.set(name, value); } + public appendHeader?(response: any, name: string, value: string) { + return response.append(name, value); + } + public listen(port: string | number, callback?: () => void): Server; public listen( port: string | number, diff --git a/packages/platform-fastify/adapters/fastify-adapter.ts b/packages/platform-fastify/adapters/fastify-adapter.ts index c446729778d..3d9ff1e1df5 100644 --- a/packages/platform-fastify/adapters/fastify-adapter.ts +++ b/packages/platform-fastify/adapters/fastify-adapter.ts @@ -466,10 +466,18 @@ export class FastifyAdapter< return response.sent; } + public getHeader?(response: any, name: string, value: string) { + return response.getHeader(name, value); + } + public setHeader(response: TReply, name: string, value: string) { return response.header(name, value); } + public appendHeader?(response: any, name: string, value: string) { + response.header(name, value); + } + public getRequestHostname(request: TRequest): string { return request.hostname; } From 5c784233f8bcfe1ea2b8b85f5e7060ea7fcdaa7c Mon Sep 17 00:00:00 2001 From: = Date: Wed, 20 Dec 2023 18:46:05 -0300 Subject: [PATCH 2/4] fix: Wrong getHeader method signature --- packages/platform-fastify/adapters/fastify-adapter.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/platform-fastify/adapters/fastify-adapter.ts b/packages/platform-fastify/adapters/fastify-adapter.ts index 3d9ff1e1df5..54e2df387e6 100644 --- a/packages/platform-fastify/adapters/fastify-adapter.ts +++ b/packages/platform-fastify/adapters/fastify-adapter.ts @@ -466,8 +466,8 @@ export class FastifyAdapter< return response.sent; } - public getHeader?(response: any, name: string, value: string) { - return response.getHeader(name, value); + public getHeader?(response: any, name: string) { + return response.getHeader(name); } public setHeader(response: TReply, name: string, value: string) { From 9a1a776832480213c7575d3cea9aee59cf134b2c Mon Sep 17 00:00:00 2001 From: = Date: Wed, 20 Dec 2023 18:46:41 -0300 Subject: [PATCH 3/4] fix: Wrong getHeader method signature in http-adapter class --- packages/core/adapters/http-adapter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/adapters/http-adapter.ts b/packages/core/adapters/http-adapter.ts index 79c6a8f452f..706a1ab7da7 100644 --- a/packages/core/adapters/http-adapter.ts +++ b/packages/core/adapters/http-adapter.ts @@ -118,7 +118,7 @@ export abstract class AbstractHttpAdapter< abstract setNotFoundHandler(handler: Function, prefix?: string); abstract isHeadersSent(response: any); // TODO remove optional signature (v11) - abstract getHeader?(response: any, name: string, value: string); + abstract getHeader?(response: any, name: string); abstract setHeader(response: any, name: string, value: string); // TODO remove optional signature (v11) abstract appendHeader?(response: any, name: string, value: string); From 36411c32506c5c6c3279590f82f14d396e3cf597 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 20 Dec 2023 20:34:08 -0300 Subject: [PATCH 4/4] fix: Implement AbstractHttpAdapter in NoopHttpAdapter --- packages/core/test/utils/noop-adapter.spec.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/core/test/utils/noop-adapter.spec.ts b/packages/core/test/utils/noop-adapter.spec.ts index dc7daecb2c1..274b6e5d076 100644 --- a/packages/core/test/utils/noop-adapter.spec.ts +++ b/packages/core/test/utils/noop-adapter.spec.ts @@ -21,7 +21,9 @@ export class NoopHttpAdapter extends AbstractHttpAdapter { setErrorHandler(handler: Function, prefix = '/'): any {} setNotFoundHandler(handler: Function, prefix = '/'): any {} isHeadersSent(response: any): any {} + getHeader?(response: any, name: string) {} setHeader(response: any, name: string, value: string): any {} + appendHeader?(response: any, name: string, value: string) {} registerParserMiddleware(): any {} enableCors(options: any): any {} createMiddlewareFactory(requestMethod: RequestMethod): any {}