Git Product home page Git Product logo

gulp-jsonlint's Introduction

gulp-jsonlint NPM version Build Status Dependency Status

jsonlint plugin for gulp

Usage

First, install gulp-jsonlint as a development dependency:

npm install --save-dev gulp-jsonlint

Then, add it to your gulpfile.js:

var jsonlint = require("gulp-jsonlint");

gulp.src("./src/*.json")
    .pipe(jsonlint())
    .pipe(jsonlint.reporter());

Using a custom reporter:

var jsonlint = require('gulp-jsonlint');
var log = require('fancy-log');

var myCustomReporter = function (file) {
    log('File ' + file.path + ' is not valid JSON.');
};

gulp.src('./src/*.json')
    .pipe(jsonlint())
    .pipe(jsonlint.reporter(myCustomReporter));

API

jsonlint(options)

For now, options are not supported yet.

jsonlint.reporter(customReporter)

customReporter(file)

Type: function

You can pass a custom reporter function. If ommited then the default reporter will be used.

The customReporter function will be called with the argument file.

file

Type: object

This argument has the attribute jsonlint wich is an object that contains a success boolean attribute. If it's false you also have a message attribute containing the jsonlint error message.

jsonlint.failOnError()

Stop a task/stream if an jsonlint error has been reported for any file.

// Cause the stream to stop(/fail) before copying an invalid JS file to the output directory
gulp.src('**/*.js')
	.pipe(jsonlint())
	.pipe(jsonlint.failOnError())
	.pipe(gulp.dest('../output'));

jsonlint.failAfterError()

Stop a task/stream if an jsonlint error has been reported for any file, but wait for all of them to be processed first.

License

MIT License

gulp-jsonlint's People

Contributors

ashleyconnor avatar dependabot-preview[bot] avatar greenkeeperio-bot avatar michaelerobertsjr avatar rogeriopvl avatar shinnn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

gulp-jsonlint's Issues

Remove deprecated module gulp-util

Replace deprecated dependency gulp-util

gulp-util has been recently deprecated. Continuing to use this dependency may prevent the use of your library with the latest release of Gulp 4 so it is important to replace gulp-util.

The README.md lists alternatives for all the components so a simple replacement should be enough.

Your package is one of the most popular packages still relying on gulp-util, it would be good to publish a fixed version to npm as soon as possible.

See:

TypeError: Cannot read property 'success' of undefined

Snippet from gulpfile.js

const jsonlint = require('gulp-jsonlint');

gulp.task('lintjson', () => {
  gulp.src(['/*.json', '.babelrc', '.csslintrc', '.eslintrc', '.tern-project'])
    .pipe(jsonlint())
    .pipe(jsonlint.failOnError())
    .on('error', onError);
});

Error output

/Users/chris/Sites/puretable/node_modules/gulp-jsonlint/index.js:64
        if (file.jsonlint.success === false) {
                         ^

TypeError: Cannot read property 'success' of undefined
    at DestroyableTransform._transform (/Users/chris/Sites/puretable/node_modules/gulp-jsonlint/index.js:64:26)
    at DestroyableTransform.Transform._read (/Users/chris/Sites/puretable/node_modules/readable-stream/lib/_stream_transform.js:159:10)
    at DestroyableTransform.Transform._write (/Users/chris/Sites/puretable/node_modules/readable-stream/lib/_stream_transform.js:147:83)
    at doWrite (/Users/chris/Sites/puretable/node_modules/readable-stream/lib/_stream_writable.js:337:64)
    at writeOrBuffer (/Users/chris/Sites/puretable/node_modules/readable-stream/lib/_stream_writable.js:326:5)
    at DestroyableTransform.Writable.write (/Users/chris/Sites/puretable/node_modules/readable-stream/lib/_stream_writable.js:263:11)
    at Transform.ondata (_stream_readable.js:626:20)
    at emitOne (events.js:115:13)
    at Transform.emit (events.js:210:7)
    at addChunk (_stream_readable.js:250:12)
    at readableAddChunk (_stream_readable.js:237:11)
    at Transform.Readable.push (_stream_readable.js:195:10)
    at Transform.push (_stream_transform.js:151:32)
    at afterTransform (_stream_transform.js:100:12)
    at TransformState.afterTransform (_stream_transform.js:75:12)
    at Transform.util.transform [as _transform] (/Users/chris/Sites/puretable/node_modules/gulp-eslint/index.js:70:3)

Fail on error

Hey,

I'd like to use gulp-jsonlint in my CI system and that for a failing status code might be handy. :)

I'd really like to go with this plugin and that for I'll propose a PR soon.
Maybe you like it. ;)

Add option to use validation schemas?

jsonlint provides an option for validation schemas as follows:

-V, --validate           a JSON schema to use for validation

Would you be interested in supporting JSON validation schemas in gulp-jsonlint? If so I'd be happy to hack together a Pull Request ๐Ÿ˜ƒ

EDIT: nevermind, I found gulp-json-schema which can do this for me ๐Ÿ˜…

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.