gulp-json-schema
v1.0.0
Published
gulp plugin for validating JSON files with JSON Schema
Downloads
891
Maintainers
Readme
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 = 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 validatorsA mapping Object with format name keys and validator function values.{ "my-format": function () { ... } }
See tv4.addFormat for details. | null
|
| keywords
| Custom keyword validatorsA 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