@lucaspaganini/value-objects
Version:
TypeScript first validation and class creation library
38 lines • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeFunctions = exports.makeFromRawInit = exports.makeIsValidRawInit = void 0;
var utils_1 = require("../utils");
var makeIsValidRawInit = function (VO) {
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
return function (v) {
try {
new VO(v);
return true;
}
catch (_a) {
return false;
}
};
};
exports.makeIsValidRawInit = makeIsValidRawInit;
var makeFromRawInit = function (VO) {
return function (data) {
try {
return utils_1.right(new VO(data));
}
catch (err) {
if (utils_1.isError(err))
return utils_1.left([err]);
if (err instanceof Array && err.every(utils_1.isError))
return utils_1.left(err);
return utils_1.left([Error()]);
}
};
};
exports.makeFromRawInit = makeFromRawInit;
var makeFunctions = function (VO) { return ({
isValidRawInit: exports.makeIsValidRawInit(VO),
fromRawInit: exports.makeFromRawInit(VO),
}); };
exports.makeFunctions = makeFunctions;
//# sourceMappingURL=functions.js.map