@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
Markdown
# @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)