@sylphlab/eslint-config-sylph
Version:
Strict, AI-optimized ESLint Flat Config for modern TypeScript projects (v9+, TS, Unicorn, Functional, Security, Sonar, Import, Promise, Regexp, Prettier). Core of all SylphLab TypeScript projects.
99 lines (74 loc) • 2.46 kB
Markdown
# @sylphlab/eslint-config-sylph
> **Strict, AI-optimized ESLint Flat Config for modern TypeScript.**
> Extreme code quality, maintainability, and developer/AI efficiency.
> Core of all SylphLab TypeScript projects.
## Philosophy
- **Strictest possible:** All critical rules are errors. No compromise.
- **Modern Flat Config:** ESLint v9+, TypeScript 5+, ESM, Prettier 3+.
- **AI & developer optimized:** Explicit typing, clear naming, strict structure, Prettier formatting.
- **Functional & secure:** Immutability, no-throw, security, bug detection, complexity limits.
- **Performance:** Static analysis, code splitting, low complexity, short functions/files.
## Included Plugins
- `@eslint/js` (recommended)
- `@typescript-eslint/eslint-plugin` (strict, stylistic)
- `eslint-plugin-unicorn`
- `eslint-plugin-functional`
- `eslint-plugin-security`
- `eslint-plugin-sonarjs`
- `eslint-plugin-promise`
- `eslint-plugin-regexp`
- `eslint-plugin-import-x`
- `eslint-config-prettier`, `eslint-plugin-prettier`
- `globals`
## Install
```bash
pnpm add -D @sylphlab/eslint-config-sylph eslint@^9 typescript@^5 prettier@^3
npx install-peerdeps --dev @sylphlab/eslint-config-sylph -p pnpm
```
## Usage
Create `eslint.config.ts`:
```typescript
import sylphConfig from '@sylphlab/eslint-config-sylph';
export default [
...sylphConfig,
// project-specific overrides
];
```
## Key Features
- **Flat Config, ESM, type-safe**
- **Strictest rules:**
- No `any`, no unused, explicit return types, strict type imports/exports
- Immutability, no-throw, no-mutable-exports, strict import order
- Complexity, max-lines, max-lines-per-function, max-depth, max-params
- Security, bug detection, promise handling, regex safety
- **Functional programming:**
- Immutability, pure functions, no-throw, no-mixed-types
- **Prettier enforced:**
- All formatting handled by Prettier, no conflicts
- **AI/Developer ergonomics:**
- Explicit, predictable, easy for AI to refactor/extend
## Example: Override
```typescript
export default [
...sylphConfig,
{
files: ['src/**/*.ts'],
rules: {
'no-console': 'off',
'unicorn/prevent-abbreviations': ['error', { replacements: { props: false, ref: false } }],
},
},
{
ignores: ['dist/', 'build/', 'coverage/', 'my-custom-ignored-folder/'],
},
];
```
## See Also
- [Monorepo README](../../README.md) for full philosophy, structure, and all configs.