backoffice/node_modules/grunt-jscs/tasks/jscs.js

40 lines
1.1 KiB
JavaScript

"use strict";
var Vow = require( "vow" );
module.exports = function( grunt ) {
var filter = Array.prototype.filter,
JSCS = require( "./lib/jscs" ).init( grunt );
grunt.registerMultiTask( "jscs", "JavaScript Code Style checker", function() {
var done = this.async(),
options = this.options({
// `null` is a default value, but its equivalent to `true`,
// With this way it's easy to distinguish specified value
config: null
}),
jscs = new JSCS( options ),
runs = this.filesSrc.map( jscs.checker.execute, jscs.checker );
Vow.allResolved( runs ).spread(function() {
var results = [];
// Filter unsuccessful promises
filter.call( arguments, function( promise ) {
return promise.isFulfilled();
// Make array of errors
}).forEach(function( promise ) {
results.push.apply( results, promise.valueOf() );
});
jscs.setErrors( results ).report().notify();
done( options.force || !jscs.count() );
});
});
};