Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    eslint-plugin-no-unsafe-regexpublic

    Rules: No Unsafe Regex

    NPM version Build Status Coverage Status Dependencies

    ESLint rules to disallow unsafe regular expressions.

    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

    MIT license.

    Copyright

    Copyright © 2015. Athan Reines.

    install

    npm i eslint-plugin-no-unsafe-regex

    Downloadslast 7 days

    81

    version

    1.0.0

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar