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

    Install

    npm i gulp-json-schema

    DownloadsWeekly Downloads

    233

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • avatar