diff --git a/src/metadata/metadata-storage.ts b/src/metadata/metadata-storage.ts index 82fe11f09..e2c3b5880 100644 --- a/src/metadata/metadata-storage.ts +++ b/src/metadata/metadata-storage.ts @@ -74,6 +74,8 @@ export class MetadataStorage { params: ParamMetadata[] = []; + private hasAlreadyBeenBuilt = false; + collectQueryHandlerMetadata(definition: ResolverMetadata) { this.queries.push(definition); } @@ -160,6 +162,12 @@ export class MetadataStorage { } build(options: SchemaGeneratorOptions) { + if (this.hasAlreadyBeenBuilt) { + return; + } + + this.hasAlreadyBeenBuilt = true; + this.classDirectives.reverse(); this.fieldDirectives.reverse(); this.argumentDirectives.reverse(); @@ -198,10 +206,11 @@ export class MetadataStorage { this.argumentDirectives = []; this.classExtensions = []; this.fieldExtensions = []; - this.resolverClasses = []; this.fields = []; this.params = []; + + this.hasAlreadyBeenBuilt = false; } private buildClassMetadata(definitions: ClassMetadata[]) {