UNPKG

@lucaspaganini/value-objects

Version:

TypeScript first validation and class creation library

38 lines 1.22 kB
"use strict"; 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