Compare commits

...

2 Commits

@ -7,6 +7,7 @@ const flatten = require("flatten");
const ValidationError = require("@validatem/error");
const combinator = require("@validatem/combinator");
const validationResult = require("@validatem/validation-result");
const matchValidationError = require("@validatem/match-validation-error");
const areErrorsFromSameOrigin = require("./src/are-errors-from-same-origin");
@ -61,13 +62,20 @@ module.exports = function (alternatives) {
for (let alternative of alternatives) {
let { errors, newValue } = applyValidators(value, alternative);
let unexpectedErrors = errors.filter((error) => !matchValidationError(error));
if (errors.length === 0) {
return newValue;
} else if (errors.length === 1) {
allErrors.push(errors[0]);
if (unexpectedErrors.length > 0) {
// We want to immediately stop trying alternatives when a non-ValidationError occurred, since that means that something broke internally somewhere, and it is not safe to continue executing.
throw unexpectedErrors[0];
} else {
allErrors.push(errorAllOf(errors));
if (errors.length === 0) {
return newValue;
} else if (errors.length === 1) {
allErrors.push(errors[0]);
} else {
allErrors.push(errorAllOf(errors));
}
}
}

@ -6,7 +6,7 @@
"validator",
"combinator"
],
"version": "0.1.8",
"version": "0.1.9",
"main": "index.js",
"repository": "http://git.cryto.net/validatem/either.git",
"author": "Sven Slootweg <admin@cryto.net>",
@ -19,6 +19,7 @@
"dependencies": {
"@validatem/combinator": "^0.1.1",
"@validatem/error": "^1.0.0",
"@validatem/match-validation-error": "^0.1.0",
"@validatem/validation-result": "^0.1.2",
"flatten": "^1.0.3"
}

Loading…
Cancel
Save