gulp-json-schema

1.0.0 • Public • Published

gulp-json-schema

wercker status

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 = require("gulp");
var jsonSchema = require("gulp-json-schema");
 
gulp.task("validate", () => {
  return gulp.src("data/**/*.json")
    .pipe(jsonSchema("schema.json"));
});

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.

jsonSchema("schema.json", { /* Options */ })
jsonSchema({ schema: "schema.json", /* Options */ })
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

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

The MIT License

Package Sidebar

Install

npm i gulp-json-schema

Weekly Downloads

40

Version

1.0.0

License

MIT

Last publish

Collaborators

  • io-monad