UNPKG

funval

Version:

A minimalist library for data validation using functions interfaces.

40 lines (33 loc) 3.55 kB
"use strict"; 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==