Get unlimited public & private packages + package-based permissions with npm Pro.Get started »

better-avj-errors

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?"
    }
  ]
  */
}

Keywords

none

Install

npm i better-avj-errors

DownloadsWeekly Downloads

52

Version

0.4.0-alpha.3

License

MIT

Last publish

Collaborators

  • avatar