JSON Clay
JSON schema validation, fake data generation and migrations.
Usage
var Clay = var person = schema: id: 'https://schema.ehealthafrica.org/1.0/person#' $schema: 'http://json-schema.org/draft-04/schema#' allOf: $ref: 'https://schema.ehealthafrica.org/1.0/base#' type: 'object' properties: name: type: 'string' minLength: 1 required: 'name' defaults: type: 'person' version: '1.2.3' person// =>// {// validation: {// name: {// required: true// }// }// } person// =>// {// "type": "person",// "version": "1.0.0"// } // The future:// person.migrate({// version: '1.0.0'// firstName: 'Audrey',// lastName: 'Horne'// })// // =>// // [// // {// // version: '1.2.3'// // name: 'Audrey Horne'// // }// // ]
new Clay([options])
Constructor: Create a new JSON schema clay.
options.schema
- JSON schema of the clay. Default is the base schema.options.refs
- Array of referenced schemas.options.defaults
- Default properties used for generating fake data.
clay.validate(json)
Validation: Validate the attribjson
against the schema.
Returns undefined
if the data is valid, otherwise an array of errors.
Validation Errors
A typical error object looks like this:
validation: name: required: true
clay.generate([attributes])
Generate Fake Data: Use this method if you want to get fake data. Utilizes
json-schema-faker.
If an attributes
object is provided, its properties will be used instead of
faked values.
Clay.schema
Holds the schema
.
Clay.refs
Holds the refs
.
Clay.defaults
Holds the defaults
.
CLI
Use it to create a simple command line utility which generates fake data:
var Clay = var cli = var person =
Browserify Build
npm run build
Creates a browserified release in dist/json-clay.js
.
This build does not include the fake data generator.
Tests
npm test
Author
© 2015 eHealth Systems Africa