UNPKG

frexp

Version:
53 lines (49 loc) 1.69 kB
type CSchema = (yup: typeof import("yup")) => import("yup").AnyObjectSchema; declare module "frexp/lib/Validation" { /** * Validates a given request body using the provided Yup schema. * * @param payload - The request body data to be validated. * @param schema - A function that defines the Yup schema. * @returns A function that accepts a schema and optional validation options, returning a Promise of validated data. * * @example * ```typescript * import Validation from "frexp/lib/Validation"; * * const validator = new Validation((yup) => yup.object({ * name: yup.string().required(), * age: yup.number().min(18).required(), * }), req.body) * * if (await validator.fails()){ * return res.status(400).json(validator.errors()) * } * * console.log(validator.validated, 'validated data') * ``` */ export default class Validation<T extends import("yup").AnyObjectSchema> { /** * Holds the validated data after a successful validation. */ public validated: import("yup").InferType<T>; constructor( schema?: (y: typeof import("yup")) => T, payload?: Record<string, any> ); public fails(opt?: import("yup").ValidateOptions): Promise<boolean>; public throwError(opt?: import("yup").ValidateOptions): Promise<boolean>; public errors(): Array<{ path?: string; type?: string; label?: string; }> | null; public static body( payload: Record<string, any> ): <T extends import("yup").AnyObjectSchema>( schema: (y: typeof import("yup")) => T, opt?: import("yup").ValidateOptions ) => Promise<import("yup").InferType<T>>; } }