eslint-config-decent
Version:
A decent ESLint configuration
145 lines (101 loc) • 3.34 kB
Markdown
# eslint-config-decent
[](https://npmjs.org/package/eslint-config-decent)
A decent ESLint configuration for TypeScript projects.
## Example usage
```mjs
// eslint.config.mjs
import { config } from 'eslint-config-decent';
export default config({
tsconfigRootDir: import.meta.dirname,
});
```
## Override parserOptions
```mjs
// eslint.config.mjs
import { config } from 'eslint-config-decent';
export default config({
parserOptions: {
projectService: {
defaultProject: 'tsconfig.json',
},
tsconfigRootDir: import.meta.dirname,
},
});
```
## Disable require-extensions rules
```mjs
// eslint.config.mjs
import { config } from 'eslint-config-decent';
export default config({
enableRequireExtensions: false,
tsconfigRootDir: import.meta.dirname,
});
```
## Override a rule
```mjs
// eslint.config.mjs
import { config } from 'eslint-config-decent';
export default [
...config({
tsconfigRootDir: import.meta.dirname,
}),
{
files: ['**/*.ts'],
rules: {
'@typescript-eslint/no-confusing-void-expression': 'off',
},
},
];
```
## Oxlint
Mirrors the ESLint rules from this package for [oxlint](https://oxc.rs/docs/guide/usage/linter.html).
Uses native oxlint plugins where available, `-compat` JS plugins for gap rules,
and standalone JS plugins for the rest (~95% coverage).
### Setup
```bash
npm install -D oxlint oxlint-tsgolint
```
```ts
// oxlint.config.ts
import { defineConfig } from 'oxlint';
import { oxlintConfig } from 'eslint-config-decent/oxlint';
export default defineConfig({
extends: [
oxlintConfig({
enableNextJs: true,
nextJsRootDir: '.',
}),
],
});
```
Requires oxlint >= 1.43.0 for TypeScript config support.
### Type-aware linting
The config enables `options.typeAware` for use with
[oxlint-tsgolint](https://github.com/nicolo-ribaudo/oxlint-tsgolint),
which provides type-aware rules powered by TypeScript's Go port.
```bash
npx oxlint-tsgolint
```
## Agent Skill for AI-Assisted Development
This package includes an Agent Skill that teaches AI coding assistants (Claude Code, OpenCode, etc.) to follow the same TypeScript standards enforced by the ESLint rules.
### Installation
```bash
npx skills add jgeurts/eslint-config-decent
```
Or copy manually:
```bash
mkdir -p .claude/skills
cp -r node_modules/eslint-config-decent/enforcing-typescript-standards .claude/skills/
```
> **Note**: The skill is copied to your project and won't update automatically. Re-run the install command after updating `eslint-config-decent` to get the latest skill instructions.
### Usage
Once installed, AI assistants will automatically apply the project's TypeScript standards when creating or modifying `.ts` and `.tsx` files. The skill instructs the AI to:
- Write code with explicit return types and member accessibility
- Organize imports correctly (order, extensions, type-only imports)
- Follow class member ordering conventions
- Avoid anti-patterns like useless comments, nested ternaries, and `await` in loops
- Run `npm run lint:code` to verify compliance before completing tasks
### Customizing the Skill
To override or extend the default instructions, edit the `SKILL.md` file in your project's skills directory:
## License
MIT