@sidvind/better-ajv-errors
Version:
JSON Schema validation for Human
25 lines (20 loc) • 621 B
TypeScript
import type { ErrorObject } from "ajv";
export interface IOutputError {
start: { line: number; column: number; offset: number };
// Optional for required
end?: { line: number; column: number; offset: number };
error: string;
suggestion?: string;
}
export interface IInputOptions {
format?: "cli" | "js";
indent?: number | null;
/** Raw JSON used when highlighting error location */
json?: string | null;
}
export default function <S, T, Options extends IInputOptions>(
schema: S,
data: T,
errors: Array<ErrorObject>,
options?: Options,
): Options extends { format: "js" } ? Array<IOutputError> : string;