Linter doesn't implement validators - it utilizes free available quality tools. Javascript lang is too flexible and it becomes very hard to work in larger teams, especially if some of members are newbie on javascript. Linter is highly configurable, so if you don't want to use some rules, you can create your own conf file. You can easily add more quality tools.
npm install linter
$ linter -h
var linter = require('linter');
linter.run({
files: "/path/to/file" // can be an array or directory
config: "conf/server.json" // can be an object, path to a conf.json or config name e.g. "server"
confRoot: "/path/to/linter/predef/configs", per default is linter "conf" dir
recursive: false, // read dir recursively, default to false
format: false, // set to true if you want to get a string as errors argument, formatted for console output
// callback functions, which is called on complete and errors array is passed
// see ./bin/cli.js
callback: function(errors) {
console.log(errors);
},
});
./conf/server.json
for examples*.json
configs can have comments in it Errors array passed to callback contains objects in this format:
{
linter: "validator name",
file: "file name",
message: "error message",
line: "line number"
}
put the linter into ./deps/linter-name
write a wrapper for it and put it into ./lib/linter/linter-name.js
wrapper should implement one function
module.exports = function(file, options, callback){
};
wrapper should talk with validator and on complete call the callback and pass errors array in unified error format
see ./lib/linter/jslint.js
for an example
option for new validator in json should have name
{
"validator-name": {
"some-option": true
}
}
./deps/JSLint/fulljslint.js