eslint-plugin-no-unsafe-regex
v1.0.0
Published
ESLint rules to disallow unsafe regular expressions.
Downloads
8,689
Maintainers
Readme
Rules: No Unsafe Regex
Installation
$ npm install eslint-plugin-no-unsafe-regex
Usage
Plugin
To use the plugin in an .eslintrc
file,
{
'plugins': [
'no-unsafe-regex'
]
}
where no-unsafe-regex
is shorthand for eslint-plugin-no-unsafe-regex
. To configure plugin rules,
{
'plugins': [
'no-unsafe-regex'
],
'rules': {
'no-unsafe-regex/no-unsafe-regex': 2
}
}
where a plugin rule must be prefixed with the plugin name and a /
; e.g., no-unsafe-regex/<rule>
.
Module
var plugin = require( 'eslint-plugin-no-unsafe-regex' );
plugin
ESLint rules to disallow unsafe regular expressions.
console.dir( plugin );
/*
{
'rules': {
'no-unsafe-regex': <rule>
},
'rulesConfig': {
'no-unsafe-regex': 2
}
}
*/
Notes
In order to use the plugin, the plugin must first be installed as a
node_modules
dependency.The plugin only validates regular expression literals and regular expressions created using the
RegExp
constructor and literal arguments.var re; // Validated: re = /beep/; // Validated: re = new RegExp( 'beep', 'i' ); // Not validated: str = 'beep'; re = new RegExp( str, 'i' ); // Not validated: re = new RegExp( new Array( 5 ).join( 'ab' ) );
Validating regular expressions created using non-literal arguments would require reconstructing an execution context, which is beyond the scope of this module. For example, consider
var getStr = require( './path/to/my/string' ), str = getStr(); var re = new RegExp( str );
If the return value of
getStr
is dynamic, validation is impossible.
Examples
module.exports = {
'env': {
'node': true
},
'plugins': [
// Declare the plugin:
'no-unsafe-regex'
],
'rules': {
'no-path-concat': 2,
'no-process-exit': 0,
'no-sync': 1,
'no-mixed-requires': [ 2, false ],
// Prefix a plugin rule with `{{plugin_name}}/`:
'no-unsafe-regex/no-unsafe-regex': 2
}
};
To run the example code from the top-level application directory,
$ node ./examples/index.js
Tests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
License
Copyright
Copyright © 2015. Athan Reines.