Have ideas to improve npm?Join in the discussion! »

    eslint-plugin-no-methods

    1.0.5 • Public • Published

    eslint-plugin-no-methods

    Disallow using the method methods

    version  Build Status  GitHub issues  license

    Installation

    You'll first need to install ESLint:

    $ npm i eslint --save-dev
    

    Next, install eslint-plugin-no-methods:

    $ npm install eslint-plugin-no-methods --save-dev
    

    Note: If you installed ESLint globally (using the -g flag) then you must also install eslint-plugin-no-methods globally.

    Usage

    Add no-methods to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:

    {
        "plugins": [
            "no-methods"
        ]
    }

    Then configure the rules you want to use under the rules section.

    {
      "rules": {
        "no-methods/no-includes": [
          "error", 
          {
            "ignore": ["_", "lodash", "underscore"], 
            "errMsg": "Except for _.includes, Array|String.includes is not supported!"
          }
        ],
        "no-methods/no-entries": [
          "error", 
          {"limit": ["Object"], "errMsg": "Object.entries is not supported!"}
        ],
        "no-methods/no-assign": [
          "error", 
          {"limit": ["Object"], "errMsg": "Object.assign is not supported!"}
        ],
        "no-methods/no-methods": [
          "error", 
          {
            "methods": [
              {
                "name": "method0", 
                "ignore": ["ignoreCallerName"], 
                "errMsg": "Except for ignoreCallerName.method0, method0 is not supported!"
              },
              {
                "name": "method1", 
                "ignore": ["ignoreCallerName"], 
                "errMsg": "Except for ignoreCallerName.method1, method1 is not supported!"
              },
              {
                "name": "method2", 
                "limit": ["myObj"], 
                "errMsg": "Only myObj.method2 is not supported!"
              }
            ]
          }
        ]
      }
    }

    ignore: none was allowed but some in ignores

    limit: only some limits were disallowed, and others were allowed

    You can use only one of ignore and limit in configuration.

    Build-in rules

    See build-in rules in doc/build-in.md

    Attention

    The function call expression like methodName.call(ctx, args), wasnot resolved in eslint-plugin-no-method.

    The reason why plugin doesnt provide support (resolve this invoke way) is that you can always find a way to avoid this limitation。 such as

    let a = {
        doSth(...args){
            console.log(args);
            //...
        }
    };
     
    let diyInvoke = (obj, methodName, ctx, ...args) => obj[methodName].apply(ctx, args);
     
    diyInvoke(a, 'doSth', this, 1, 2, 3); 
    // Correct! Even if u`ve configured 'forbidden a.doSth()' in eslint-plugin-no-methods  

    Created by yeoman tool.

    Install

    npm i eslint-plugin-no-methods

    DownloadsWeekly Downloads

    17

    Version

    1.0.5

    License

    MIT

    Unpacked Size

    37.2 kB

    Total Files

    31

    Last publish

    Collaborators

    • avatar