1.0.0 • Published 8 years ago
gulp-json-schema v1.0.0
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
License
1.0.0
8 years ago