@nestjs/mongoose
Version:
Nest - modern, fast, powerful node.js web framework (@mongoose)
34 lines (33 loc) • 1.28 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.TypeMetadataStorage = exports.TypeMetadataStorageHost = void 0;
const is_target_equal_util_1 = require("../utils/is-target-equal-util");
class TypeMetadataStorageHost {
constructor() {
this.schemas = new Array();
this.properties = new Array();
}
addPropertyMetadata(metadata) {
this.properties.unshift(metadata);
}
addSchemaMetadata(metadata) {
this.compileClassMetadata(metadata);
this.schemas.push(metadata);
}
getSchemaMetadataByTarget(target) {
return this.schemas.find((item) => item.target === target);
}
compileClassMetadata(metadata) {
const belongsToClass = is_target_equal_util_1.isTargetEqual.bind(undefined, metadata);
if (!metadata.properties) {
metadata.properties = this.getClassFieldsByPredicate(belongsToClass);
}
}
getClassFieldsByPredicate(belongsToClass) {
return this.properties.filter(belongsToClass);
}
}
exports.TypeMetadataStorageHost = TypeMetadataStorageHost;
const globalRef = global;
exports.TypeMetadataStorage = globalRef.MongoTypeMetadataStorage ||
(globalRef.MongoTypeMetadataStorage = new TypeMetadataStorageHost());
;