1.0.0 • Published 8 years ago

gulp-json-schema v1.0.0

Weekly downloads
711
License
MIT
Repository
github
Last release
8 years ago

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 */ })
KeyDescriptionDefault
schemaSchema file path, or schema objectNone
schemasSchemas to be preloaded for resolving $refThis 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
formatsCustom format validatorsA mapping Object with format name keys and validator function values.{ "my-format": function () { ... } }See tv4.addFormat for details.null
keywordsCustom keyword validatorsA mapping Object with keyword keys and validator function values.{ "my-keyword": function () { ... } }See tv4.defineKeyword for details.null
configureFunction called with a tv4 instance on initialization.You can use this function to customize tv4 settings.null
loadMissingSchemasIf set to true, it will automatically fetch missing schemas ($ref that cannot be resolved) from remote server with HTTP request.false
requestOptionsOptions for request for fetching remote schema.{}
checkRecursiveIf set to true, tv4 will handle self-referencing objects properly (slows down validation)See tv4 article about this option.false
banUnknownPropertiesIf set to true, any unknown property causes validation to fail.See tv4 article about this option.false
silentIf set to true, it will never output logs to console.false
verboseIf set to true, it will also report valid files.false
missingIf 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"
emitErrorIf 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