susisu / eslint-config

My ESLint config

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@susisu/eslint-config

CI

Requirements

  • eslint >= 8.56.0 < 9

Installation

# npm
npm i -D eslint @susisu/eslint-config
# yarn
yarn add -D eslint @susisu/eslint-config
# pnpm
pnpm add -D eslint @susisu/eslint-config

Usage

NOTE: Formatting rules are not enabled. I recommend using Prettier.

eslintrc

There are three preset configurations for JavaScript and TypeScript:

  • @susisu/eslint-config/preset/js: preset for JavaScript
  • @susisu/eslint-config/preset/ts: preset for TypeScript + rules that require type information
  • @susisu/eslint-config/preset/ts-without-types: preset for TypeScript

To use a preset, extend it in your eslintrc file.

{
  "overrides": [
    {
      "files": ["**/*.js"],
      "extends": ["@susisu/eslint-config/preset/js"],
      "parserOptions": {
        "ecmaVersion": "latest",
        "sourceType": "module"
      },
      "rules": {
        "no-console": "off"
      }
    }
  ]
}

Flat Config (beta)

The package provides a factory function that configures all language settings and rules for each file type.

import { config } from "@susisu/eslint-config";

export default config(
  // options
  {
    // Default sourceType for .js and .ts files  (default: "module")
    sourceType: "module",
    // Set as languageOptions.parserOptions.project for TypeScript files (default: true)
    tsProject: true,
    // If true, mixes eslint-config-prettier to disable formatting rules (default: true)
    prettier: true,
  },
  // custom flat configs
  [
    {
      files: ["/path/to/file.js"],
      rules: {
        "no-console": "off",
      },
    },
  ],
);

Error levels

  • error: problems that should be fixed in most of the projects and contexts
  • warn: problems that might be fixed depending on the project or context, or just notifications (like highlighting TODO comments)

License

MIT License

Author

Susisu (GitHub, Twitter)

About

My ESLint config

License:MIT License


Languages

Language:TypeScript 86.0%Language:JavaScript 13.1%Language:Shell 0.8%