Skip to content

novemberborn/eslint-plugin-as-i-preach

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

@novemberborn/eslint-plugin-as-i-preach

ESLint to @novemberborn’s taste.

Installation

npm install -D @novemberborn/eslint-plugin-as-i-preach eslint eslint-plugin-{ava,import,node,promise,security,standard,unicorn}

For TypeScript projects, also install:

npm install -D @typescript-eslint/eslint-plugin

You can ignore peer dependency warnings about this plugin (and the typescript dependency) if you don't use TypeScript.

Usage

Use the as-i-preach binary in package.json scripts:

{
  "scripts": {
    "test": "as-i-preach"
  }
}

Or run it with npx:

npx as-i-preach

Run with --fix to automatically fix violations:

npx as-i-preach --fix

Node.js / JavaScript

Create .eslintrc.js:

'use strict'

module.exports = {
  plugins: ['@novemberborn/as-i-preach'],
  extends: ['plugin:@novemberborn/as-i-preach/nodejs'],
}

Node.js / TypeScript

Create .eslintrc.js:

'use strict'

require('@novemberborn/eslint-plugin-as-i-preach').mergeTypeScriptParserOptions({ tsconfigRootDir: __dirname })

module.exports = {
  plugins: ['@novemberborn/as-i-preach'],
  extends: ['plugin:@novemberborn/as-i-preach/nodejs', 'plugin:@novemberborn/as-i-preach/typescript'],
}

All *.ts and *.d.ts files must be included by your TypeScript config. If you want to exclude certain files from compilation you can create a tsconfig.eslint.json file instead. It'll be picked up automatically.

For instance, given a tsconfig.json:

{
  "include": ["src/**/*"],
  "exclude": ["src/test/typescript/*"]
}

You could write a tsconfig.eslint.json:

{
  "extends": "./tsconfig.json",
  "exclude": []
}