Skip to content

Commit e32f5d3

Browse files
authored
refactor: replace 'fast-equals' and 'micro-memoize' with builtins (#903)
1 parent 136b386 commit e32f5d3

File tree

28 files changed

+164
-165
lines changed

28 files changed

+164
-165
lines changed

examples/dual-react-dom-lib/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"@eslint/js": "^9.17.0",
3434
"@tsconfig/node22": "^22.0.0",
3535
"@tsconfig/strictest": "^2.0.5",
36-
"@types/node": "^22.10.4",
36+
"@types/node": "^22.10.5",
3737
"@types/react": "^19.0.2",
3838
"eslint": "^9.17.0",
3939
"eslint-plugin-react-hooks": "^5.1.0",

examples/next-app/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
},
1818
"devDependencies": {
1919
"@eslint-react/eslint-plugin": "^1.23.1",
20-
"@eslint/config-inspector": "^0.6.0",
20+
"@eslint/config-inspector": "^0.7.0",
2121
"@eslint/js": "^9.17.0",
2222
"@next/eslint-plugin-next": "^15.1.3",
2323
"@types/negotiator": "^0.6.3",
24-
"@types/node": "^22.10.4",
24+
"@types/node": "^22.10.5",
2525
"@types/react": "^19.0.2",
2626
"@types/react-dom": "^19.0.2",
2727
"autoprefixer": "10.4.20",

examples/vite-react-dom-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
},
1717
"devDependencies": {
1818
"@eslint-react/eslint-plugin": "^1.23.1",
19-
"@eslint/config-inspector": "^0.6.0",
19+
"@eslint/config-inspector": "^0.7.0",
2020
"@eslint/js": "^9.17.0",
2121
"@tsconfig/node22": "^22.0.0",
2222
"@tsconfig/strictest": "^2.0.5",

examples/vite-react-dom-js-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
},
1717
"devDependencies": {
1818
"@eslint-react/eslint-plugin": "^1.23.1",
19-
"@eslint/config-inspector": "^0.6.0",
19+
"@eslint/config-inspector": "^0.7.0",
2020
"@eslint/js": "^9.17.0",
2121
"@types/react": "^19.0.2",
2222
"@types/react-dom": "^19.0.2",

examples/vite-react-dom-js-with-babel-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"@babel/preset-env": "^7.26.0",
2121
"@babel/preset-react": "^7.26.3",
2222
"@eslint-react/eslint-plugin": "^1.23.1",
23-
"@eslint/config-inspector": "^0.6.0",
23+
"@eslint/config-inspector": "^0.7.0",
2424
"@eslint/js": "^9.17.0",
2525
"@types/babel__core": "~7.20.5",
2626
"@types/babel__preset-env": "~7.9.7",

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@
5656
"@effect/platform-bun": "^0.52.0",
5757
"@effect/platform-node": "^0.68.0",
5858
"@effect/schema": "^0.75.5",
59-
"@eslint/config-inspector": "^0.6.0",
59+
"@eslint/config-inspector": "^0.7.0",
6060
"@eslint/js": "^9.17.0",
6161
"@swc/core": "^1.10.4",
6262
"@tsconfig/node22": "^22.0.0",
6363
"@tsconfig/strictest": "^2.0.5",
64-
"@types/node": "^22.10.4",
64+
"@types/node": "^22.10.5",
6565
"@types/react": "^19.0.2",
6666
"@types/react-dom": "^19.0.2",
6767
"@typescript-eslint/parser": "^8.19.0",

packages/core/src/element/get-element-represent-name.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { F, isString, O } from "@eslint-react/eff";
22
import * as JSX from "@eslint-react/jsx";
3-
import { decodeSettings, normalizeSettings } from "@eslint-react/shared";
3+
import { getSettingsFromContext } from "@eslint-react/shared";
44
import type { RuleContext } from "@eslint-react/types";
55
import type { TSESTree } from "@typescript-eslint/types";
66

77
export function getElementRepresentName(node: TSESTree.JSXOpeningElement, context: RuleContext) {
88
const rawElementName = JSX.getElementName(node);
99
if (rawElementName === rawElementName.toLowerCase()) return rawElementName;
10-
const { components, polymorphicPropName } = normalizeSettings(decodeSettings(context.settings));
10+
const { components, polymorphicPropName } = getSettingsFromContext(context);
1111
const asElementName = components.get(rawElementName);
1212
if (isString(asElementName)) return asElementName;
1313
return F.pipe(

packages/plugins/eslint-plugin-react-debug/src/rules/is-from-react.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { isInitializedFromReact } from "@eslint-react/core";
22
import { F, O } from "@eslint-react/eff";
3-
import { decodeSettings } from "@eslint-react/shared";
3+
import { getSettingsFromContext } from "@eslint-react/shared";
44
import type { RuleFeature } from "@eslint-react/types";
55
import type { Scope } from "@typescript-eslint/scope-manager";
66
import type { TSESTree } from "@typescript-eslint/utils";
@@ -33,7 +33,7 @@ export default createRule<[], MessageID>({
3333
},
3434
name: RULE_NAME,
3535
create(context) {
36-
const settings = decodeSettings(context.settings);
36+
const settings = getSettingsFromContext(context);
3737
const finalSettings = {
3838
...settings,
3939
strictImportCheck: true,

packages/plugins/eslint-plugin-react-dom/src/rules/no-unknown-property.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// Ported from https://github.com/jsx-eslint/eslint-plugin-react/blob/master/lib/rules/no-unknown-property.js
55
// TODO: Port to TypeScript
66

7-
import { decodeSettings, normalizeSettings } from "@eslint-react/shared";
7+
import { getSettingsFromContext } from "@eslint-react/shared";
88
import { createRule } from "../utils";
99
import { compare, compareVersions } from "compare-versions";
1010
import type { RuleFeature } from "@eslint-react/types";
@@ -1203,6 +1203,6 @@ function report(context, message, messageId, data) {
12031203
}
12041204

12051205
function testReactVersion(context, comparator, version) {
1206-
const { version: localVersion } = normalizeSettings(decodeSettings(context.settings));
1206+
const { version: localVersion } = getSettingsFromContext(context);
12071207
return compare(localVersion, version, comparator);
12081208
}

packages/plugins/eslint-plugin-react-dom/src/rules/no-unsafe-target-blank.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { getElementRepresentName } from "@eslint-react/core";
22
import { F, isString, O } from "@eslint-react/eff";
33
import * as JSX from "@eslint-react/jsx";
4-
import { decodeSettings, normalizeSettings } from "@eslint-react/shared";
4+
import { getSettingsFromContext } from "@eslint-react/shared";
55
import type { RuleFeature } from "@eslint-react/types";
66
import type { TSESTree } from "@typescript-eslint/utils";
77
import type { ReportDescriptor } from "@typescript-eslint/utils/ts-eslint";
@@ -44,7 +44,7 @@ export default createRule<[], MessageID>({
4444
},
4545
name: RULE_NAME,
4646
create(context) {
47-
const settings = normalizeSettings(decodeSettings(context.settings));
47+
const settings = getSettingsFromContext(context);
4848
const additionalComponents = settings.additionalComponents.filter(c => c.as === "a");
4949
function getReportDescriptor(node: TSESTree.JSXElement): O.Option<ReportDescriptor<MessageID>> {
5050
const name = JSX.getElementName(node.openingElement);

0 commit comments

Comments
 (0)