From 6b4f979d26eb6d04ed73537b49e72f1368b7dad2 Mon Sep 17 00:00:00 2001 From: Damilare Anjorin Date: Mon, 8 Jan 2024 16:27:02 +0100 Subject: [PATCH 1/2] chore: allow dynamic value for header value --- packages/core/router/router-response-controller.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/core/router/router-response-controller.ts b/packages/core/router/router-response-controller.ts index f9cd20890ba..a647afbe558 100644 --- a/packages/core/router/router-response-controller.ts +++ b/packages/core/router/router-response-controller.ts @@ -17,7 +17,7 @@ import { export interface CustomHeader { name: string; - value: string; + value: string | (() => string); } export interface RedirectResponse { @@ -84,7 +84,11 @@ export class RouterResponseController { headers: CustomHeader[], ) { headers.forEach(({ name, value }) => - this.applicationRef.setHeader(response, name, value), + this.applicationRef.setHeader( + response, + name, + typeof value === 'function' ? value() : value + ), ); } From 6adfcccb4750882c67c0e8ae652ed3746d04cad6 Mon Sep 17 00:00:00 2001 From: Damilare Anjorin Date: Tue, 9 Jan 2024 09:35:37 +0100 Subject: [PATCH 2/2] chore: update header decorator --- packages/common/decorators/http/header.decorator.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/common/decorators/http/header.decorator.ts b/packages/common/decorators/http/header.decorator.ts index 316a58559ed..3aad45cc357 100644 --- a/packages/common/decorators/http/header.decorator.ts +++ b/packages/common/decorators/http/header.decorator.ts @@ -6,6 +6,7 @@ import { extendArrayMetadata } from '../../utils/extend-metadata.util'; * * For example: * `@Header('Cache-Control', 'none')` + * `@Header('Cache-Control', () => 'none')` * * @param name string to be used for header name * @param value string to be used for header value @@ -14,7 +15,7 @@ import { extendArrayMetadata } from '../../utils/extend-metadata.util'; * * @publicApi */ -export function Header(name: string, value: string): MethodDecorator { +export function Header(name: string, value: string | (() => string)): MethodDecorator { return ( target: object, key: string | symbol,