Skip to content

Commit 7fe8e86

Browse files
committed
fix: fixed invalid rules for 'disable-debug', 'disable-dom', and 'disable-web-apis' configs, closes #923
1 parent 3a81b53 commit 7fe8e86

File tree

27 files changed

+29
-125
lines changed

27 files changed

+29
-125
lines changed

eslint.config.ts

-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import eslintPluginJsdoc from "eslint-plugin-jsdoc";
99
import eslintPluginLocal from "@workspace/eslint-plugin-local";
1010
import eslintPluginPerfectionist from "eslint-plugin-perfectionist";
1111
import eslintPluginRegexp from "eslint-plugin-regexp";
12-
import eslintPluginSafeTypeScript from "@susisu/eslint-plugin-safe-typescript";
1312
import eslintPluginSimpleImportSort from "eslint-plugin-simple-import-sort";
1413
import eslintPluginUnicorn from "eslint-plugin-unicorn";
1514
import eslintPluginVitest from "eslint-plugin-vitest";
@@ -68,9 +67,6 @@ const enableTypeCheckedRules = {
6867
...tseslint.configs.strictTypeCheckedOnly
6968
.map((x) => x.rules)
7069
.reduce((a, b) => ({ ...a, ...b }), {}),
71-
...eslintPluginSafeTypeScript.configs.recommended.rules,
72-
"@susisu/safe-typescript/no-unsafe-object-property-check": "off",
73-
"@susisu/safe-typescript/no-unsafe-object-property-overwrite": "off",
7470
"@typescript-eslint/consistent-type-exports": "error",
7571
"@typescript-eslint/strict-boolean-expressions": ["error", {
7672
allowAny: false,
@@ -133,7 +129,6 @@ export default tseslint.config(
133129
},
134130
plugins: {
135131
["@stylistic"]: eslintStylistic,
136-
["@susisu/safe-typescript"]: eslintPluginSafeTypeScript,
137132
["local"]: eslintPluginLocal,
138133
["simple-import-sort"]: eslintPluginSimpleImportSort,
139134
["unicorn"]: eslintPluginUnicorn,

package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eslint-react/monorepo",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"private": true,
55
"description": "Monorepo for eslint-plugin-react-[x, dom, web-api, hooks-extra, naming-convention].",
66
"keywords": [
@@ -56,7 +56,6 @@
5656
"@eslint/markdown": "^6.2.1",
5757
"@napi-rs/canvas": "^0.1.65",
5858
"@stylistic/eslint-plugin": "^2.13.0",
59-
"@susisu/eslint-plugin-safe-typescript": "^0.9.2",
6059
"@swc/core": "^1.10.9",
6160
"@tsconfig/node22": "^22.0.0",
6261
"@tsconfig/strictest": "^2.0.5",

packages/core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eslint-react/core",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "ESLint React's ESLint utility module for static analysis of React core APIs and Patterns.",
55
"homepage": "https://github.com/Rel1cx/eslint-react",
66
"bugs": {

packages/plugins/eslint-plugin-react-debug/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-plugin-react-debug",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "ESLint React's ESLint plugin for debugging related rules.",
55
"keywords": [
66
"react",

packages/plugins/eslint-plugin-react-dom/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-plugin-react-dom",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "ESLint React's ESLint plugin for React DOM related rules.",
55
"keywords": [
66
"react",

packages/plugins/eslint-plugin-react-hooks-extra/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-plugin-react-hooks-extra",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "ESLint React's ESLint plugin for React Hooks related rules.",
55
"keywords": [
66
"react",

packages/plugins/eslint-plugin-react-naming-convention/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-plugin-react-naming-convention",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "ESLint React's ESLint plugin for naming convention related rules.",
55
"keywords": [
66
"react",

packages/plugins/eslint-plugin-react-web-api/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-plugin-react-web-api",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "ESLint React's ESLint plugin for interacting with Web APIs",
55
"keywords": [
66
"react",

packages/plugins/eslint-plugin-react-x/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-plugin-react-x",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "A set of composable ESLint rules for libraries and frameworks that use React as a UI runtime.",
55
"keywords": [
66
"react",

packages/plugins/eslint-plugin/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eslint-react/eslint-plugin",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "A set of composable ESLint rules for libraries and frameworks that use React as a UI runtime.",
55
"keywords": [
66
"react",
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { entries, fromEntries } from "../utils";
1+
import type { RulePreset } from "@eslint-react/shared";
2+
23
import { rules as debugRules } from "./debug";
34

45
export const name = "@eslint-react/disable-debug";
56

6-
export const rules = fromEntries(entries(debugRules).map(([key]) => [key, "off"] as const));
7+
export const rules: RulePreset = Object.fromEntries(Object.entries(debugRules).map(([rule]) => [rule, "off"]));
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { entries, fromEntries } from "../utils";
1+
import type { RulePreset } from "@eslint-react/shared";
2+
23
import { rules as domRules } from "./dom";
34

45
export const name = "@eslint-react/disable-dom";
56

6-
export const rules = fromEntries(entries(domRules).map(([key]) => [key, "off"] as const));
7+
export const rules: RulePreset = Object.fromEntries(Object.entries(domRules).map(([key]) => [key, "off"] as const));

packages/plugins/eslint-plugin/src/configs/disable-type-checked.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { RulePreset } from "@eslint-react/shared";
22

33
export const name = "@eslint-react/disable-type-checked";
44

5-
export const rules = {
5+
export const rules: RulePreset = {
66
"@eslint-react/no-leaked-conditional-rendering": "off",
77
"@eslint-react/prefer-read-only-props": "off",
8-
} as const satisfies RulePreset;
8+
};
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { entries, fromEntries } from "../utils";
1+
import type { RulePreset } from "@eslint-react/shared";
2+
23
import { rules as webApiRules } from "./web-api";
34

45
export const name = "@eslint-react/disable-web-api";
56

6-
export const rules = fromEntries(entries(webApiRules).map(([key]) => [key, "off"] as const));
7+
export const rules: RulePreset = Object.fromEntries(Object.entries(webApiRules).map(([key]) => [key, "off"] as const));
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import { entries, fromEntries } from "../utils";
1+
import type { RulePreset } from "@eslint-react/shared";
2+
23
import { rules as allRules } from "./all";
34
import { rules as disableTypeCheckedRules } from "./disable-type-checked";
45

56
export const name = "@eslint-react/off";
67

7-
export const rules = {
8-
...fromEntries(entries(allRules).map(([key]) => [key, "off"] as const)),
8+
export const rules: RulePreset = {
9+
...Object.fromEntries(Object.entries(allRules).map(([key]) => [key, "off"] as const)),
910
...disableTypeCheckedRules,
1011
};

packages/plugins/eslint-plugin/src/utils/entries.ts

-54
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
export * from "./entries";
21
export * from "./pad-keys-left";
32
export * from "./transform-keys";
43
export * from "./type-of";

packages/plugins/eslint-plugin/src/utils/pad-keys-left.ts

-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,5 @@ export function padKeysLeft<const A, const B extends string = "">(
77
obj: A,
88
left: B,
99
): PadKeysLeft<A, B> {
10-
// eslint-disable-next-line @susisu/safe-typescript/no-type-assertion
1110
return transformKeys(obj, (key) => `${left}${key}`) as never;
1211
}

packages/plugins/eslint-plugin/src/utils/transform-keys.ts

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* eslint-disable @susisu/safe-typescript/no-type-assertion */
21
// Copied from https://github.com/gustavoguichard/string-ts/blob/9dd444f03fdfa225f1643e6f1f8c18f9480224bb/src/utils/object-keys/transform-keys.ts#L12
32

43
import { typeOf } from "./type-of";

packages/plugins/eslint-plugin/src/utils/type-of.ts

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* eslint-disable @susisu/safe-typescript/no-type-assertion */
21
/**
32
* This is an enhanced version of the typeof operator to check the type of more complex values.
43
* In this case we just mind about arrays and objects. We can add more on demand.

packages/shared/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eslint-react/shared",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "ESLint React's Shared constants and functions.",
55
"homepage": "https://github.com/Rel1cx/eslint-react",
66
"bugs": {

packages/shared/src/settings.ts

-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ export interface ESLintReactSettingsNormalized {
4949
*/
5050
export function unsafeDecodeSettings(data: unknown): PartialDeep<ESLintReactSettings> {
5151
// @ts-expect-error - skip type checking for unsafe cast
52-
// eslint-disable-next-line @susisu/safe-typescript/no-type-assertion
5352
return (data?.["react-x"] ?? {}) as PartialDeep<ESLintReactSettings>;
5453
}
5554

packages/utilities/ast/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eslint-react/ast",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "ESLint React's TSESTree AST utility module.",
55
"homepage": "https://github.com/Rel1cx/eslint-react",
66
"bugs": {

packages/utilities/eff/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eslint-react/eff",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "JavaScript and TypeScript utilities (previously some re-exports of the effect library).",
55
"homepage": "https://github.com/Rel1cx/eslint-react",
66
"bugs": {

packages/utilities/jsx/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eslint-react/jsx",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "ESLint React's TSESTree AST utility module for static analysis of JSX.",
55
"homepage": "https://github.com/Rel1cx/eslint-react",
66
"bugs": {

packages/utilities/var/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eslint-react/var",
3-
"version": "1.24.1-next.0",
3+
"version": "1.24.1-beta.0",
44
"description": "ESLint React's TSESTree AST utility module for static analysis of variables",
55
"homepage": "https://github.com/Rel1cx/eslint-react",
66
"bugs": {

pnpm-lock.yaml

-35
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)