From 7b88be3a7519df39a1e2bea5dd0f26e58be2610a Mon Sep 17 00:00:00 2001 From: Rainer Killinger Date: Fri, 27 May 2022 15:21:59 +0200 Subject: [PATCH] refactor: initalize meta classes in translator --- src/translator.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/translator.ts b/src/translator.ts index 4a6d10e3..727f7920 100644 --- a/src/translator.ts +++ b/src/translator.ts @@ -77,6 +77,13 @@ export class SCThingTranslator { this.sourceCache = new LRUCache(cacheCapacity); this._language = language; this.metaClasses = SCClasses; + + // Initalize all meta classes once + if (typeof (this.metaClasses as any)[Object.keys(this.metaClasses)[0]] === 'function') { + for (const metaClass of Object.keys(this.metaClasses)) { + (this.metaClasses as any)[metaClass] = new (SCClasses as any)[metaClass](); + } + } } /** @@ -143,7 +150,7 @@ export class SCThingTranslator { */ private getMetaClassInstance(thingType: SCThingType): any { if (thingType in this.metaClasses) { - return new (this.metaClasses as any)[thingType](); + return this.metaClasses[thingType]; } return undefined;