@yobta/validator
Version:
Tree-shakable es6 validator
22 lines (21 loc) • 551 B
JavaScript
import { rule } from '../rule/rule.js';
const empty = new Set(['', undefined]);
export const safe = (fallbackValue, ...rules) => {
return rule((input, context) => {
if (!rules.length) {
if (empty.has(input)) {
return fallbackValue;
}
return input;
}
try {
for (const test of rules) {
input = test(context)(input);
}
return input;
}
catch (error) {
return fallbackValue;
}
});
};