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 ajg
Getter 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 install
Then run tests with command:
$ npm test