MCPcopy Index your code
hub / github.com/EvgenyOrekhov/eslint-config-hardcore

github.com/EvgenyOrekhov/eslint-config-hardcore @v49.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v49.0.0 ↗ · + Follow
19 symbols 19 edges 11 files 0 documented · 0% updated 18d agov49.0.0 · 2025-08-05★ 46937 open issues

Browse by type

Functions 17 Types & classes 2
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

eslint-config-hardcore

npm code style: prettier

The most strict (yet practical) ESLint config.

Aims to include as many plugins and rules as possible to make your code extremely consistent and robust.

51 plugins. 1376 rules.

Usage

npm install eslint-config-hardcore --save-dev

Available configs:

  • hardcore - base framework-agnostic config
  • hardcore/ts - additional config for TypeScript
  • hardcore/node- additional config for Node.js
  • hardcore/react - additional config for React
  • hardcore/react-performance - additional React config with performance rules
  • hardcore/vue - additional config for Vue 3/Nuxt 3
  • hardcore/react-testing-library - additional config for React Testing Library
  • hardcore/jest - additional config for Jest
  • hardcore/fp - additional config for functional programming
  • hardcore/ts-for-js - additional config for linting JavaScript with typescript-eslint

Example .eslintrc.json for a React project:

{
  "root": true,

  "extends": [
    "hardcore",
    "hardcore/react",
    "hardcore/react-performance",
    "hardcore/react-testing-library",
    "hardcore/jest",
    "hardcore/fp"
  ],

  "env": {
    "browser": true
  },

  "overrides": [
    {
      "files": ["server/**/*.js"],

      "extends": ["hardcore/node"],

      "env": {
        "browser": false
      }
    }
  ]
}

Example .eslintrc.json for a TypeScript React project:

{
  "root": true,

  "extends": [
    "hardcore",
    "hardcore/react",
    "hardcore/react-performance",
    "hardcore/react-testing-library",
    "hardcore/jest",
    "hardcore/fp",
    "hardcore/ts"
  ],

  "parserOptions": {
    "project": true
  },

  "env": {
    "browser": true
  },

  "overrides": [
    {
      "files": ["server/**/*.ts"],

      "extends": ["hardcore/node"],

      "env": {
        "browser": false
      }
    }
  ]
}

Example .eslintrc.json for a Vue 3 project:

{
  "root": true,

  "extends": ["hardcore", "hardcore/vue"],

  "settings": {
    "import/resolver": {
      "alias": {
        "map": [["@", "./src/"]],
        "extensions": [".js", ".vue"]
      }
    }
  }
}

Example .eslintrc.json for a Nuxt 3 project:

{
  "root": true,

  "extends": ["hardcore", "hardcore/vue"],

  "settings": {
    "import/resolver": {
      "alias": {
        "map": [
          ["@", "./"],
          ["#imports", ".nuxt/imports.d.ts"]
        ],

        "extensions": [".js", ".vue"]
      }
    }
  }
}

Example .eslintrc.json for a TypeScript Vue 3 project (depending on project configuration, you might want to change "project": true to "project": "tsconfig.app.json"):

{
  "root": true,

  "extends": ["hardcore", "hardcore/ts", "hardcore/vue"],

  "parserOptions": {
    "project": true
  },

  "overrides": [
    {
      "files": [
        "vite.config.*",
        "vitest.config.*",
        "cypress.config.*",
        "playwright.config.*"
      ],

      "parserOptions": {
        "project": "tsconfig.node.json"
      }
    },

    {
      "files": ["src/**/__tests__/*"],

      "parserOptions": {
        "project": "tsconfig.vitest.json"
      }
    }
  ]
}

Example .eslintrc.json for a TypeScript Nuxt 3 project:

{
  "root": true,

  "extends": ["hardcore", "hardcore/ts", "hardcore/vue"],

  "parserOptions": {
    "project": true
  }
}

Configs

hardcore

Base framework-agnostic config.

Plugin Enabled rules
ESLint core rules 173
eslint-plugin-unicorn 105
eslint-plugin-regexp 80
eslint-plugin-putout 76
eslint-plugin-import 34
eslint-plugin-sonarjs 86
HTML ESLint 33
eslint-plugin-promise 15
eslint-plugin-security 12
eslint-plugin-perfectionist 12
@stylistic/eslint-plugin 7
eslint-plugin-eslint-comments 6
eslint-plugin-sdl 5
eslint-plugin-array-func 3
eslint-plugin-unused-imports 2
eslint-plugin-simple-import-sort 2
eslint-plugin-no-constructor-bind 1
eslint-plugin-no-unsanitized 2
eslint-plugin-no-use-extend-native 1
eslint-plugin-ext 1
eslint-plugin-no-only-tests 1
eslint-plugin-compat 1
eslint-plugin-json¹ 1
eslint-plugin-yml¹ 1
eslint-plugin-toml¹ 1
Total: 670

¹ json/yml/toml plugins actually include several rules, but I consider each plugin as a single "no-invalid" rule.

hardcore/ts

Config for TypeScript.

Plugin Enabled rules
typescript-eslint 105
eslint-plugin-etc 10
eslint-plugin-total-functions 8
@shopify/eslint-plugin 3
eslint-plugin-sonarjs 1
eslint-plugin-sort-class-members 1
eslint-plugin-decorator-position 1
eslint-plugin-no-explicit-type-exports 1
eslint-plugin-typescript-compat 1
Total: 131

hardcore/node

Config for Node.js.

Plugin Enabled rules
eslint-plugin-sonarjs 53
eslint-plugin-n 34
eslint-plugin-sdl 1
Total: 88

hardcore/react

Config for React.

Plugin Enabled rules
eslint-plugin-react 76
eslint-plugin-styled-components-a11y 33
eslint-plugin-jsx-a11y 34
eslint-plugin-storybook 15
eslint-plugin-react-form-fields 4
eslint-plugin-ssr-friendly 4
@shopify/eslint-plugin 3
eslint-plugin-react-hook-form 3
eslint-plugin-react-hooks 2
eslint-plugin-sonarjs 2
eslint-plugin-validate-jsx-nesting 1
eslint-plugin-react-prefer-function-component 1
Total: 178

hardcore/react-performance

Config with performance rules for React.

Plugin Enabled rules
eslint-plugin-react 4
eslint-plugin-react-perf 4
eslint-plugin-react-usememo 1
Total: 9

hardcore/vue

Config for Vue 3/Nuxt 3.

Plugin Enabled rules
eslint-plugin-vue 173
eslint-plugin-vuejs-accessibility 20
eslint-plugin-vue-scoped-css 12
eslint-plugin-sonarjs 1
Total: 206

hardcore/react-testing-library

Config for React Testing Library.

Plugin Enabled rules
[eslint-plugin-testing-library](https://github.com/testing-

Core symbols most depended-on inside this repo

Shape

Method 17
Class 2

Languages

TypeScript100%

Modules by API surface

sort-class-members.test.js19 symbols

For agents

$ claude mcp add eslint-config-hardcore \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page