@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
JavaScript
;
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