From a3b8256d603a5f289e2de8ed2fbdd342ef5d1ffd Mon Sep 17 00:00:00 2001 From: ZanMinKian Date: Sun, 14 Aug 2022 19:21:29 +0000 Subject: [PATCH] perf(core): optimize reflector --- packages/core/services/reflector.service.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/core/services/reflector.service.ts b/packages/core/services/reflector.service.ts index 38db444da0c..52cd4964d17 100644 --- a/packages/core/services/reflector.service.ts +++ b/packages/core/services/reflector.service.ts @@ -23,7 +23,7 @@ export class Reflector { metadataKey: TKey, target: Type | Function, ): TResult { - return Reflect.getMetadata(metadataKey, target) as TResult; + return Reflect.getMetadata(metadataKey, target); } /** @@ -38,7 +38,7 @@ export class Reflector { targets: (Type | Function)[], ): TResult { return (targets || []).map(target => - Reflect.getMetadata(metadataKey, target), + this.get(metadataKey, target), ) as TResult; } @@ -86,6 +86,12 @@ export class Reflector { metadataKey: TKey, targets: (Type | Function)[], ): TResult { - return this.getAll(metadataKey, targets).find(item => item !== undefined); + for (const target of targets) { + const result = this.get(metadataKey, target); + if (result !== undefined) { + return result; + } + } + return undefined; } }