funval
Version:
A minimalist library for data validation using functions interfaces.
73 lines (59 loc) • 7.52 kB
JavaScript
exports.__esModule = true;
exports.Equals = Equals;
exports.GreaterThan = GreaterThan;
exports.GreaterThanEqual = GreaterThanEqual;
exports.LessThan = LessThan;
exports.LessThanEqual = LessThanEqual;
exports.Between = Between;
var _Error = require("../Error");
// exported functions
function Equals(value, error) {
return input => {
if (input !== value) {
throw (0, _Error.toError)(error || `Expect value to equals "${value}" (given: "${input}")`);
}
return value;
};
}
function GreaterThan(value, error) {
return input => {
if (input == null || !(input > value)) {
throw (0, _Error.toError)(error || `Expect value to be greater then "${value}" (given: "${input}")`);
}
return input;
};
}
function GreaterThanEqual(value, error) {
return input => {
if (input == null || !(input >= value)) {
throw (0, _Error.toError)(error || `Expect value to be greater then or equal to "${value}" (given: "${input}")`);
}
return input;
};
}
function LessThan(value, error) {
return input => {
if (input == null || !(input < value)) {
throw (0, _Error.toError)(error || `Expect value to be less then "${value}" (given: "${input}")`);
}
return input;
};
}
function LessThanEqual(value, error) {
return input => {
if (input == null || !(input <= value)) {
throw (0, _Error.toError)(error || `Expect value to be less then or equal to "${value}" (given: "${input}")`);
}
return input;
};
}
function Between(minValue, maxValue, error) {
return input => {
if (input == null || minValue !== null && !(input >= minValue) || maxValue !== null && !(input <= maxValue)) {
throw (0, _Error.toError)(error || `Expect value to be between "${minValue}" to "${maxValue}" (given: "${input}")`);
}
return input;
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0b3JzL2NvbXBhcmlzb24udHMiXSwibmFtZXMiOlsiRXF1YWxzIiwidmFsdWUiLCJlcnJvciIsImlucHV0IiwiR3JlYXRlclRoYW4iLCJHcmVhdGVyVGhhbkVxdWFsIiwiTGVzc1RoYW4iLCJMZXNzVGhhbkVxdWFsIiwiQmV0d2VlbiIsIm1pblZhbHVlIiwibWF4VmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFDQTs7QUFFQTtBQUVPLFNBQVNBLE1BQVQsQ0FDTEMsS0FESyxFQUVMQyxLQUZLLEVBR2dDO0FBQ3JDLFNBQVFDLEtBQUQsSUFBdUI7QUFDNUIsUUFBSUEsS0FBSyxLQUFLRixLQUFkLEVBQXFCO0FBQ25CLFlBQU0sb0JBQ0pDLEtBQUssSUFBSywyQkFBMEJELEtBQU0sY0FBYUUsS0FBTSxJQUR6RCxDQUFOO0FBR0Q7O0FBRUQsV0FBT0YsS0FBUDtBQUNELEdBUkQ7QUFTRDs7QUFFTSxTQUFTRyxXQUFULENBQ0xILEtBREssRUFFTEMsS0FGSyxFQUdnQztBQUNyQyxTQUFRQyxLQUFELElBQXVCO0FBQzVCLFFBQUlBLEtBQUssSUFBSSxJQUFULElBQWlCLEVBQUdBLEtBQUQsR0FBZUYsS0FBakIsQ0FBckIsRUFBOEM7QUFDNUMsWUFBTSxvQkFDSkMsS0FBSyxJQUNGLG9DQUFtQ0QsS0FBTSxjQUFhRSxLQUFNLElBRjNELENBQU47QUFJRDs7QUFFRCxXQUFPQSxLQUFQO0FBQ0QsR0FURDtBQVVEOztBQUVNLFNBQVNFLGdCQUFULENBQ0xKLEtBREssRUFFTEMsS0FGSyxFQUdnQztBQUNyQyxTQUFRQyxLQUFELElBQXVCO0FBQzVCLFFBQUlBLEtBQUssSUFBSSxJQUFULElBQWlCLEVBQUdBLEtBQUQsSUFBZ0JGLEtBQWxCLENBQXJCLEVBQStDO0FBQzdDLFlBQU0sb0JBQ0pDLEtBQUssSUFDRixnREFBK0NELEtBQU0sY0FBYUUsS0FBTSxJQUZ2RSxDQUFOO0FBSUQ7O0FBRUQsV0FBT0EsS0FBUDtBQUNELEdBVEQ7QUFVRDs7QUFFTSxTQUFTRyxRQUFULENBQ0xMLEtBREssRUFFTEMsS0FGSyxFQUdnQztBQUNyQyxTQUFRQyxLQUFELElBQXVCO0FBQzVCLFFBQUlBLEtBQUssSUFBSSxJQUFULElBQWlCLEVBQUdBLEtBQUQsR0FBZUYsS0FBakIsQ0FBckIsRUFBOEM7QUFDNUMsWUFBTSxvQkFDSkMsS0FBSyxJQUFLLGlDQUFnQ0QsS0FBTSxjQUFhRSxLQUFNLElBRC9ELENBQU47QUFHRDs7QUFFRCxXQUFPQSxLQUFQO0FBQ0QsR0FSRDtBQVNEOztBQUVNLFNBQVNJLGFBQVQsQ0FDTE4sS0FESyxFQUVMQyxLQUZLLEVBR2dDO0FBQ3JDLFNBQVFDLEtBQUQsSUFBdUI7QUFDNUIsUUFBSUEsS0FBSyxJQUFJLElBQVQsSUFBaUIsRUFBR0EsS0FBRCxJQUFnQkYsS0FBbEIsQ0FBckIsRUFBK0M7QUFDN0MsWUFBTSxvQkFDSkMsS0FBSyxJQUNGLDZDQUE0Q0QsS0FBTSxjQUFhRSxLQUFNLElBRnBFLENBQU47QUFJRDs7QUFFRCxXQUFPQSxLQUFQO0FBQ0QsR0FURDtBQVVEOztBQUVNLFNBQVNLLE9BQVQsQ0FDTEMsUUFESyxFQUVMQyxRQUZLLEVBR0xSLEtBSEssRUFJZ0M7QUFDckMsU0FBUUMsS0FBRCxJQUF1QjtBQUM1QixRQUNFQSxLQUFLLElBQUksSUFBVCxJQUNDTSxRQUFRLEtBQUssSUFBYixJQUFxQixFQUFHTixLQUFELElBQWdCTSxRQUFsQixDQUR0QixJQUVDQyxRQUFRLEtBQUssSUFBYixJQUFxQixFQUFHUCxLQUFELElBQWdCTyxRQUFsQixDQUh4QixFQUlFO0FBQ0EsWUFBTSxvQkFDSlIsS0FBSyxJQUNGLCtCQUE4Qk8sUUFBUyxTQUFRQyxRQUFTLGNBQWFQLEtBQU0sSUFGMUUsQ0FBTjtBQUlEOztBQUVELFdBQU9BLEtBQVA7QUFDRCxHQWJEO0FBY0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTeW5jRnVuY3Rpb25WYWxpZGF0b3IgfSBmcm9tICcuLi9TY2hlbWEnO1xuaW1wb3J0IHsgRXJyb3JMaWtlLCB0b0Vycm9yIH0gZnJvbSAnLi4vRXJyb3InO1xuXG4vLyBleHBvcnRlZCBmdW5jdGlvbnNcblxuZXhwb3J0IGZ1bmN0aW9uIEVxdWFsczxUPihcbiAgdmFsdWU6IFQsXG4gIGVycm9yPzogRXJyb3JMaWtlLFxuKTogU3luY0Z1bmN0aW9uVmFsaWRhdG9yPFQsIFt1bmtub3duXT4ge1xuICByZXR1cm4gKGlucHV0OiB1bmtub3duKTogVCA9PiB7XG4gICAgaWYgKGlucHV0ICE9PSB2YWx1ZSkge1xuICAgICAgdGhyb3cgdG9FcnJvcihcbiAgICAgICAgZXJyb3IgfHwgYEV4cGVjdCB2YWx1ZSB0byBlcXVhbHMgXCIke3ZhbHVlfVwiIChnaXZlbjogXCIke2lucHV0fVwiKWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdyZWF0ZXJUaGFuPFQ+KFxuICB2YWx1ZTogVCxcbiAgZXJyb3I/OiBFcnJvckxpa2UsXG4pOiBTeW5jRnVuY3Rpb25WYWxpZGF0b3I8VCwgW3Vua25vd25dPiB7XG4gIHJldHVybiAoaW5wdXQ6IHVua25vd24pOiBUID0+IHtcbiAgICBpZiAoaW5wdXQgPT0gbnVsbCB8fCAhKChpbnB1dCBhcyBUKSA+IHZhbHVlKSkge1xuICAgICAgdGhyb3cgdG9FcnJvcihcbiAgICAgICAgZXJyb3IgfHxcbiAgICAgICAgICBgRXhwZWN0IHZhbHVlIHRvIGJlIGdyZWF0ZXIgdGhlbiBcIiR7dmFsdWV9XCIgKGdpdmVuOiBcIiR7aW5wdXR9XCIpYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlucHV0IGFzIFQ7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBHcmVhdGVyVGhhbkVxdWFsPFQ+KFxuICB2YWx1ZTogVCxcbiAgZXJyb3I/OiBFcnJvckxpa2UsXG4pOiBTeW5jRnVuY3Rpb25WYWxpZGF0b3I8VCwgW3Vua25vd25dPiB7XG4gIHJldHVybiAoaW5wdXQ6IHVua25vd24pOiBUID0+IHtcbiAgICBpZiAoaW5wdXQgPT0gbnVsbCB8fCAhKChpbnB1dCBhcyBUKSA+PSB2YWx1ZSkpIHtcbiAgICAgIHRocm93IHRvRXJyb3IoXG4gICAgICAgIGVycm9yIHx8XG4gICAgICAgICAgYEV4cGVjdCB2YWx1ZSB0byBiZSBncmVhdGVyIHRoZW4gb3IgZXF1YWwgdG8gXCIke3ZhbHVlfVwiIChnaXZlbjogXCIke2lucHV0fVwiKWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBpbnB1dCBhcyBUO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTGVzc1RoYW48VD4oXG4gIHZhbHVlOiBULFxuICBlcnJvcj86IEVycm9yTGlrZSxcbik6IFN5bmNGdW5jdGlvblZhbGlkYXRvcjxULCBbdW5rbm93bl0+IHtcbiAgcmV0dXJuIChpbnB1dDogdW5rbm93bik6IFQgPT4ge1xuICAgIGlmIChpbnB1dCA9PSBudWxsIHx8ICEoKGlucHV0IGFzIFQpIDwgdmFsdWUpKSB7XG4gICAgICB0aHJvdyB0b0Vycm9yKFxuICAgICAgICBlcnJvciB8fCBgRXhwZWN0IHZhbHVlIHRvIGJlIGxlc3MgdGhlbiBcIiR7dmFsdWV9XCIgKGdpdmVuOiBcIiR7aW5wdXR9XCIpYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlucHV0IGFzIFQ7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBMZXNzVGhhbkVxdWFsPFQ+KFxuICB2YWx1ZTogVCxcbiAgZXJyb3I/OiBFcnJvckxpa2UsXG4pOiBTeW5jRnVuY3Rpb25WYWxpZGF0b3I8VCwgW3Vua25vd25dPiB7XG4gIHJldHVybiAoaW5wdXQ6IHVua25vd24pOiBUID0+IHtcbiAgICBpZiAoaW5wdXQgPT0gbnVsbCB8fCAhKChpbnB1dCBhcyBUKSA8PSB2YWx1ZSkpIHtcbiAgICAgIHRocm93IHRvRXJyb3IoXG4gICAgICAgIGVycm9yIHx8XG4gICAgICAgICAgYEV4cGVjdCB2YWx1ZSB0byBiZSBsZXNzIHRoZW4gb3IgZXF1YWwgdG8gXCIke3ZhbHVlfVwiIChnaXZlbjogXCIke2lucHV0fVwiKWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBpbnB1dCBhcyBUO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQmV0d2VlbjxUPihcbiAgbWluVmFsdWU6IFQgfCBudWxsLFxuICBtYXhWYWx1ZTogVCB8IG51bGwsXG4gIGVycm9yPzogRXJyb3JMaWtlLFxuKTogU3luY0Z1bmN0aW9uVmFsaWRhdG9yPFQsIFt1bmtub3duXT4ge1xuICByZXR1cm4gKGlucHV0OiB1bmtub3duKTogVCA9PiB7XG4gICAgaWYgKFxuICAgICAgaW5wdXQgPT0gbnVsbCB8fFxuICAgICAgKG1pblZhbHVlICE9PSBudWxsICYmICEoKGlucHV0IGFzIFQpID49IG1pblZhbHVlKSkgfHxcbiAgICAgIChtYXhWYWx1ZSAhPT0gbnVsbCAmJiAhKChpbnB1dCBhcyBUKSA8PSBtYXhWYWx1ZSkpXG4gICAgKSB7XG4gICAgICB0aHJvdyB0b0Vycm9yKFxuICAgICAgICBlcnJvciB8fFxuICAgICAgICAgIGBFeHBlY3QgdmFsdWUgdG8gYmUgYmV0d2VlbiBcIiR7bWluVmFsdWV9XCIgdG8gXCIke21heFZhbHVlfVwiIChnaXZlbjogXCIke2lucHV0fVwiKWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBpbnB1dCBhcyBUO1xuICB9O1xufVxuIl19
;