eslint-config-setup 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +80 -0
  2. package/package.json +1 -1
package/README.md ADDED
@@ -0,0 +1,80 @@
1
+ # ESLint Config Setup
2
+
3
+ [![CI](https://github.com/sebastian-software/eslint-config-setup/actions/workflows/ci.yml/badge.svg)](https://github.com/sebastian-software/eslint-config-setup/actions/workflows/ci.yml)
4
+ [![npm version](https://img.shields.io/npm/v/eslint-config-setup.svg)](https://www.npmjs.com/package/eslint-config-setup)
5
+ [![npm downloads](https://img.shields.io/npm/dm/eslint-config-setup.svg)](https://www.npmjs.com/package/eslint-config-setup)
6
+ [![Codecov](https://img.shields.io/codecov/c/github/sebastian-software/eslint-config-setup)](https://codecov.io/gh/sebastian-software/eslint-config-setup)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+ [![Node.js](https://img.shields.io/node/v/eslint-config-setup.svg)](https://nodejs.org)
9
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org)
10
+ [![ESLint](https://img.shields.io/badge/ESLint-9.22+-4B32C3.svg)](https://eslint.org)
11
+
12
+ The ESLint config for teams that ship with AI and want to move fast.
13
+
14
+ Most ESLint configs compose rules at runtime from dozens of plugins. That means version conflicts, plugin mismatches, and "works on my machine" differences. **ESLint Config Setup** resolves every rule at build time — you get a flat, pre-built config where every rule is already decided. No runtime composition, no surprises.
15
+
16
+ - **AI guardrails** — a dedicated `ai` mode that enforces what code review can't: explicit types, strict naming, no magic values, complexity limits. Rules that humans find tedious are trivial for an AI to follow. The AI doesn't push back. It just fixes the code.
17
+ - **OxLint-ready** — a single `oxlint` flag disables every ESLint rule that OxLint already covers, and `getOxlintConfig()` generates a matching OxLint config. No manual migration, no rule conflicts, no coverage gaps. Run both linters, get the full rule set at 100x the speed.
18
+ - **27 plugins, one import** — TypeScript (`strictTypeChecked`), React 19, import cycles, security, browser compat, spell checking, and more. Every rule pre-resolved at build time. No plugin conflicts, no version mismatches.
19
+
20
+ ```typescript
21
+ // eslint.config.ts
22
+ import { getEslintConfig } from "eslint-config-setup"
23
+
24
+ export default await getEslintConfig({ react: true, ai: true })
25
+ ```
26
+
27
+ ## Quick Start
28
+
29
+ ```bash
30
+ npm install -D eslint-config-setup eslint typescript
31
+ ```
32
+
33
+ ```typescript
34
+ // eslint.config.ts
35
+ import { getEslintConfig } from "eslint-config-setup"
36
+
37
+ export default await getEslintConfig({ react: true })
38
+ ```
39
+
40
+ ## Configuration flags
41
+
42
+ | Flag | Default | What it does |
43
+ |------|---------|--------------|
44
+ | `react` | `false` | React 19+ with Hooks, Compiler, JSX-A11y, Storybook, Testing Library |
45
+ | `node` | `false` | Node.js globals, `eslint-plugin-n`. Disables browser compat checks. |
46
+ | `ai` | `false` | Strict guardrails for AI-generated code (naming, types, complexity) |
47
+ | `oxlint` | `false` | Disables ESLint rules already covered by OxLint |
48
+
49
+ Flags are independent. Combine them however you need.
50
+
51
+ ## Customizing rules
52
+
53
+ ```typescript
54
+ import { getEslintConfig, disableRule, addRule } from "eslint-config-setup"
55
+
56
+ const config = await getEslintConfig({ react: true, ai: true })
57
+
58
+ disableRule(config, "@typescript-eslint/no-magic-numbers", { scope: "tests" })
59
+ addRule(config, "no-console", "off", { scope: "scripts" })
60
+
61
+ export default config
62
+ ```
63
+
64
+ ## Documentation
65
+
66
+ - [Getting Started](https://sebastian-software.github.io/eslint-config-setup/guide/getting-started) — installation and setup
67
+ - [AI Mode](https://sebastian-software.github.io/eslint-config-setup/guide/ai-mode) — why AI-generated code needs different rules
68
+ - [OxLint Integration](https://sebastian-software.github.io/eslint-config-setup/guide/oxlint) — run ESLint + OxLint without conflicts
69
+ - [All 27 Plugins](https://sebastian-software.github.io/eslint-config-setup/guide/plugins) — what's included and why
70
+ - [Configuration](https://sebastian-software.github.io/eslint-config-setup/guide/configuration) — flags and usage examples
71
+ - [Rule API](https://sebastian-software.github.io/eslint-config-setup/guide/rule-api) — rule manipulation and scoped overrides
72
+ - [Architecture](https://sebastian-software.github.io/eslint-config-setup/guide/architecture) — how pre-generation works
73
+
74
+ ## Contributing
75
+
76
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, architecture overview, and PR guidelines.
77
+
78
+ ## License
79
+
80
+ [MIT](LICENSE) — Copyright (c) 2025 [Sebastian Software GmbH](https://sebastian-software.com)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-config-setup",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Pre-generated, permutation-based ESLint flat configs for modern TypeScript & React projects",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",