eslint-plugin-react-web-api 5.24.3 → 5.24.5
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/dist/index.js +27 -61
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -7,35 +7,27 @@ import { isAssignmentTargetEqual, isInitializedFromReactNative, isValueEqual, re
|
|
|
7
7
|
import { AST_NODE_TYPES } from "@typescript-eslint/types";
|
|
8
8
|
import { findVariable, getStaticValue } from "@typescript-eslint/utils/ast-utils";
|
|
9
9
|
import { P, isMatching, match } from "ts-pattern";
|
|
10
|
-
|
|
11
10
|
//#region \0rolldown/runtime.js
|
|
12
11
|
var __defProp = Object.defineProperty;
|
|
13
12
|
var __exportAll = (all, no_symbols) => {
|
|
14
13
|
let target = {};
|
|
15
|
-
for (var name in all) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
if (!no_symbols) {
|
|
22
|
-
__defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
23
|
-
}
|
|
14
|
+
for (var name in all) __defProp(target, name, {
|
|
15
|
+
get: all[name],
|
|
16
|
+
enumerable: true
|
|
17
|
+
});
|
|
18
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
24
19
|
return target;
|
|
25
20
|
};
|
|
26
|
-
|
|
27
21
|
//#endregion
|
|
28
22
|
//#region package.json
|
|
29
23
|
var name$1 = "eslint-plugin-react-web-api";
|
|
30
|
-
var version = "5.24.
|
|
31
|
-
|
|
24
|
+
var version = "5.24.5";
|
|
32
25
|
//#endregion
|
|
33
26
|
//#region src/utils/create-rule.ts
|
|
34
27
|
function getDocsUrl(ruleName) {
|
|
35
28
|
return `https://eslint-react.xyz/docs/rules/web-api-${ruleName}`;
|
|
36
29
|
}
|
|
37
30
|
const createRule = ESLintUtils.RuleCreator(getDocsUrl);
|
|
38
|
-
|
|
39
31
|
//#endregion
|
|
40
32
|
//#region ../../.pkgs/eff/dist/index.js
|
|
41
33
|
const pipeArguments = (self, args) => {
|
|
@@ -60,7 +52,7 @@ const pipeArguments = (self, args) => {
|
|
|
60
52
|
const Prototype = { pipe() {
|
|
61
53
|
return pipeArguments(this, arguments);
|
|
62
54
|
} };
|
|
63
|
-
|
|
55
|
+
(function() {
|
|
64
56
|
function PipeableBase() {}
|
|
65
57
|
PipeableBase.prototype = Prototype;
|
|
66
58
|
return PipeableBase;
|
|
@@ -95,23 +87,18 @@ const dual = function(arity, body) {
|
|
|
95
87
|
};
|
|
96
88
|
const identity = (a) => a;
|
|
97
89
|
const cast = identity;
|
|
98
|
-
|
|
99
|
-
const constTrue = constant(true);
|
|
100
|
-
const constFalse = constant(false);
|
|
101
|
-
const constNull = constant(null);
|
|
102
|
-
const constUndefined = constant(void 0);
|
|
103
|
-
const compose = dual(2, (ab, bc) => (a) => bc(ab(a)));
|
|
90
|
+
dual(2, (ab, bc) => (a) => bc(ab(a)));
|
|
104
91
|
const absurd = (_) => {
|
|
105
92
|
throw new Error("Called `absurd` function which should be uncallable");
|
|
106
93
|
};
|
|
107
|
-
|
|
94
|
+
cast(absurd);
|
|
108
95
|
const and = dual(2, (a, b) => (data) => a(data) && b(data));
|
|
109
96
|
const or = dual(2, (a, b) => (data) => a(data) || b(data));
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
97
|
+
dual(2, (a, b) => (data) => a(data) !== b(data));
|
|
98
|
+
dual(2, (a, b) => (data) => a(data) === b(data));
|
|
99
|
+
dual(2, (antecedent, consequent) => (data) => !antecedent(data) || consequent(data));
|
|
100
|
+
dual(2, (a, b) => (data) => !a(data) && !b(data));
|
|
101
|
+
dual(2, (a, b) => (data) => !a(data) || !b(data));
|
|
115
102
|
function isString(input) {
|
|
116
103
|
return typeof input === "string";
|
|
117
104
|
}
|
|
@@ -121,28 +108,27 @@ function isFunction(input) {
|
|
|
121
108
|
function isObjectKeyword(input) {
|
|
122
109
|
return typeof input === "object" && input !== null || isFunction(input);
|
|
123
110
|
}
|
|
124
|
-
|
|
111
|
+
dual(2, (data, property) => isObjectKeyword(data) && property in data);
|
|
125
112
|
function getOrInsertComputed(map, key, callback) {
|
|
126
113
|
if (map.has(key)) return map.get(key);
|
|
127
114
|
const value = callback(key);
|
|
128
115
|
map.set(key, value);
|
|
129
116
|
return value;
|
|
130
117
|
}
|
|
131
|
-
|
|
118
|
+
dual(2, (self, predicate) => {
|
|
132
119
|
const input = Array.isArray(self) ? self : Array.from(self);
|
|
133
120
|
const len = input.length;
|
|
134
121
|
let idx = 0;
|
|
135
122
|
while (idx < len && predicate(input[idx], idx)) idx++;
|
|
136
123
|
return input.slice(idx);
|
|
137
124
|
});
|
|
138
|
-
|
|
125
|
+
dual(2, (self, predicate) => {
|
|
139
126
|
const input = Array.isArray(self) ? self : Array.from(self);
|
|
140
127
|
const len = input.length;
|
|
141
128
|
let idx = 0;
|
|
142
129
|
while (idx < len && predicate(input[idx], idx)) idx++;
|
|
143
130
|
return input.slice(0, idx);
|
|
144
131
|
});
|
|
145
|
-
|
|
146
132
|
//#endregion
|
|
147
133
|
//#region src/rules/no-leaked-event-listener/lib.ts
|
|
148
134
|
function getSignalValueExpression(context, node) {
|
|
@@ -194,7 +180,6 @@ function getOptions(context, node) {
|
|
|
194
180
|
}
|
|
195
181
|
return visit(node);
|
|
196
182
|
}
|
|
197
|
-
|
|
198
183
|
//#endregion
|
|
199
184
|
//#region src/rules/no-leaked-event-listener/no-leaked-event-listener.ts
|
|
200
185
|
const RULE_NAME$5 = "no-leaked-event-listener";
|
|
@@ -253,8 +238,7 @@ var no_leaked_event_listener_default = createRule({
|
|
|
253
238
|
schema: []
|
|
254
239
|
},
|
|
255
240
|
name: RULE_NAME$5,
|
|
256
|
-
create: create$5
|
|
257
|
-
defaultOptions: []
|
|
241
|
+
create: create$5
|
|
258
242
|
});
|
|
259
243
|
function create$5(context) {
|
|
260
244
|
if (!context.sourceCode.text.includes("addEventListener")) return {};
|
|
@@ -357,7 +341,6 @@ function create$5(context) {
|
|
|
357
341
|
}
|
|
358
342
|
};
|
|
359
343
|
}
|
|
360
|
-
|
|
361
344
|
//#endregion
|
|
362
345
|
//#region src/rules/no-leaked-fetch/lib.ts
|
|
363
346
|
function resolveToObjectExpression(context, node) {
|
|
@@ -373,7 +356,6 @@ function resolveToObjectExpression(context, node) {
|
|
|
373
356
|
default: return null;
|
|
374
357
|
}
|
|
375
358
|
}
|
|
376
|
-
|
|
377
359
|
//#endregion
|
|
378
360
|
//#region src/rules/no-leaked-fetch/no-leaked-fetch.ts
|
|
379
361
|
const RULE_NAME$4 = "no-leaked-fetch";
|
|
@@ -446,8 +428,7 @@ var no_leaked_fetch_default = createRule({
|
|
|
446
428
|
schema: []
|
|
447
429
|
},
|
|
448
430
|
name: RULE_NAME$4,
|
|
449
|
-
create: create$4
|
|
450
|
-
defaultOptions: []
|
|
431
|
+
create: create$4
|
|
451
432
|
});
|
|
452
433
|
function create$4(context) {
|
|
453
434
|
if (!context.sourceCode.text.includes("fetch")) return {};
|
|
@@ -495,7 +476,6 @@ function create$4(context) {
|
|
|
495
476
|
}
|
|
496
477
|
};
|
|
497
478
|
}
|
|
498
|
-
|
|
499
479
|
//#endregion
|
|
500
480
|
//#region src/rules/no-leaked-intersection-observer/lib.ts
|
|
501
481
|
function isNewObserver$1(node, name) {
|
|
@@ -513,7 +493,6 @@ function isFromObserver$1(context, node, name) {
|
|
|
513
493
|
default: return false;
|
|
514
494
|
}
|
|
515
495
|
}
|
|
516
|
-
|
|
517
496
|
//#endregion
|
|
518
497
|
//#region src/rules/no-leaked-intersection-observer/no-leaked-intersection-observer.ts
|
|
519
498
|
const RULE_NAME$3 = "no-leaked-intersection-observer";
|
|
@@ -537,8 +516,7 @@ var no_leaked_intersection_observer_default = createRule({
|
|
|
537
516
|
schema: []
|
|
538
517
|
},
|
|
539
518
|
name: RULE_NAME$3,
|
|
540
|
-
create: create$3
|
|
541
|
-
defaultOptions: []
|
|
519
|
+
create: create$3
|
|
542
520
|
});
|
|
543
521
|
function create$3(context) {
|
|
544
522
|
if (!context.sourceCode.text.includes("IntersectionObserver")) return {};
|
|
@@ -598,12 +576,11 @@ function create$3(context) {
|
|
|
598
576
|
},
|
|
599
577
|
["Program:exit"]() {
|
|
600
578
|
for (const { id, node, phaseNode } of observers) {
|
|
601
|
-
|
|
602
|
-
if (dEntries.some((e) => !isInsideObserverCallback(e) && isAssignmentTargetEqual(context, e.observer, id))) continue;
|
|
579
|
+
if (dEntries.some((e) => Traverse.findParent(e.node, (n) => n === node) == null && isAssignmentTargetEqual(context, e.observer, id))) continue;
|
|
603
580
|
const matchedOEntries = oEntries.filter((e) => isAssignmentTargetEqual(context, e.observer, id));
|
|
604
581
|
const matchedUEntries = uEntries.filter((e) => isAssignmentTargetEqual(context, e.observer, id));
|
|
605
|
-
const isDynamic = (
|
|
606
|
-
const isPhaseNode = (
|
|
582
|
+
const isDynamic = or(Check.isCallExpression, Check.isConditional);
|
|
583
|
+
const isPhaseNode = (n) => n === phaseNode;
|
|
607
584
|
if (matchedOEntries.some((e) => !isPhaseNode(Traverse.findParent(e.node, or(isDynamic, isPhaseNode))))) {
|
|
608
585
|
context.report({
|
|
609
586
|
messageId: "expected-disconnect-in-control-flow",
|
|
@@ -622,7 +599,6 @@ function create$3(context) {
|
|
|
622
599
|
}
|
|
623
600
|
};
|
|
624
601
|
}
|
|
625
|
-
|
|
626
602
|
//#endregion
|
|
627
603
|
//#region src/rules/no-leaked-interval/no-leaked-interval.ts
|
|
628
604
|
const RULE_NAME$2 = "no-leaked-interval";
|
|
@@ -643,8 +619,7 @@ var no_leaked_interval_default = createRule({
|
|
|
643
619
|
schema: []
|
|
644
620
|
},
|
|
645
621
|
name: RULE_NAME$2,
|
|
646
|
-
create: create$2
|
|
647
|
-
defaultOptions: []
|
|
622
|
+
create: create$2
|
|
648
623
|
});
|
|
649
624
|
function create$2(context) {
|
|
650
625
|
if (!context.sourceCode.text.includes("setInterval")) return {};
|
|
@@ -690,7 +665,6 @@ function create$2(context) {
|
|
|
690
665
|
}
|
|
691
666
|
};
|
|
692
667
|
}
|
|
693
|
-
|
|
694
668
|
//#endregion
|
|
695
669
|
//#region src/rules/no-leaked-resize-observer/lib.ts
|
|
696
670
|
function isNewObserver(node, name) {
|
|
@@ -708,7 +682,6 @@ function isFromObserver(context, node, name) {
|
|
|
708
682
|
default: return false;
|
|
709
683
|
}
|
|
710
684
|
}
|
|
711
|
-
|
|
712
685
|
//#endregion
|
|
713
686
|
//#region src/rules/no-leaked-resize-observer/no-leaked-resize-observer.ts
|
|
714
687
|
const RULE_NAME$1 = "no-leaked-resize-observer";
|
|
@@ -732,8 +705,7 @@ var no_leaked_resize_observer_default = createRule({
|
|
|
732
705
|
schema: []
|
|
733
706
|
},
|
|
734
707
|
name: RULE_NAME$1,
|
|
735
|
-
create: create$1
|
|
736
|
-
defaultOptions: []
|
|
708
|
+
create: create$1
|
|
737
709
|
});
|
|
738
710
|
function create$1(context) {
|
|
739
711
|
if (!context.sourceCode.text.includes("ResizeObserver")) return {};
|
|
@@ -817,7 +789,6 @@ function create$1(context) {
|
|
|
817
789
|
}
|
|
818
790
|
};
|
|
819
791
|
}
|
|
820
|
-
|
|
821
792
|
//#endregion
|
|
822
793
|
//#region src/rules/no-leaked-timeout/no-leaked-timeout.ts
|
|
823
794
|
const RULE_NAME = "no-leaked-timeout";
|
|
@@ -838,8 +809,7 @@ var no_leaked_timeout_default = createRule({
|
|
|
838
809
|
schema: []
|
|
839
810
|
},
|
|
840
811
|
name: RULE_NAME,
|
|
841
|
-
create
|
|
842
|
-
defaultOptions: []
|
|
812
|
+
create
|
|
843
813
|
});
|
|
844
814
|
function create(context) {
|
|
845
815
|
if (!context.sourceCode.text.includes("setTimeout")) return {};
|
|
@@ -885,7 +855,6 @@ function create(context) {
|
|
|
885
855
|
}
|
|
886
856
|
};
|
|
887
857
|
}
|
|
888
|
-
|
|
889
858
|
//#endregion
|
|
890
859
|
//#region src/plugin.ts
|
|
891
860
|
const plugin = {
|
|
@@ -902,7 +871,6 @@ const plugin = {
|
|
|
902
871
|
"no-leaked-timeout": no_leaked_timeout_default
|
|
903
872
|
}
|
|
904
873
|
};
|
|
905
|
-
|
|
906
874
|
//#endregion
|
|
907
875
|
//#region src/configs/recommended.ts
|
|
908
876
|
var recommended_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -922,7 +890,6 @@ const rules = {
|
|
|
922
890
|
};
|
|
923
891
|
const plugins = { "react-web-api": plugin };
|
|
924
892
|
const settings = { "react-x": DEFAULT_ESLINT_REACT_SETTINGS };
|
|
925
|
-
|
|
926
893
|
//#endregion
|
|
927
894
|
//#region src/index.ts
|
|
928
895
|
function createConfig(base) {
|
|
@@ -940,6 +907,5 @@ const finalPlugin = {
|
|
|
940
907
|
...plugin,
|
|
941
908
|
configs: { ["recommended"]: createConfig(recommended_exports) }
|
|
942
909
|
};
|
|
943
|
-
|
|
944
910
|
//#endregion
|
|
945
|
-
export { finalPlugin as default };
|
|
911
|
+
export { finalPlugin as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-react-web-api",
|
|
3
|
-
"version": "5.24.
|
|
3
|
+
"version": "5.24.5",
|
|
4
4
|
"description": "ESLint React's ESLint plugin for interacting with Web APIs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -37,11 +37,11 @@
|
|
|
37
37
|
"dist"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@eslint-react/ast": "5.24.
|
|
41
|
-
"@eslint-react/core": "5.24.
|
|
42
|
-
"@eslint-react/eslint": "5.24.
|
|
43
|
-
"@eslint-react/shared": "5.24.
|
|
44
|
-
"@eslint-react/var": "5.24.
|
|
40
|
+
"@eslint-react/ast": "5.24.5",
|
|
41
|
+
"@eslint-react/core": "5.24.5",
|
|
42
|
+
"@eslint-react/eslint": "5.24.5",
|
|
43
|
+
"@eslint-react/shared": "5.24.5",
|
|
44
|
+
"@eslint-react/var": "5.24.5",
|
|
45
45
|
"@typescript-eslint/types": "^8.71.0",
|
|
46
46
|
"@typescript-eslint/utils": "^8.71.0",
|
|
47
47
|
"ts-pattern": "^5.9.0"
|