From 88ecf9c04b235a6c39fe4c72c5bacabb332c8ea7 Mon Sep 17 00:00:00 2001 From: Chau Tran Date: Mon, 4 Jan 2021 12:55:29 -0600 Subject: [PATCH] fix(classes): skip empty metadataList before looping --- packages/classes/src/lib/classes.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/classes/src/lib/classes.ts b/packages/classes/src/lib/classes.ts index 54158713e..2aeba48e3 100644 --- a/packages/classes/src/lib/classes.ts +++ b/packages/classes/src/lib/classes.ts @@ -1,4 +1,4 @@ -import { createInitialMapping } from '@automapper/core'; +import { createInitialMapping, isDefined } from '@automapper/core'; import type { Dictionary, Mapping, @@ -150,11 +150,14 @@ function exploreMetadata( ...models: Constructible[] ) { // Loop through each models passed in - models.forEach((model) => { + for (const model of models) { // if metadataStorage hasn't had metadata of the model if (!metadataStorage.has(model)) { // get the metadata from Reflection then populate metadataStorage and instanceStorage const metadataList = Reflect.getMetadata('automap:properties', model); + // skip if no metadata + if (!isDefined(metadataList)) continue; + // loop through metadata list for (const [propertyKey, { typeFn, depth }] of metadataList) { metadataStorage.addMetadata(model, [propertyKey, typeFn]); if (depth != null) { @@ -162,7 +165,7 @@ function exploreMetadata( } } } - }); + } } function prePropertiesLoop(