Package Exports
- eslint-plugin-no-unsafe-regex
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-no-unsafe-regex) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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.