diff --git a/configs/eslint/README.md b/configs/eslint/README.md new file mode 100644 index 0000000..3791415 --- /dev/null +++ b/configs/eslint/README.md @@ -0,0 +1,74 @@ +# @robonen/eslint + +Composable [ESLint](https://eslint.org) flat-config presets. + +## Install + +```bash +pnpm install -D @robonen/eslint eslint jiti +``` + +> `jiti` lets ESLint load a TypeScript `eslint.config.ts`. + +## Usage + +Create `eslint.config.ts` in your project root: + +```ts +import { compose, base, typescript, vue, vitest, imports } from '@robonen/eslint'; + +export default compose(base, typescript, vue, vitest, imports); +``` + +Append custom config objects after presets to override them: + +```ts +import { compose, base, typescript } from '@robonen/eslint'; + +export default compose(base, typescript, { + rules: { 'no-console': 'off' }, +}, { + files: ['**/*.vue'], + rules: { '@stylistic/no-multiple-empty-lines': 'off' }, +}); +``` + +## Presets + +| Preset | Plugin(s) | Description | +| ------------ | -------------------------------------- | ---------------------------------------------- | +| `base` | `@eslint/js`, `eslint-plugin-unicorn` | Core eslint + unicorn rules, global ignores | +| `typescript` | `typescript-eslint` | TypeScript rules (`**/*.ts`, `**/*.vue`) | +| `vue` | `eslint-plugin-vue` | Vue 3 Composition API / `