UNPKG

@hiki9/rich-domain

Version:

Rich Domain is a library that provides a set of tools to help you build complex business logic in NodeJS using Domain Driven Design principles.

45 lines 1.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RevalidateError = void 0; const errors_1 = require("../errors"); const RevalidateError = (errorMessage, value, expected, field) => { let received = ''; if (typeof value === 'object') { if (value?.isEntity) { received = value?.constructor?.name; } else if (value?.isValueObject) { received = value?.constructor?.name; } else if (Array.isArray(value)) { let first = value?.[0]; if (first?.isEntity) { received = 'ArrayOf<' + first?.constructor?.name + '>'; } if (first?.isValueObject) { received = 'ArrayOf<' + first?.constructor?.name + '>'; } } else { received = 'Object.' + value?.constructor?.name; } } else { received = typeof value; } let expectedType = expected; if (expected === 'Optional') { expectedType = 'Optional<...>'; } if (expected === 'ArrayOf') { expectedType = 'ArrayOf<...>'; } return new errors_1.DomainError(`Erro 422. ${errorMessage}`, { property: `${field}`, value, received, expected: expectedType, }); }; exports.RevalidateError = RevalidateError; //# sourceMappingURL=revalidate-error.js.map