Skip to content

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

License

Notifications You must be signed in to change notification settings

logdna/eslint-plugin-logdna

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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!

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published