@yobta/validator
Version:
Tree-shakable es6 validator
24 lines (23 loc) • 629 B
JavaScript
import { createContext } from '../_internal/createContext/createContext.js';
import { handleUnknownError } from '../_internal/parseUnknownError/index.js';
export const createValidator = (...rules) => (event, context) => {
const ctx = context || {
...createContext(event),
pushError(error) {
throw error;
},
};
try {
for (const rule of rules) {
event = rule(ctx)(event);
}
return event;
}
catch (error) {
throw handleUnknownError({
error,
field: ctx.field,
path: ctx.path,
});
}
};