Skip to content

Latest commit

 

History

History
170 lines (135 loc) · 3.81 KB

README.md

File metadata and controls

170 lines (135 loc) · 3.81 KB

eslint-config-ai

Opinionated set of ESLint shareable configs by Alex Ilyaev

Why?

I manage many projects and find myself copy/pasting configs between projects, which got out of hand pretty quickly.

What's included?

Installation

Required:

pnpm add -D \
  prettier \
  eslint \
  eslint-config-prettier \
  @stylistic/eslint-plugin \
  @typescript-eslint/eslint-plugin \
  @typescript-eslint/parser \
  eslint-config-ai

Optional (based on the configs you choose)

ai/react:

pnpm add -D \
  eslint-plugin-compat \
  eslint-plugin-jsx-a11y \
  eslint-plugin-react \
  eslint-plugin-react-hooks

ai/import:

pnpm add -D \
  eslint-plugin-import \
  eslint-import-resolver-typescript

Other:

pnpm add -D \
  eslint-plugin-jest \
  eslint-plugin-lodash \
  eslint-plugin-promise \
  eslint-plugin-jsdoc \
  eslint-plugin-eslint-comments \
  eslint-plugin-unicorn
  • If you use npm, replace pnpm add with npm install

Usage

Add to your .eslintrc:

Last

Disables styling rules that are covered by Prettier or deprecated and moved to @stylistic

Always add ai/last as the last extends

{
  "extends": ["ai/last"]
}

Base rules

This config extends eslint:recommended and sets up Prettier

{
  "extends": ["ai", "ai/last"]
}

Base + Plugins

You can choose which plugins to add

{
  "extends": [
    "ai",
    "ai/typescript",
    "ai/unicorn",
    "ai/import",
    "ai/jest",
    "ai/lodash",
    "ai/promise",
    "ai/jsdoc",
    "ai/eslint-comments",
    "ai/last"
  ]
}

Base + TypeScript + React

{
  "extends": ["ai", "ai/typescript", "ai/react", "ai/last"]
}

All (Base + All Plugins + Last)

{
  "extends": ["ai/all"]
}

Configured Rules

You can see what's currently configured in these files: