UNPKG

@nestjs/mongoose

Version:

Nest - modern, fast, powerful node.js web framework (@mongoose)

35 lines 1.3 kB
import { isTargetEqual } from '../utils/is-target-equal-util.js'; export class TypeMetadataStorageHost { schemas = new Array(); properties = new Array(); virtuals = new Array(); addPropertyMetadata(metadata) { this.properties.unshift(metadata); } addSchemaMetadata(metadata) { this.compileClassMetadata(metadata); this.schemas.push(metadata); } addVirtualMetadata(metadata) { this.virtuals.push(metadata); } getSchemaMetadataByTarget(target) { return this.schemas.find((item) => item.target === target); } getVirtualsMetadataByTarget(targetFilter) { return this.virtuals.filter(({ target }) => target === targetFilter); } compileClassMetadata(metadata) { const belongsToClass = isTargetEqual.bind(undefined, metadata); if (!metadata.properties) { metadata.properties = this.getClassFieldsByPredicate(belongsToClass); } } getClassFieldsByPredicate(belongsToClass) { return this.properties.filter(belongsToClass); } } const globalRef = globalThis; export const TypeMetadataStorage = globalRef.MongoTypeMetadataStorage || (globalRef.MongoTypeMetadataStorage = new TypeMetadataStorageHost()); //# sourceMappingURL=type-metadata.storage.js.map