UNPKG

@elsikora/nestjs-crud-automator

Version:

A library for automating the creation of CRUD operations in NestJS.

52 lines (48 loc) 1.94 kB
'use strict'; require('../constant/decorator/api/function.constant.js'); var propertyDescribe_constant = require('../constant/decorator/api/property-describe.constant.js'); class MetadataStorage { static instance; STORAGE = new Map(); static getInstance() { if (!MetadataStorage.instance) { MetadataStorage.instance = new MetadataStorage(); } return MetadataStorage.instance; } getAllEntitiesMetadata() { const result = {}; for (const [entityName, entityMetadata] of this.STORAGE.entries()) { result[entityName] = Object.fromEntries(entityMetadata); } return result; } getMetadata(entityName, propertyName, key) { const entityMetadata = this.STORAGE.get(entityName); if (!entityMetadata) return undefined; if (!propertyName) return Object.fromEntries(entityMetadata); const propertyMetadata = entityMetadata.get(propertyName); if (!propertyMetadata) return undefined; if (!key) return propertyMetadata; return propertyMetadata[key]; } setMetadata(entityName, propertyName, key, value) { if (!this.STORAGE.has(entityName)) { this.STORAGE.set(entityName, new Map()); } // eslint-disable-next-line @elsikora/typescript/no-non-null-assertion const entityMetadata = this.STORAGE.get(entityName); if (!entityMetadata.has(propertyName)) { entityMetadata.set(propertyName, { [propertyDescribe_constant.PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_KEY]: {} }); } // eslint-disable-next-line @elsikora/typescript/no-non-null-assertion const propertyMetadata = entityMetadata.get(propertyName); propertyMetadata[key] = value; } } exports.MetadataStorage = MetadataStorage; //# sourceMappingURL=metadata-storage.class.js.map