diff --git a/README.md b/README.md index 83cc63921..16d5340e4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ajv - Another JSON Schema Validator -One of the fastest JSON Schema validators for node.js. +One of the fastest JSON Schema validators for node.js and browser. It uses precompiled [doT templates](https://github.com/olado/doT) to generate super-fast validating functions. diff --git a/lib/compile/_rules.js b/lib/compile/_rules.js new file mode 100644 index 000000000..ca0991c07 --- /dev/null +++ b/lib/compile/_rules.js @@ -0,0 +1,28 @@ +'use strict'; + +//all requires must be explicit because browserify won't work with dynamic requires +module.exports = { + '$ref': require('../dotjs/$ref'), + anyOf: require('../dotjs/anyOf'), + format: require('../dotjs/format'), + maxLength: require('../dotjs/maxLength'), + minItems: require('../dotjs/minItems'), + minimum: require('../dotjs/minimum'), + oneOf: require('../dotjs/oneOf'), + required: require('../dotjs/required'), + dependencies: require('../dotjs/dependencies'), + items: require('../dotjs/items'), + maxProperties: require('../dotjs/maxProperties'), + minLength: require('../dotjs/minLength'), + multipleOf: require('../dotjs/multipleOf'), + pattern: require('../dotjs/pattern'), + uniqueItems: require('../dotjs/uniqueItems'), + allOf: require('../dotjs/allOf'), + enum: require('../dotjs/enum'), + maxItems: require('../dotjs/maxItems'), + maximum: require('../dotjs/maximum'), + minProperties: require('../dotjs/minProperties'), + not: require('../dotjs/not'), + properties: require('../dotjs/properties'), + validate: require('../dotjs/validate') +}; diff --git a/lib/compile/rules.js b/lib/compile/rules.js index 14010a904..3b91e31bc 100644 --- a/lib/compile/rules.js +++ b/lib/compile/rules.js @@ -1,6 +1,7 @@ 'use strict'; -var util = require('./util'); +var ruleModules = require('./_rules') + , util = require('./util'); var RULES = module.exports = [ { type: 'number', @@ -16,12 +17,13 @@ var RULES = module.exports = [ RULES.all = [ 'type', 'additionalProperties', 'patternProperties' ]; + RULES.forEach(function (group) { group.rules = group.rules.map(function (keyword) { RULES.all.push(keyword); return { keyword: keyword, - code: require('../dotjs/' + keyword) + code: ruleModules[keyword] }; }); }); diff --git a/package.json b/package.json index 7922acb0c..c2dba5c03 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ajv", - "version": "0.5.1", + "version": "0.5.2", "description": "Another JSON schema Validator", "main": "lib/ajv.js", "scripts": {