gulp-json-schema
gulp plugin for validating JSON files with JSON Schema
Currently using tv4 as a backend for JSON schema validation, which supports draft v4 specification.
Install
npm install --save-dev gulp-json-schema
Usage
In your gulpfile:
var gulp = ;var jsonSchema = ; gulp;
And gulp validate
will validate all JSON files in data
directory with schema.json
.
If validation failed, it will emit an error, which means gulp to stop running. If you want to change this behavior, set emitError
option to false
.
Options
Options can be passed as a second argument, or a first argument with schema
property of a schema file path.
Key | Description | Default |
---|---|---|
schema |
Schema file path, or schema object | None |
schemas |
Schemas to be preloaded for resolving $ref This can be an array of schema object [{ "$id": "..." }, { "$id": "..." }] or an array of schema file paths ["schema-a.json", "schema-b.json"] or a mapping Object with URI keys and schema object values { "http://...": {}, "http://...": {} } See tv4.addSchema for details. |
null |
formats |
Custom format validators A mapping Object with format name keys and validator function values. { "my-format": function () { ... } } See tv4.addFormat for details. |
null |
keywords |
Custom keyword validators A mapping Object with keyword keys and validator function values. { "my-keyword": function () { ... } } See tv4.defineKeyword for details. |
null |
configure |
Function called with a tv4 instance on initialization. You can use this function to customize tv4 settings. |
null |
loadMissingSchemas |
If set to true , it will automatically fetch missing schemas ($ref that cannot be resolved) from remote server with HTTP request. |
false |
requestOptions |
Options for request for fetching remote schema. | {} |
checkRecursive |
If set to true , tv4 will handle self-referencing objects properly (slows down validation)See tv4 article about this option. |
false |
banUnknownProperties |
If set to true , any unknown property causes validation to fail.See tv4 article about this option. |
false |
silent |
If set to true , it will never output logs to console. |
false |
verbose |
If set to true , it will also report valid files. |
false |
missing |
If set to "error" (default), missing schema ($ref that cannot be resolved) causes validation to fail.If set to "warn" , missing schema will be reported as warning, but it won't fail validation.If set to "ignore" , missing schema will never be reported. |
"error" |
emitError |
If set to false , it doesn't emit an error for failed validation. (gulp will continue to run tasks) |
true |
Build
To transpile source files into lib
npm run build
To watch file changes
npm run build -- --watch
Testing
npm test
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D