1.0.0 • Published 9 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-schemaUsage
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 $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 |
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 buildTo watch file changes
npm run build -- --watchTesting
npm testContributing
- 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
9 years ago