JSON Schema validation for Human 👨🎤
Main goal of this library is to provide relevant error messages like the following:
Installation
$ yarn add better-ajv-errors$ # Or $ npm i better-ajv-errors
Also make sure that you installed ajv package to validate data against JSON schemas.
Usage
First, you need to validate your payload with ajv
. If it's invalid then you can pass validate.errors
object into better-ajv-errors
.
;;// const Ajv = require('ajv');// const betterAjvErrors = require('better-ajv-errors'); // You need to pass `jsonPointers: true`const ajv = jsonPointers: true ; // Load schema and dataconst schema = ...;const data = ...; const validate = ajv;const valid = ; if !valid const output = ; console;
API
betterAjvErrors(schema, data, errors, [options])
Returns formatted validation error to print in console
. See options.format
for further details.
schema
Type: Object
The JSON Schema you used for validation with ajv
data
Type: Object
The JSON payload you validate against using ajv
errors
Type: Array
Array of ajv validation errors
options
Type: Object
format
Type: string
Default: cli
Values: cli
js
Use default cli
output format if you want to print beautiful validation errors like following:
Or, use js
if you are planning to use this with some API. Your output will look like following:
start: line: 6 column: 15 offset: 70 end: line: 6 column: 26 offset: 81 error: '/content/0/type should be equal to one of the allowed values: panel, paragraph, ...' suggestion: 'Did you mean paragraph?' ;
indent
Type: number
null
Default: null
If you have an unindented JSON payload and you want the error output indented