decorated-ajv
Version:
AJV decorated with error handling and formats
28 lines (27 loc) • 1.15 kB
TypeScript
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[]>;