CodeVetter · Repo Unpack · System map
eslint/eslint
The npm package provides both an executable and reusable analysis classes. CLI orchestration, asynchronous file/configuration work, synchronous verification, and JavaScript language support have distinct owners. Persistence consists of local cache and suppression files rather than an application database. Browser packaging and documentation builds are separate from the Node.js runtime.
- package.json publishes eslint 10.11.0 as CommonJS, maps the executable to bin/eslint.js, and exposes lib/api.js with TypeScript declarations.
- lib/api.js exports ESLint, Linter, RuleTester, SourceCode, and async loadESLint(), which returns the ESLint constructor.
- bin/eslint.js bootstraps execution and sets process.exitCode; cli.execute() interprets arguments and returns status without directly exiting.
- ESLint constructs a Linter, result cache, optional suppression service, and ConfigLoader; architecture documentation reserves asynchronous file operations for the file-oriented layer.
- Flat configuration imports are handled by ConfigLoader, while Config resolves plugin languages/processors and validates language options and rules.
- Local persistence uses file-entry-cache through LintResultCache and a JSON suppression file through SuppressionsService.
- webpack.config.js packages Linter as a UMD library with Babel and Node polyfills; docs/package.json separately builds Sass, PostCSS, Eleventy pages, and optimized images.
- Repository scripts route lint/test/release tasks through Makefile.js; eslint-config-eslint separately exports base, cjs, and formatting configurations, and version-data changes trigger a Netlify rebuild workflow.