eslint-plugin-react-web-api 2.4.0-next.7 → 2.4.0

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/dist/index.js +7 -23
  2. package/package.json +10 -10
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { DEFAULT_ESLINT_REACT_SETTINGS, WEBSITE_URL, getConfigAdapters } from "@eslint-react/shared";
2
2
  import * as AST from "@eslint-react/ast";
3
- import { ComponentPhaseRelevance, getInstanceId, getPhaseKindOfFunction, isInitializedFromSource, isInstanceIdEqual, isInversePhase } from "@eslint-react/core";
3
+ import { ComponentPhaseRelevance, getInstanceId, getPhaseKindOfFunction, isInitializedFromReactNative, isInstanceIdEqual, isInversePhase } from "@eslint-react/core";
4
4
  import { or, unit } from "@eslint-react/eff";
5
5
  import { findAssignmentTarget, findProperty, findVariable, getVariableDefinitionNode, isNodeValueEqual } from "@eslint-react/var";
6
6
  import { AST_NODE_TYPES, ESLintUtils } from "@typescript-eslint/utils";
@@ -42,7 +42,7 @@ const settings = { "react-x": DEFAULT_ESLINT_REACT_SETTINGS };
42
42
  //#endregion
43
43
  //#region package.json
44
44
  var name = "eslint-plugin-react-web-api";
45
- var version = "2.4.0-next.7";
45
+ var version = "2.4.0";
46
46
 
47
47
  //#endregion
48
48
  //#region src/utils/create-rule.ts
@@ -54,7 +54,6 @@ const createRule = ESLintUtils.RuleCreator(getDocsUrl);
54
54
  //#endregion
55
55
  //#region src/rules/no-leaked-event-listener.ts
56
56
  const RULE_NAME$3 = "no-leaked-event-listener";
