@the-ihor/adi-eslint-config-typescript
Version:
ADI ESLint configuration for TypeScript projects
124 lines (98 loc) • 2.81 kB
Markdown
# @the-ihor/adi-eslint-config-typescript
ADI ESLint configuration for TypeScript projects using the new flat config format.
## Installation
```bash
npm install @the-ihor/adi-eslint-config-typescript
# or
bun add @the-ihor/adi-eslint-config-typescript
```
## Usage
### Basic Usage
```typescript
// eslint.config.ts
import adi from "@the-ihor/adi-eslint-config-typescript";
export default adi();
```
### With Custom Options
```typescript
// eslint.config.ts
import adi from "@the-ihor/adi-eslint-config-typescript";
export default adi({
strictMode: true,
files: ["**/*.{js,ts}"],
testFiles: ["**/*.test.ts", "**/*.spec.ts"],
ignores: ["dist/**", "build/**"],
});
```
### Extending the Configuration
You can extend the ADI config with additional rules or configurations:
```typescript
// eslint.config.ts
import adi from "@the-ihor/adi-eslint-config-typescript";
export default [
...adi({
strictMode: false,
ignores: ["dist/**", "build/**"],
}),
// Add additional configurations
{
files: ["**/*.ts"],
rules: {
// Override or add custom rules
"no-console": "error",
"@typescript-eslint/explicit-function-return-type": "warn",
},
},
{
files: ["**/*.test.ts"],
rules: {
// Test-specific rules
"no-console": "off",
},
},
];
```
### Framework-Specific Extensions
```typescript
// For React projects
import adi from "@the-ihor/adi-eslint-config-typescript";
import reactPlugin from "eslint-plugin-react";
export default [
...adi(),
{
files: ["**/*.{ts,tsx}"],
plugins: {
react: reactPlugin,
},
rules: {
"react/jsx-uses-react": "error",
"react/jsx-uses-vars": "error",
},
},
];
```
## Configuration Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `files` | `string[]` | `["**/*.{js,mjs,cjs,ts,mts,cts}"]` | File patterns to lint |
| `ignores` | `string[]` | `["dist/**", "build/**", ...]` | File patterns to ignore |
| `strictMode` | `boolean` | `false` | Enable strict TypeScript rules (makes `@typescript-eslint/no-explicit-any` an error) |
| `testFiles` | `string[]` | `["**/*.test.{ts,tsx,js,jsx}", "**/*.spec.{ts,tsx,js,jsx}"]` | Test file patterns with relaxed rules |
## Included Rules
- **JavaScript**: ESLint recommended rules
- **TypeScript**: TypeScript ESLint recommended rules
- **Code Style**: Consistent formatting (comma-dangle, object-curly-spacing, etc.)
- **Best Practices**: Modern JavaScript practices (prefer-const, no-var, eqeqeq)
- **TypeScript Specific**: Unused variable detection, namespace handling
## Peer Dependencies
Make sure you have these installed:
```json
{
"@eslint/js": "^9.0.0",
"eslint": "^9.0.0",
"typescript-eslint": "^8.0.0",
"globals": "^16.0.0"
}
```
## License
MIT