MCPcopy Index your code
hub / github.com/eslint/eslintrc

github.com/eslint/eslintrc @v3.3.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.3.1 ↗ · + Follow
218 symbols 567 edges 86 files 157 documented · 72% 244 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ESLintRC Library

This repository contains the legacy ESLintRC configuration file format for ESLint. This package is not intended for use outside of the ESLint ecosystem. It is ESLint-specific and not intended for use in other programs.

Note: This package is frozen except for critical bug fixes as ESLint moves to a new config system.

Installation

You can install the package as follows:

npm install @eslint/eslintrc -D
# or
yarn add @eslint/eslintrc -D
# or
pnpm install @eslint/eslintrc -D
# or
bun install @eslint/eslintrc -D

Usage (ESM)

The primary class in this package is FlatCompat, which is a utility to translate ESLintRC-style configs into flat configs. Here's how you use it inside of your eslint.config.js file:

import { FlatCompat } from "@eslint/eslintrc";
import js from "@eslint/js";
import path from "path";
import { fileURLToPath } from "url";

// mimic CommonJS variables -- not needed if using CommonJS
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

const compat = new FlatCompat({
    baseDirectory: __dirname,                  // optional; default: process.cwd()
    resolvePluginsRelativeTo: __dirname,       // optional
    recommendedConfig: js.configs.recommended, // optional unless you're using "eslint:recommended"
    allConfig: js.configs.all,                 // optional unless you're using "eslint:all"
});

export default [

    // mimic ESLintRC-style extends
    ...compat.extends("standard", "example", "plugin:react/recommended"),

    // mimic environments
    ...compat.env({
        es2020: true,
        node: true
    }),

    // mimic plugins
    ...compat.plugins("jsx-a11y", "react"),

    // translate an entire config
    ...compat.config({
        plugins: ["jsx-a11y", "react"],
        extends: "standard",
        env: {
            es2020: true,
            node: true
        },
        rules: {
            semi: "error"
        }
    })
];

Usage (CommonJS)

Using FlatCompat in CommonJS files is similar to ESM, but you'll use require() and module.exports instead of import and export. Here's how you use it inside of your eslint.config.js CommonJS file:

const { FlatCompat } = require("@eslint/eslintrc");
const js = require("@eslint/js");

const compat = new FlatCompat({
    baseDirectory: __dirname,                  // optional; default: process.cwd()
    resolvePluginsRelativeTo: __dirname,       // optional
    recommendedConfig: js.configs.recommended, // optional unless using "eslint:recommended"
    allConfig: js.configs.all,                 // optional unless using "eslint:all"
});

module.exports = [

    // mimic ESLintRC-style extends
    ...compat.extends("standard", "example", "plugin:react/recommended"),

    // mimic environments
    ...compat.env({
        es2020: true,
        node: true
    }),

    // mimic plugins
    ...compat.plugins("jsx-a11y", "react"),

    // translate an entire config
    ...compat.config({
        plugins: ["jsx-a11y", "react"],
        extends: "standard",
        env: {
            es2020: true,
            node: true
        },
        rules: {
            semi: "error"
        }
    })
];

Troubleshooting

TypeError: Missing parameter 'recommendedConfig' in FlatCompat constructor

The recommendedConfig option is required when any config uses eslint:recommended, including any config in an extends clause. To fix this, follow the example above using @eslint/js to provide the eslint:recommended config.

TypeError: Missing parameter 'allConfig' in FlatCompat constructor

The allConfig option is required when any config uses eslint:all, including any config in an extends clause. To fix this, follow the example above using @eslint/js to provide the eslint:all config.

License

MIT License

Core symbols most depended-on inside this repo

getConfig
called by 105
tests/lib/cascading-config-array-factory.js
getFakeFixturePath
called by 84
tests/lib/cascading-config-array-factory.js
assertConfigsEqual
called by 66
tests/lib/cascading-config-array-factory.js
create
called by 62
lib/config-array-factory.js
assertConfigArrayElement
called by 62
tests/lib/config-array-factory.js
get
called by 58
lib/config-array/config-array.js
createCustomTeardown
called by 56
tests/_utils/index.js
create
called by 55
tests/lib/config-array-factory.js

Shape

Function 116
Method 74
Class 28

Languages

TypeScript100%

Modules by API surface

lib/config-array-factory.js35 symbols
lib/config-array/config-array.js25 symbols
lib/shared/config-validator.js15 symbols
lib/cascading-config-array-factory.js15 symbols
tests/lib/cascading-config-array-factory.js13 symbols
lib/config-array/override-tester.js11 symbols
tests/lib/config-array-factory.js10 symbols
lib/flat-compat.js10 symbols
lib/config-array/ignore-pattern.js10 symbols
lib/shared/config-ops.js6 symbols
tests/fixtures/rules/indent/indent-valid-fixture-1.js5 symbols
tests/fixtures/rules/indent/indent-invalid-fixture-1.js5 symbols

For agents

$ claude mcp add eslintrc \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page