A comprehensive ESLint configuration for TypeScript projects, currently at v4.2.37. Released under MIT license, it provides a curated set of linting rules from ESLint, typescript-eslint, unicorn, jsdoc, vitest, security, react, testing-library, and stylistic plugin. It also offers an experimental oxlint mirror (~95% rule coverage) and an Agent Skill for AI assistants. Designed for ESLint flat config (v9+), requires Node >=22.13.0 and TypeScript >=5.5.0. Differentiator: opinionated yet configurable, with first-class oxlint support and an AI skill for enforcing standards.
npm install eslint-config-decentVerified import paths — ran on the pinned version, not inferred.
Minimal setup using ESM flat config. Imports the config function and passes tsconfigRootDir for type-aware linting.
Migrate to eslint.config.js/.mjs flat config format. See https://eslint.org/docs/latest/use/configure/migration-guide
Upgrade Node.js to >=22.13.0 (LTS). Use process.cwd() or __dirname workaround if on older Node, but not officially supported.
Always provide tsconfigRootDir (e.g., import.meta.dirname). For complex monorepos, set it to the root of each tsconfig.
No action needed; will be restored when oxlint implements it natively. You can manually enable via overrides if needed.
Run `npm install -D eslint-config-decent` (or yarn/pnpm equivalent). Ensure eslint.config.mjs is in the project root.
Use `import { config } from 'eslint-config-decent'` (named import). Do NOT use `require('eslint-config-decent')`.Ensure tsconfig.json sets module to 'es2022' or 'node16', and Node.js version >=22.13.0.