js-schema-6901

Enhances js-schema with JSON Pointer (RFC 6901)

Usage no npm install needed!

<script type="module">
  import jsSchema6901 from 'https://cdn.skypack.dev/js-schema-6901';
</script>

README

js-schema-6901 Build status

JSON Pointer, RFC 6901, defines a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document. For example, evaluating "foo/0/bar" against { foo: [ { bar: 1}, { bar: 2} } returns 1;

js-schema is simple and intuitive object validation library. It provides support for JSON Schema.

This package reports schema validation errors with a JSON Pointer to the offending field by adding the jpErrors method to a schema.

Getting started npm version

Install with $ npm install js-schema-6901. Bower will be coming soon.

Usage

var schema = require('js-schema-6901');
var person = schema({
    name: String,
    dob: /\d{4}\-\d{2}\-\d{2}/,
    children: Array.of(schema.self)
});

var badboy = {
    name: 'me', 
    children: [
        {dob: '2000-01-01', children: []}, 
        {dob: '2000-1-01'}
]};

console.log(person.jpErrors(badboy));

produces

{ 
   '/dob': 'key is not present in the object',
   '/children/0/name': 'key is not present in the object',
   '/children/1/name': 'key is not present in the object',
   '/children/1/dob': '2000-1-01 is not matched with RegExp -> /\\d{4}\\-\\d{2}\\-\\d{2}/',
   '/children/1/children': 'key is not present in the object' }
}

License

The MIT license

Copyright © 2015 Richard Schneider (makaretu@gmail.com)