UNPKG

@elsikora/nestjs-crud-automator

Version:

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

44 lines (40 loc) 1.85 kB
'use strict'; var errorException_utility = require('../error-exception.utility.js'); var isEntityConstructor_utility = require('../is-entity-constructor.utility.js'); var isEntityFactory_utility = require('../is-entity-factory.utility.js'); var isEntityLiteral_utility = require('../is-entity-literal.utility.js'); /** * Resolves property decorator entity references immediately or throws if unavailable. * @param {TApiPropertyEntity} entity - Entity reference or resolver. * @param {string} decoratorName - Decorator name for error context. * @returns {IApiBaseEntity | Type<IApiBaseEntity>} Normalized entity reference. */ function ResolvePropertyEntity(entity, decoratorName) { // eslint-disable-next-line @elsikora/sonar/use-type-alias const resolved = TryResolvePropertyEntity(entity); if (!resolved) { throw errorException_utility.ErrorException(`Entity for ${decoratorName} could not be resolved. Provide the entity class or a factory that returns it.`); } return resolved; } /** * Attempts to resolve the entity reference without throwing when the resolver returns undefined. * @param {TApiPropertyEntity} entity - Entity reference or factory. * @returns {IApiBaseEntity | Type<IApiBaseEntity> | undefined} Resolved entity or undefined when not ready. */ function TryResolvePropertyEntity(entity) { if (isEntityConstructor_utility.IsEntityConstructor(entity)) { return entity; } if (isEntityLiteral_utility.IsEntityLiteral(entity)) { return entity; } if (isEntityFactory_utility.IsEntityFactory(entity)) { const factory = entity; return factory(); } return undefined; } exports.ResolvePropertyEntity = ResolvePropertyEntity; exports.TryResolvePropertyEntity = TryResolvePropertyEntity; //# sourceMappingURL=property-entity.utility.js.map