@isentinel/eslint-config 6.0.0-beta.7 → 6.0.0-beta.9

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.
package/README.md CHANGED
@@ -412,6 +412,37 @@ export default isentinel({
412
412
  });
413
413
  ```
414
414
 
415
+ #### Redundant Override Detection
416
+
417
+ Overrides that re-state what the preset already resolves to by default fail to
418
+ typecheck, so you learn immediately (in-editor, no lint run needed) when a
419
+ preset update makes one of your overrides redundant:
420
+
421
+ ```ts
422
+ export default isentinel({
423
+ rules: {
424
+ // Type error: 'no-alert' already defaults to this value in the preset;
425
+ // remove the override, or set `redundancyCheck: false` to disable this
426
+ // check
427
+ "no-alert": "error",
428
+ },
429
+ });
430
+ ```
431
+
432
+ The check understands severity aliases (`2` ≙ `"error"`), option tuples (flagged
433
+ only on an exact match), flat-config merge semantics (a bare severity keeps the
434
+ previous options, so it is redundant whenever the severity matches), and the
435
+ `type`/`roblox` variants — a rule that only defaults to `"error"` for
436
+ `type: "package"` is not flagged in a game config. It applies to the top-level
437
+ `rules`, every per-integration `overrides`, and un-scoped extra configs; both
438
+ the ESLint and oxlint factories are covered.
439
+
440
+ Compared defaults are the canonical (CI, non-editor) ones: editor/agent
441
+ downgrades, `defaultSeverity` promotion and oxlint hybrid rule-dropping are
442
+ intentionally ignored. `files`-scoped configs and composer `.override()` calls
443
+ are not checked. Opt out entirely with `redundancyCheck: false`, or per line
444
+ with `// @ts-expect-error`.
445
+
415
446
  ### Spell Checker
416
447
 
417
448
  This config includes the [CSpell](https://cspell.org/) plugin by default, which