jschema

a JSON-schema validation library

npm install jschema
5 downloads in the last week
20 downloads in the last month

jschema


jschema is a JSON schema validation library, written to follow the JSON-schema draft 03 spec as found at http://tools.ietf.org/html/draft-zyp-json-schema-03

It is not yet a complete implementation, missing things from the draft are:

  • item tuple schemas: the ability to define an array of schemas to match against an array
  • additionalItems: since item tuples aren't supported, this isn't really possible yet
  • default/title/description: while you can put these in your schema, they only serve as comments since the values are not used anywhere
  • format: see section 5.23 of the draft, none of this is implemented
  • extends: to maintain simplicity, extends is not implemented. it's easy enough to define your schema as smaller bits of json and reuse what you need to
  • id
  • $ref
  • $schema
  • Hyper Schema

Everything else stated in the spec is at least mostly functional. Note that, currently, there is no test suite. That's something I intend to fix ASAP.

Example usage:

var jschema = require('jschema');
var schema = {
    type: 'object',
    title: 'main',
    additionalProperties: {
        type: 'string'
    },
    patternProperties: {
        'h$': {
            type: 'number'
        }
    },
};

var test = jschema(schema);
test.validate({ one: 'test', bath: 'cold', hearth: 'test', bacon: 'test' }, function (err) {
    if (err) {
        console.log(err); // properties 'bath' and 'hearth' will fail, as they match patternProperties and are not numbers
    } else {
        console.log('looks valid!');
    }
});
npm loves you