mirror of
https://github.com/robonen/tools.git
synced 2026-03-20 02:44:45 +00:00
55 lines
1.4 KiB
Markdown
55 lines
1.4 KiB
Markdown
# @robonen/oxlint
|
|
|
|
Composable [oxlint](https://oxc.rs/docs/guide/usage/linter.html) configuration presets.
|
|
|
|
## Install
|
|
|
|
```bash
|
|
pnpm install -D @robonen/oxlint oxlint
|
|
```
|
|
|
|
## Usage
|
|
|
|
Create `oxlint.config.ts` in your project root:
|
|
|
|
```ts
|
|
import { defineConfig } from 'oxlint';
|
|
import { compose, base, typescript, vue, vitest, imports } from '@robonen/oxlint';
|
|
|
|
export default defineConfig(
|
|
compose(base, typescript, vue, vitest, imports),
|
|
);
|
|
```
|
|
|
|
Append custom rules after presets to override them:
|
|
|
|
```ts
|
|
compose(base, typescript, {
|
|
rules: { 'eslint/no-console': 'off' },
|
|
ignorePatterns: ['dist'],
|
|
});
|
|
```
|
|
|
|
## Presets
|
|
|
|
| Preset | Description |
|
|
| ------------ | -------------------------------------------------- |
|
|
| `base` | Core eslint, oxc, unicorn rules |
|
|
| `typescript` | TypeScript-specific rules (via overrides) |
|
|
| `vue` | Vue 3 Composition API / `<script setup>` rules |
|
|
| `vitest` | Test file rules (via overrides) |
|
|
| `imports` | Import rules (cycles, duplicates, ordering) |
|
|
| `node` | Node.js-specific rules |
|
|
|
|
## API
|
|
|
|
### `compose(...configs: OxlintConfig[]): OxlintConfig`
|
|
|
|
Merges multiple configs into one:
|
|
|
|
- **plugins** — union (deduplicated)
|
|
- **rules / categories** — last wins
|
|
- **overrides / ignorePatterns** — concatenated
|
|
- **env / globals** — shallow merge
|
|
- **settings** — deep merge
|