UNPKG

decode-it

Version:

a simple zero-dependency type safe json decoder for typescript

34 lines 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.union = void 0; require("../helperTypes"); require("../toNativeType"); const typeCheckers_1 = require("../typeCheckers"); const ValidationResult_1 = require("./ValidationResult"); require("./Validator"); const createEmptyUnionFailure = (arg) => ({ value: arg, type: 'unknown', state: 'failed', wrapper: 'union', }); const createFailedUnionValidation = (arg) => ({ value: arg, type: 'none', state: 'failed', wrapper: 'union', }); const union = (...itemValidators) => { return (arg) => { if (typeCheckers_1.isEmptyArray(itemValidators) || itemValidators.length === 1) { return createEmptyUnionFailure(arg); } const validationsResult = itemValidators.map(validate => validate(arg)); const allValidationsFailed = validationsResult.every(v => v.state === 'failed'); return allValidationsFailed ? createFailedUnionValidation(arg) : ValidationResult_1.passedValidation; }; }; exports.union = union; //# sourceMappingURL=union.js.map