better-avj-errors
TypeScript icon, indicating that this package has built-in type declarations

0.4.0-alpha.3 • Public • Published

better-avj-errors

JSON Schema validation for Human

Main goal of this library is to provide relevant error messages like the following:

Enum Validation Error

You can also use it in "return" mode when library returns structured errors.

Installation

$ yarn add better-avj-errors
# Or 
$ npm i better-avj-errors

Also make sure that you installed ajv package to validate data against JSON schemas.

Usage

You need to validate data first with ajv. Then you can pass validate.errors object into better-ajv-errors.

import Ajv from 'ajv';
// const Ajv = require('ajv');
import betterAjvErrors from 'better-avj-errors';
// const betterAjvErrors = require('better-avj-errors');
 
// You need to pass `jsonPointers: true`
const ajv = new Ajv({ jsonPointers: true });
 
// Load schema and data
const schema = ...;
const data = ...;
 
const validate = ajv.compile(schema);
const valid = validate(data);

"Print" mode

// ...validate data first
const print = betterAjvErrors({ schema, mode: 'print', indent: 2 });
 
if (!valid) {
  print(data, validate.errors);
}

"Return" mode

// ...validate data first
const getHumanErrors = betterAjvErrors({ schema, mode: 'return', indent: 2 });
 
if (!valid) {
  const errors = getHumanErrors(data, validate.errors);
 
  /*
  errors is array: [
    {
      "error": "You're using invalid field FOO",
      "line": 14,
      "column": 75,
      "suggestion": "Maybe you meant BAR?"
    }
  ]
  */
}

Readme

Keywords

none

Package Sidebar

Install

npm i better-avj-errors

Weekly Downloads

5

Version

0.4.0-alpha.3

License

MIT

Last publish

Collaborators

  • rifat