@nestjs/mongoose
Version:
Nest - modern, fast, powerful node.js web framework (@mongoose)
35 lines • 1.3 kB
JavaScript
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