funval
Version:
A minimalist library for data validation using functions interfaces.
40 lines (33 loc) • 3.55 kB
JavaScript
exports.__esModule = true;
exports.getErrorPaths = getErrorPaths;
exports.toError = toError;
exports.createValidationError = createValidationError;
// exported functions
function getErrorPaths(error, path) {
if (!error.paths) {
return [{
path,
error
}];
}
return error.paths.map(ep => ({
path: [...path, ...ep.path],
error: ep.error
}));
}
function toError(error) {
if (typeof error === 'string') {
return new TypeError(error);
}
return error;
}
function createValidationError(paths, error) {
if (!paths || !paths.length) {
throw toError(error || 'Unknown Validation Error');
}
const err = toError(error || paths[0].error);
err.paths = paths;
return err;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FcnJvci50cyJdLCJuYW1lcyI6WyJnZXRFcnJvclBhdGhzIiwiZXJyb3IiLCJwYXRoIiwicGF0aHMiLCJtYXAiLCJlcCIsInRvRXJyb3IiLCJUeXBlRXJyb3IiLCJjcmVhdGVWYWxpZGF0aW9uRXJyb3IiLCJsZW5ndGgiLCJlcnIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFlQTtBQUVPLFNBQVNBLGFBQVQsQ0FBdUJDLEtBQXZCLEVBQStDQyxJQUEvQyxFQUF3RTtBQUM3RSxNQUFJLENBQUNELEtBQUssQ0FBQ0UsS0FBWCxFQUFrQjtBQUNoQixXQUFPLENBQ0w7QUFDRUQsTUFBQUEsSUFERjtBQUVFRCxNQUFBQTtBQUZGLEtBREssQ0FBUDtBQU1EOztBQUVELFNBQU9BLEtBQUssQ0FBQ0UsS0FBTixDQUFZQyxHQUFaLENBQWlCQyxFQUFELEtBQVM7QUFDOUJILElBQUFBLElBQUksRUFBRSxDQUFDLEdBQUdBLElBQUosRUFBVSxHQUFHRyxFQUFFLENBQUNILElBQWhCLENBRHdCO0FBRTlCRCxJQUFBQSxLQUFLLEVBQUVJLEVBQUUsQ0FBQ0o7QUFGb0IsR0FBVCxDQUFoQixDQUFQO0FBSUQ7O0FBRU0sU0FBU0ssT0FBVCxDQUFpQkwsS0FBakIsRUFBMEM7QUFDL0MsTUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCLFdBQU8sSUFBSU0sU0FBSixDQUFjTixLQUFkLENBQVA7QUFDRDs7QUFFRCxTQUFPQSxLQUFQO0FBQ0Q7O0FBRU0sU0FBU08scUJBQVQsQ0FDTEwsS0FESyxFQUVMRixLQUZLLEVBR1k7QUFDakIsTUFBSSxDQUFDRSxLQUFELElBQVUsQ0FBQ0EsS0FBSyxDQUFDTSxNQUFyQixFQUE2QjtBQUMzQixVQUFNSCxPQUFPLENBQUNMLEtBQUssSUFBSSwwQkFBVixDQUFiO0FBQ0Q7O0FBRUQsUUFBTVMsR0FBb0IsR0FBR0osT0FBTyxDQUFDTCxLQUFLLElBQUlFLEtBQUssQ0FBQyxDQUFELENBQUwsQ0FBU0YsS0FBbkIsQ0FBcEM7QUFDQVMsRUFBQUEsR0FBRyxDQUFDUCxLQUFKLEdBQVlBLEtBQVo7QUFFQSxTQUFPTyxHQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYmplY3RQcm9wZXJ0eSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBFcnJvckxpa2UgPSBzdHJpbmcgfCBFcnJvcjtcblxuZXhwb3J0IHR5cGUgUGF0aCA9IE9iamVjdFByb3BlcnR5W107XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JQYXRoIHtcbiAgcGF0aDogT2JqZWN0UHJvcGVydHlbXTtcbiAgZXJyb3I6IEVycm9yO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpbnRlcmZhY2UgVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwYXRocz86IEVycm9yUGF0aFtdO1xufVxuXG4vLyBleHBvcnRlZCBmdW5jdGlvbnNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yUGF0aHMoZXJyb3I6IFZhbGlkYXRpb25FcnJvciwgcGF0aDogUGF0aCk6IEVycm9yUGF0aFtdIHtcbiAgaWYgKCFlcnJvci5wYXRocykge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIGVycm9yLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcmV0dXJuIGVycm9yLnBhdGhzLm1hcCgoZXApID0+ICh7XG4gICAgcGF0aDogWy4uLnBhdGgsIC4uLmVwLnBhdGhdLFxuICAgIGVycm9yOiBlcC5lcnJvcixcbiAgfSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9FcnJvcihlcnJvcjogRXJyb3JMaWtlKTogRXJyb3Ige1xuICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBuZXcgVHlwZUVycm9yKGVycm9yKTtcbiAgfVxuXG4gIHJldHVybiBlcnJvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZhbGlkYXRpb25FcnJvcihcbiAgcGF0aHM6IEVycm9yUGF0aFtdLFxuICBlcnJvcj86IEVycm9yTGlrZSxcbik6IFZhbGlkYXRpb25FcnJvciB7XG4gIGlmICghcGF0aHMgfHwgIXBhdGhzLmxlbmd0aCkge1xuICAgIHRocm93IHRvRXJyb3IoZXJyb3IgfHwgJ1Vua25vd24gVmFsaWRhdGlvbiBFcnJvcicpO1xuICB9XG5cbiAgY29uc3QgZXJyOiBWYWxpZGF0aW9uRXJyb3IgPSB0b0Vycm9yKGVycm9yIHx8IHBhdGhzWzBdLmVycm9yKTtcbiAgZXJyLnBhdGhzID0gcGF0aHM7XG5cbiAgcmV0dXJuIGVycjtcbn1cbiJdfQ==
;