UNPKG

@yobta/validator

Version:
20 lines (19 loc) 680 B
import { createContext } from '../_internal/createContext/createContext.js'; import { handleUnknownError } from '../_internal/parseUnknownError/index.js'; export const createAsyncValidator = (...rules) => async (event, context) => { const ctx = context || createContext(event); let result = event; for await (const rule of rules) { try { result = await rule(ctx)(result); } catch (error) { ctx.pushError(handleUnknownError({ error, field: ctx.field, path: ctx.path, })); } } return (ctx.errors.length ? [null, ctx.errors] : [result, null]); };