@bpmn-io/json-schema-validator

0.2.1 • Public • Published

json-schema-validator

CI

Validate JSON based on JSON Schema files.

Installation

$ npm i --save @bpmn-io/json-schema-validator

Usage

Given

import { Validator } from '@bpmn-io/json-schema-validator';

import schema from './test/fixtures/json-schema/schema.json';

import sample from './test/fixtures/samples/invalid-name.json';

const validator = new Validator({
  schema: schema
});

const {
  valid,
  errors
} = validator.validate(sample);

if (!valid) {
  console.error('Invalid JSON detected:', errors);
}

This will print detailed information about errors inside the sample

[
  {
    "message": "must start with <number_>",
    "keyword": "errorMessage",
    "dataPath": "/properties/0/name",
    "schemaPath": "#/properties/properties/items/allOf/0/then/properties/name/errorMessage",
    "params": {
      "rawErrors": [
        {
          "keyword": "pattern",
          "dataPath": "/properties/0/name",
          "schemaPath": "#/properties/properties/items/allOf/0/then/properties/name/pattern",
          "params": {
            "pattern": "^(number_)"
          },
          "message": "should match pattern \"^(number_)\""
        }
      ]
    }
  }
]

It's also possible to validate multiple objects at once

import Validator from '@bpmn-io/json-schema-validator';

import schema from './test/fixtures/json-schema/schema.json';

import samples from './test/fixtures/samples/multiple-samples.json';

const validator = new Validator({
  schema: schema
});

const {
  valid,
  results
} = validator.validateAll(samples);

if (!valid) {
  console.error('Invalid JSON objects detected:', results.filter(r => !r.valid));
}

Example JSON Schemas

License

MIT

/@bpmn-io/json-schema-validator/

    Package Sidebar

    Install

    npm i @bpmn-io/json-schema-validator

    Weekly Downloads

    8

    Version

    0.2.1

    License

    MIT

    Unpacked Size

    11.3 kB

    Total Files

    7

    Last publish

    Collaborators

    • bpmn-io-admin
    • nikku
    • barmac
    • philippfromme
    • maxtru
    • abdul99ahad
    • skaiir-camunda
    • vsgoulart
    • jarekdanielak
    • simon-steinruecken-camunda