eslint-plugin-logdna

    2.0.0 • Public • Published

    eslint-plugin-logdna

    All Contributors

    ESlint plugin containing a collection of rules for enforcing code style at LogDNA

    Installation

    Requires eslint also

    We do not use peer dependencies, so make sure that eslint is also installed as a dev dependency.

    npm install eslint-plugin-logdna eslint --save-dev

    Usage

    Add logdna to the plugins section of your ESLint configuration. You can omit the eslint-plugin- prefix. Then you can configure the rules you want to use:

    {
      "plugins": [
        "logdna"
      ],
      "rules": {
        "logdna/grouped-require": 2,
        "logdna/require-file-extension": 2,
        "logdna/tap-no-deprecated-aliases": 2,
        "logdna/tap-consistent-assertions": [2, {
          "preferredMap": {
            "error": "error",
            "equal": "strictEqual",
          }
        }]
      }
    }

    Rules

    logdna/grouped-require

    Enforce sorted require declarations within modules

    // Bad
    const foo = require('./lib/foo.js') //local
    const http = require('http') // builtin
    require('foo') // static
    const logger = require('@logdna/logger') // scoped
    const tap = require('tap') // contrib
    
    // Good
    require('foo') // static
    const http = require('http') // builtin
    const tap = require('tap') // contrib
    const logger = require('@logdna/logger') // scoped
    const foo = require('./lib/foo.js') //local

    Options

    • typeOrder <Array> - sort order of require types (default: ['static', 'builtin', 'contrib', 'scoped', 'local'])

    logdna/tap-no-deprecated-aliases

    Prevent usage of deprecated tap aliases (>= tap@15.0.0)

    Tap deprecated assertion aliases as of version 15.0.0. This rule supersedes logdna/tap-consistent-assertions and will enforce the use of unaliased assertion methods.

    // Bad
    test('foo', async (t) => {
      t.is_equal(1, 1)
      t.strictEqual(1, 1)
      t.identical(1, 1)
    })
    
    // Good
    test('foo', async (t) => {
      t.equal(1, 1)
      t.equal(1, 1)
      t.equal(1, 1)
    })

    Options

    • calleePattern <String> - pattern to match for tap's Test object (default: /^t+$/)

    [Deprecated] logdna/tap-consistent-assertions

    Enforce consistent aliases for tap assertions

    // {
    //   "plugins": [
    //     "logdna"
    //   ],
    //   "rules": {
    //     "logdna/tap-consistent-assertions": {
    //       "preferredMap": {
    //         "equal": "strictEqual"
    //       }
    //     }
    //   }
    // }
    
    // Bad
    test('foo', async (t) => {
      t.is_equal(1, 1)
      t.equal(1, 1)
      t.identical(1, 1)
    })
    
    // Good
    test('foo', async (t) => {
      t.strictEqual(1, 1)
      t.strictEqual(1, 1)
      t.strictEqual(1, 1)
    })

    Options

    • preferredMap <Object> - maps the "primary" assertion method to the preferred alias
    • calleePattern <String> - pattern to match for tap's Test object (default: /^t+$/)

    logdna/require-file-extension

    Enforce file extension for local modules/files

    // Bad
    const foo = require('./lib/foo')
    
    // Good
    const foo = require('./lib/foo.js')

    Contributors

    Thanks goes to these wonderful people (emoji key):


    Mike Del Tito

    💻 📖

    This project follows the all-contributors specification. Contributions of any kind welcome!

    License

    Copyright © LogDNA, released under an MIT license. See the LICENSE file and https://opensource.org/licenses/MIT

    Happy Logging!

    Install

    npm i eslint-plugin-logdna

    DownloadsWeekly Downloads

    580

    Version

    2.0.0

    License

    SEE LICENSE IN LICENSE

    Unpacked Size

    19.8 kB

    Total Files

    13

    Last publish

    Collaborators

    • avatar