frexp
Version:
53 lines (49 loc) • 1.69 kB
TypeScript
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>>;
}
}