Fork of ajv
 
 
 
 
Go to file
Evgeny Poberezkin fca4c77820 more tests, fixed resolve infinite loop 2015-06-06 19:44:07 +01:00
lib more tests, fixed resolve infinite loop 2015-06-06 19:44:07 +01:00
spec more tests, fixed resolve infinite loop 2015-06-06 19:44:07 +01:00
.gitignore inline simple rules 2015-05-30 09:53:04 +01:00
.gitmodules added JSON-schema-test-suite as submodule 2015-06-05 21:35:20 +01:00
LICENSE Initial commit 2015-05-20 00:23:32 +01:00
README.md optimized code generation, beautify option 2015-06-06 14:13:31 +01:00
package.json more tests, fixed resolve infinite loop 2015-06-06 19:44:07 +01:00
try.js refactor with defs; use numbered variable names in different levels 2015-06-03 22:30:04 +01:00

README.md

ajv - Another JSON schema Validator

One of the fastest JSON schema validators. It uses doT templates to generate super-fast validating functions.

TODO

  • remote refs
  • custom formats (via options)
  • schema validation before compilation
  • bundle compiled templates (doT will be dev dependency)

Install

npm install ajv

Usage

var ajv = require('ajv')(options);
var validate = ajv.compile(schema);
var valid = validate(data);
if (!valid) console.log(validate.errors);

or

// ...
var valid = ajv.validate(schema, data);
// ...

ajv compiles schemas to functions and caches them in both cases (using stringified schema as a key - using json-stable-stringify), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.

Options

  • allErrors: check all rules collecting all errors. Default is to return after the first error.
  • verbose: include the reference to the validated data in the errors.
  • format: validate formats (true by default).
  • uniqueItems: validate uniqueItems (true by default).
  • unicode: calculate correct length of strings with unicode pairs (true by default - string lengths are calculated correctly but it is slower). Pass false to use string.length that is faster, but gives "incorrect" lengths of strings with unicode pairs - each unicode pair is counted as two characters.
  • beautify: format the generated function with js-beautify. npm install js-beautify to use this option.

Tests

git submodule update --init
npm test