57
- const RULE_FEATURES$3 = [];
58
57
  const defaultOptions = {
59
58
  capture: false,
60
59
  signal: unit
@@ -122,10 +121,7 @@ function getOptions(node, initialScope) {
122
121
  var no_leaked_event_listener_default = createRule({
123
122
  meta: {
124
123
  type: "problem",
125
- docs: {
126
- description: "Prevents leaked `addEventListener` in a component or custom Hook.",
127
- [Symbol.for("rule_features")]: RULE_FEATURES$3
128
- },
124
+ docs: { description: "Prevents leaked `addEventListener` in a component or custom Hook." },
129
125
  messages: {
130
126
  expectedRemoveEventListenerInCleanup: "An 'addEventListener' in '{{effectMethodKind}}' should have a corresponding 'removeEventListener' in its cleanup function.",
131
127
  expectedRemoveEventListenerInUnmount: "An 'addEventListener' in 'componentDidMount' should have a corresponding 'removeEventListener' in 'componentWillUnmount' method.",
@@ -182,7 +178,7 @@ function create$3(context) {
182
178
  if (fKind == null) return;
183
179
  if (!ComponentPhaseRelevance.has(fKind)) return;
184
180
  match(getCallKind$3(node)).with("addEventListener", (callKind) => {
185
- if (node.callee.type === AST_NODE_TYPES.MemberExpression && node.callee.object.type === AST_NODE_TYPES.Identifier && isInitializedFromSource(node.callee.object.name, "react-native", context.sourceCode.getScope(node))) return;
181
+ if (node.callee.type === AST_NODE_TYPES.MemberExpression && node.callee.object.type === AST_NODE_TYPES.Identifier && isInitializedFromReactNative(node.callee.object.name, context.sourceCode.getScope(node))) return;
186
182
  const [type, listener, options] = node.arguments;
187
183
  if (type == null || listener == null) return;
188
184
  const opts = options == null ? defaultOptions : getOptions(options, context.sourceCode.getScope(options));
@@ -245,7 +241,6 @@ function create$3(context) {
245
241
  //#endregion
246
242
  //#region src/rules/no-leaked-interval.ts
247
243
  const RULE_NAME$2 = "no-leaked-interval";
248
- const RULE_FEATURES$2 = [];
249
244
  function getCallKind$2(node) {
250
245
  switch (true) {
251
246
  case node.callee.type === AST_NODE_TYPES.Identifier && isMatching(P.union("setInterval", "clearInterval"))(node.callee.name): return node.callee.name;
@@ -256,10 +251,7 @@ function getCallKind$2(node) {
256
251
  var no_leaked_interval_default = createRule({
257
252
  meta: {
258
253
  type: "problem",
259
- docs: {
260
- description: "Prevents leaked `setInterval` in a component or custom Hook.",
261
- [Symbol.for("rule_features")]: RULE_FEATURES$2
262
- },
254
+ docs: { description: "Prevents leaked `setInterval` in a component or custom Hook." },
263
255
  messages: {
264
256
  expectedClearIntervalInCleanup: "A 'setInterval' created in '{{ kind }}' must be cleared with 'clearInterval' in the cleanup function.",
265
257
  expectedClearIntervalInUnmount: "A 'setInterval' created in '{{ kind }}' must be cleared with 'clearInterval' in the 'componentWillUnmount' method.",
@@ -359,7 +351,6 @@ function create$2(context) {
359
351
  //#endregion
360
352
  //#region src/rules/no-leaked-resize-observer.ts
361
353
  const RULE_NAME$1 = "no-leaked-resize-observer";
362
- const RULE_FEATURES$1 = [];
363
354
  function isNewResizeObserver(node) {
364
355
  return node?.type === AST_NODE_TYPES.NewExpression && node.callee.type === AST_NODE_TYPES.Identifier && node.callee.name === "ResizeObserver";
365
356
  }
@@ -383,10 +374,7 @@ function getFunctionKind(node) {
383
374
  var no_leaked_resize_observer_default = createRule({
384
375
  meta: {
385
376
  type: "problem",
386
- docs: {
387
- description: "Prevents leaked `ResizeObserver` in a component or custom Hook.",
388
- [Symbol.for("rule_features")]: RULE_FEATURES$1
389
- },
377
+ docs: { description: "Prevents leaked `ResizeObserver` in a component or custom Hook." },
390
378
  messages: {
391
379
  expectedDisconnectInControlFlow: "Dynamically added 'ResizeObserver.observe' should be cleared all at once using 'ResizeObserver.disconnect' in the cleanup function.",
392
380
  expectedDisconnectOrUnobserveInCleanup: "A 'ResizeObserver' instance created in 'useEffect' must be disconnected in the cleanup function.",
@@ -505,7 +493,6 @@ function create$1(context) {
505
493
  //#endregion
506
494
  //#region src/rules/no-leaked-timeout.ts
507
495
  const RULE_NAME = "no-leaked-timeout";
508
- const RULE_FEATURES = [];
509
496
  function getCallKind(node) {
510
497
  switch (true) {
511
498
  case node.callee.type === AST_NODE_TYPES.Identifier && isMatching(P.union("setTimeout", "clearTimeout"))(node.callee.name): return node.callee.name;
@@ -516,10 +503,7 @@ function getCallKind(node) {
516
503
  var no_leaked_timeout_default = createRule({
517
504
  meta: {
518
505
  type: "problem",
519
- docs: {
520
- description: "Prevents leaked `setTimeout` in a component or custom Hook.",
521
- [Symbol.for("rule_features")]: RULE_FEATURES
522
- },
506
+ docs: { description: "Prevents leaked `setTimeout` in a component or custom Hook." },
523
507
  messages: {
524
508
  expectedClearTimeoutInCleanup: "A 'setTimeout' created in '{{ kind }}' must be cleared with 'clearTimeout' in the cleanup function.",
525
509
  expectedClearTimeoutInUnmount: "A 'setTimeout' created in '{{ kind }}' must be cleared with 'clearTimeout' in the 'componentWillUnmount' method.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-react-web-api",
3
- "version": "2.4.0-next.7",
3
+ "version": "2.4.0",
4
4
  "description": "ESLint React's ESLint plugin for interacting with Web APIs",
5
5
  "keywords": [
6
6
  "react",
@@ -38,21 +38,21 @@
38
38
  "./package.json"
39
39
  ],
40
40
  "dependencies": {
41
- "@typescript-eslint/scope-manager": "^8.49.0",
42
- "@typescript-eslint/types": "^8.49.0",
43
- "@typescript-eslint/utils": "^8.49.0",
41
+ "@typescript-eslint/scope-manager": "^8.50.1",
42
+ "@typescript-eslint/types": "^8.50.1",
43
+ "@typescript-eslint/utils": "^8.50.1",
44
44
  "string-ts": "^2.3.1",
45
45
  "ts-pattern": "^5.9.0",
46
- "@eslint-react/ast": "2.4.0-next.7",
47
- "@eslint-react/core": "2.4.0-next.7",
48
- "@eslint-react/eff": "2.4.0-next.7",
49
- "@eslint-react/shared": "2.4.0-next.7",
50
- "@eslint-react/var": "2.4.0-next.7"
46
+ "@eslint-react/ast": "2.4.0",
47
+ "@eslint-react/core": "2.4.0",
48
+ "@eslint-react/eff": "2.4.0",
49
+ "@eslint-react/shared": "2.4.0",
50
+ "@eslint-react/var": "2.4.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/react": "^19.2.7",
54
54
  "@types/react-dom": "^19.2.3",
55
- "tsdown": "^0.18.0",
55
+ "tsdown": "^0.18.2",
56
56
  "@local/configs": "0.0.0"
57
57
  },
58
58
  "peerDependencies": {