Public Wiki26,872View on GitHub
Want eslint/eslint knowledge in your AI?

TypeScript

This is the ESLint monorepo — the canonical JavaScript/TypeScript static analysis tool that finds and fixes problems in code. It contains the core linting engine, ~290 built-in lint rules, the flat config system, the CLI, the public Node.js API, the `@eslint/js` package, the documentation site (built with 11ty), and comprehensive test suites covering every rule and subsystem.

Tech Stack

TypeScriptReact

Key Features

  • Core Linting Engine
  • Code Path Analysis
  • ~290 Built-in Rules
  • Flat Config System
  • CLI & Public API
  • JavaScript Language Plugin
  • Result Caching
  • Rule Tester
  • Directive Comment Suppression
  • Fuzz Testing
  • Documentation Site with Algolia Search

Coding Conventions

Standards and patterns used in this codebase

file-organization

Monorepo structure: apps/ contains deployable applications, packages/ contains shared libraries

Packages: packages/eslint-config-eslint
packages/eslint-config-eslint
module-structure

Business logic is organized in services/ directory

New services go in lib/services/
lib/services/parser-service.jslib/services/suppressions-service.js
naming

File naming uses: kebab-case, PascalCase (for components/classes)

Makefile.js, cypress.config.js, eslint.config.js, webpack.config.js, ecma-version.js
Makefile.jscypress.config.jseslint.config.js
configuration

Configuration is centralized in config files

Config files: cypress.config.js, eslint.config.js
cypress.config.jseslint.config.jswebpack.config.js
data-layer

Database operations are in data layer

Data files: lib/config/flat-config-schema.js
lib/config/flat-config-schema.js
module-exports

Use index.ts barrel files to export module public API

Each module has index.ts that re-exports public functions
packages/eslint-config-eslint/index.jstests/_utils/index.jstools/internal-rules/index.js
typescript

Types are defined in dedicated type files

Type files: lib/types/index.d.ts, lib/types/rules.d.ts
lib/types/index.d.tslib/types/rules.d.ts