UNPKG

@the-ihor/adi-eslint-config-typescript

Version:
124 lines (98 loc) 2.81 kB
# @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