UNPKG

@truenine/eslint9-config

Version:

ESLint 9 configuration package for Compose Client projects with TypeScript, Vue, and modern JavaScript support

145 lines (110 loc) โ€ข 3.42 kB
# @truenine/eslint9-config ESLint 9 configuration package for Compose Client projects with TypeScript, Vue, and modern JavaScript support. ## Features - ๐Ÿš€ **ESLint 9** - Latest ESLint version with flat config - ๐ŸŽฏ **TypeScript** - Full TypeScript support with strict rules - ๐Ÿ–– **Vue 3** - Vue.js 3 specific linting rules - ๐ŸŽจ **Stylistic** - Code formatting and style consistency - ๐Ÿงช **Testing** - Vitest and testing library support - ๐ŸŽญ **UnoCSS** - Atomic CSS framework integration - โšก **Performance** - Optimized for fast linting ## Installation ```bash # Using pnpm (recommended) pnpm add -D @truenine/eslint9-config # Using npm npm install --save-dev @truenine/eslint9-config # Using yarn yarn add -D @truenine/eslint9-config ``` ## Usage Create an `eslint.config.mjs` file in your project root: ```javascript import eslint9 from '@truenine/eslint9-config' export default eslint9({ // Configuration options // type: 'lib' for libraries, 'app' for applications type: 'lib', vue: true, typescript: true, test: true, unocss: false, stylistic: true, formatters: false }) ``` ### Configuration Options | Option | Type | Default | Description | |--------|------|---------|-------------| | `type` | `'app' \| 'lib'` | `'lib'` | Project type | | `vue` | `boolean \| VueConfig` | `false` | Enable Vue.js support | | `typescript` | `boolean \| TsConfig` | `true` | Enable TypeScript support | | `test` | `boolean \| TestConfig` | `true` | Enable testing support | | `unocss` | `boolean \| UnocssConfig` | `false` | Enable UnoCSS support | | `stylistic` | `boolean \| StylisticConfig` | `true` | Enable stylistic rules | | `formatters` | `boolean \| FormatterConfig` | `false` | Enable formatters | | `jsx` | `boolean` | `false` | Enable JSX support | | `pnpm` | `boolean` | `false` | Enable pnpm-specific rules | | `ignores` | `string[]` | `[]` | Additional ignore patterns | ### Examples #### Basic Library Configuration ```javascript import eslint9 from '@truenine/eslint9-config' export default eslint9({ type: 'lib', typescript: true, test: true }) ``` #### Vue Application Configuration ```javascript import eslint9 from '@truenine/eslint9-config' export default eslint9({ type: 'app', vue: true, typescript: true, unocss: true, formatters: true }) ``` #### Strict TypeScript Configuration ```javascript import eslint9 from '@truenine/eslint9-config' export default eslint9({ typescript: { strictTypescriptEslint: true, tsconfigPath: './tsconfig.json' } }) ``` ## Package Scripts Add these scripts to your `package.json`: ```json { "scripts": { "lint": "eslint .", "lint:fix": "eslint . --fix" } } ``` ## IDE Integration ### VS Code Install the [ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) and add to your `.vscode/settings.json`: ```json { "eslint.experimental.useFlatConfig": true, "eslint.validate": [ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue" ] } ``` ## Contributing Contributions are welcome! Please read our [contributing guidelines](../../README.md) for details. ## Support - ๐Ÿ› [Report Issues](https://github.com/TrueNine/compose-client/issues) - ๐Ÿ’ฌ [Discussions](https://github.com/TrueNine/compose-client/discussions) - ๐Ÿ“– [Documentation](https://github.com/TrueNine/compose-client#readme)