Write your JSON-schemas in simple chainable manner. No plain JSON - no pain.
Install it with NPM or add it to your package.json:
$ npm install ajgGetter property that creates empty JSON-schema. This schema could be modified by rules in chainable manner:
ajg.schema.required.array.items(ajg.schema.integer)Produces:
{
required: true,
type: 'array',
items: {
type: 'integer'
}
}Currently Ajg supports only draft-03 rules and fully compatible with conform.js.
ajg.schema.required -> { required: true }
ajg.schema.any -> { type: 'any' }
ajg.schema.array -> { type: 'array' }
ajg.schema.object -> { type: 'object' }
ajg.schema.boolean -> { type: 'boolean' }
ajg.schema.number -> { type: 'number' }
ajg.schema.integer -> { type: 'integer' }
ajg.schema.string -> { type: 'string' }
ajg.schema.null -> { type: 'null' }
ajg.schema.type('array') -> { type: 'array' }
ajg.schema.message('hello') -> { message: 'hello' }
ajg.schema.messages({ required: 'hello' }) -> { messages: { required: 'hello' } }
ajg.schema.description('hello') -> { description: 'hello' }
ajg.schema.set('a', 'b') -> { a: 'b' }
ajg.schema.extend({a: 'b'}) -> { a: 'b' }
ajg.schema.required.reset('required') -> {}
ajg.schema.required.reset() -> {}
...
Clone repository from github, cd into cloned dir and install dev dependencies:
$ npm installThen run tests with command:
$ npm test