diff --git a/src/compose-rules.js b/src/compose-rules.js index 0ae37f9..486dd61 100644 --- a/src/compose-rules.js +++ b/src/compose-rules.js @@ -40,9 +40,11 @@ module.exports.compose = function composeValidators(validators) { } else { throw new Error(`The 'errors' in a validationResult must be an array`); } - } else if (result instanceof Error) { - // We could interpret returned Errors as either values or a throw substitute. Let's wait for users to file issues, so that we know what people *actually* need here. - throw new Error(`It is currently not allowed to return an Error object from a validator. If you have a reason to need this, please file a bug!`); + } else if (result instanceof Error && matchValidationError(result)) { + return { + errors: [ result ], + newValue: undefined + }; } else { return { errors: [],