UNPKG

decorated-ajv

Version:

AJV decorated with error handling and formats

28 lines (27 loc) 1.15 kB
import Ajv, { Options, ValidateFunction, ErrorObject } from "ajv"; import { DataValidationCxt } from "ajv/dist/types"; import { JSONSchema7 } from "./JSONSchema"; export declare type Violation = { path: string; message: string; context: { params: Record<string, unknown>; propertyName?: string; schema?: unknown; parentSchema?: unknown; data?: unknown; }; }; export interface CompiledValidateFunction<T = unknown> { (this: Ajv | unknown, data: unknown, dataCxt?: DataValidationCxt): data is T; errors?: null | ErrorObject[]; } export declare const getAjv: (options?: Options) => Ajv; export declare const getValidator: <T = unknown>(schema: JSONSchema7, ajv?: Ajv) => Promise<ValidateFunction<T>>; export declare const getCompiledValidator: (schema: JSONSchema7, options?: Options) => Promise<string>; /** * @param schema a valid JSON Schema. is ignored if validate function is passed * @param data * @param validate */ export declare const validate: <T = unknown>(schema: JSONSchema7 | CompiledValidateFunction<T>, data: T, validate?: ValidateFunction<T>) => Promise<Violation[]>;