From 68a66757bbd1fe6479a444d5b5cffb1e3f0c5a7e Mon Sep 17 00:00:00 2001 From: "Micael Levi (lab)" Date: Thu, 2 Dec 2021 02:09:48 -0400 Subject: [PATCH] fix(core,common): ignore duplicated versions --- packages/common/decorators/core/controller.decorator.ts | 4 +++- packages/common/decorators/core/version.decorator.ts | 5 +++++ packages/core/application-config.ts | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/common/decorators/core/controller.decorator.ts b/packages/common/decorators/core/controller.decorator.ts index d182ae8fd..b20c4a741 100644 --- a/packages/common/decorators/core/controller.decorator.ts +++ b/packages/common/decorators/core/controller.decorator.ts @@ -164,7 +164,9 @@ export function Controller( prefixOrOptions.path || defaultPath, prefixOrOptions.host, { scope: prefixOrOptions.scope }, - prefixOrOptions.version, + Array.isArray(prefixOrOptions.version) + ? Array.from(new Set(prefixOrOptions.version)) + : prefixOrOptions.version, ]; return (target: object) => { diff --git a/packages/common/decorators/core/version.decorator.ts b/packages/common/decorators/core/version.decorator.ts index d82d079e2..9ab8fc887 100644 --- a/packages/common/decorators/core/version.decorator.ts +++ b/packages/common/decorators/core/version.decorator.ts @@ -7,6 +7,11 @@ import { VersionValue } from '../../interfaces/version-options.interface'; * @publicApi */ export function Version(version: VersionValue): MethodDecorator { + if (Array.isArray(version)) { + // Drop duplicated versions + version = Array.from(new Set(version)); + } + return ( target: any, key: string | symbol, diff --git a/packages/core/application-config.ts b/packages/core/application-config.ts index 4df293753..1b6adfa4e 100644 --- a/packages/core/application-config.ts +++ b/packages/core/application-config.ts @@ -136,6 +136,11 @@ export class ApplicationConfig { } public enableVersioning(options: VersioningOptions): void { + if (Array.isArray(options.defaultVersion)) { + // Drop duplicated versions + options.defaultVersion = Array.from(new Set(options.defaultVersion)); + } + this.versioningOptions = options; }