gulp-custom-lint
Use regexp or custom functions to create your own custom lint rules or ocd checks (gulp plugin)
Install
$ npm install --save-dev gulp-custom-lint
Usage
Gulpfile
var gulp = ;var customLint = ; gulp;
.jsclintrc
Create a ".jsclintrc"-file for your custom rules (place it at the same level as your gruntfile.js-file)
moduleexports = regexp: /pattern/g message: 'Message to show on failures' { ... code ... return failed: true/false } message: 'Message to show on failures' ;
Instead of the .jsclintrc"-file you can pass a rules object:
var gulp = ;var customLint = ; gulp;
API
As seen above you can either use a regexp pattern or a custom function to validate content/files
Regexp (regular expression) pattern
regexp: /pattern/ message: 'Message to show on failures'
rule.regexp
type: RegExp
A valid JavaScript regular expressen (with or without g-flag)
rule.message
type: String
The message to show if the pattern matches some content, the failure message
rule.ignore (optional)
type: Array<RegExp>
An array of regexp that will be matched against the file path, so if you want to ignore all files in the "./lib/"-folder, add [/\/lib\//]
Custom function
The custom function will be called with the files content (as a string) and the original vinyl file object. (Don't call toString on the file.content since is has already been done for the content-parameter, performance reasons).
{ return failed: true/false indexes: index } message: 'Message to show if the function returns failed === true'
rule.func
type: Function
In this function you will do your custom linting/checking. The function must return a object with the following format:
return failed: true/false
returnObject.failed
type: Boolean
True or false value
returnObject.indexes
type: Array<int>
An array of indexes where the problem was found. E.g. if the validation failed at char index 12, set indexes to [12]. If you don't have any index you can skip it or set it to [0]
rule.message
Same as for regexp pattern, please see above
rule.ignore (optional)
Same as for regexp pattern, please see above
Some examples
(from https://github.com/archive/gulp-custom-lint/tree/master/examples)
moduleexports = regexp: /z-index: [0-9]/g message: 'Use z-index value from constants file' regexp: /debugger;/g message: 'Remove debugger from js file' ignore: /test\-logger/ { return failed: filepath !== -1 indexes: 1 ; } message: 'Use "-" instead of "_" in file names' ;