eslint-plugin-runtime-cleanup 1.2.9 → 1.2.10
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/_internal/ast-node.d.ts +5 -1
- package/dist/_internal/ast-node.d.ts.map +1 -1
- package/dist/_internal/ast-node.js +2 -1
- package/dist/_internal/ast-node.js.map +1 -1
- package/dist/_internal/bounded-cache.d.ts.map +1 -1
- package/dist/_internal/bounded-cache.js +2 -1
- package/dist/_internal/bounded-cache.js.map +1 -1
- package/dist/_internal/expression-boolean-memoizer.d.ts.map +1 -1
- package/dist/_internal/expression-boolean-memoizer.js +2 -1
- package/dist/_internal/expression-boolean-memoizer.js.map +1 -1
- package/dist/_internal/filter-callback.d.ts +5 -1
- package/dist/_internal/filter-callback.d.ts.map +1 -1
- package/dist/_internal/filter-callback.js +9 -10
- package/dist/_internal/filter-callback.js.map +1 -1
- package/dist/_internal/floating-resource.d.ts +8 -0
- package/dist/_internal/floating-resource.d.ts.map +1 -1
- package/dist/_internal/floating-resource.js +42 -36
- package/dist/_internal/floating-resource.js.map +1 -1
- package/dist/_internal/normalize-expression-text.d.ts +6 -1
- package/dist/_internal/normalize-expression-text.d.ts.map +1 -1
- package/dist/_internal/normalize-expression-text.js +30 -28
- package/dist/_internal/normalize-expression-text.js.map +1 -1
- package/dist/_internal/nullish-comparison.d.ts +1 -1
- package/dist/_internal/nullish-comparison.d.ts.map +1 -1
- package/dist/_internal/nullish-comparison.js +16 -11
- package/dist/_internal/nullish-comparison.js.map +1 -1
- package/dist/_internal/plugin-settings.d.ts +2 -1
- package/dist/_internal/plugin-settings.d.ts.map +1 -1
- package/dist/_internal/plugin-settings.js +3 -2
- package/dist/_internal/plugin-settings.js.map +1 -1
- package/dist/_internal/report-adapter.d.ts +5 -4
- package/dist/_internal/report-adapter.d.ts.map +1 -1
- package/dist/_internal/report-adapter.js +3 -2
- package/dist/_internal/report-adapter.js.map +1 -1
- package/dist/_internal/rule-catalog.d.ts.map +1 -1
- package/dist/_internal/rule-catalog.js +3 -2
- package/dist/_internal/rule-catalog.js.map +1 -1
- package/dist/_internal/rule-docs-metadata.d.ts +2 -1
- package/dist/_internal/rule-docs-metadata.d.ts.map +1 -1
- package/dist/_internal/rule-docs-metadata.js +36 -33
- package/dist/_internal/rule-docs-metadata.js.map +1 -1
- package/dist/_internal/rules-registry.d.ts +2 -1
- package/dist/_internal/rules-registry.d.ts.map +1 -1
- package/dist/_internal/rules-registry.js.map +1 -1
- package/dist/_internal/runtime-cleanup-config-references.d.ts +2 -1
- package/dist/_internal/runtime-cleanup-config-references.d.ts.map +1 -1
- package/dist/_internal/runtime-cleanup-config-references.js +2 -1
- package/dist/_internal/runtime-cleanup-config-references.js.map +1 -1
- package/dist/_internal/scope-variable.d.ts.map +1 -1
- package/dist/_internal/scope-variable.js +5 -4
- package/dist/_internal/scope-variable.js.map +1 -1
- package/dist/_internal/type-checker.d.ts +2 -2
- package/dist/_internal/type-checker.d.ts.map +1 -1
- package/dist/_internal/type-checker.js +10 -8
- package/dist/_internal/type-checker.js.map +1 -1
- package/dist/_internal/type-predicate-autofix-safety.d.ts +5 -1
- package/dist/_internal/type-predicate-autofix-safety.d.ts.map +1 -1
- package/dist/_internal/type-predicate-autofix-safety.js +9 -10
- package/dist/_internal/type-predicate-autofix-safety.js.map +1 -1
- package/dist/_internal/type-reference-node.d.ts +7 -5
- package/dist/_internal/type-reference-node.d.ts.map +1 -1
- package/dist/_internal/type-reference-node.js +6 -6
- package/dist/_internal/type-reference-node.js.map +1 -1
- package/dist/_internal/typed-rule.d.ts +2 -1
- package/dist/_internal/typed-rule.d.ts.map +1 -1
- package/dist/_internal/typed-rule.js +6 -5
- package/dist/_internal/typed-rule.js.map +1 -1
- package/dist/_internal/value-rewrite-autofix-safety.d.ts +5 -1
- package/dist/_internal/value-rewrite-autofix-safety.d.ts.map +1 -1
- package/dist/_internal/value-rewrite-autofix-safety.js +10 -18
- package/dist/_internal/value-rewrite-autofix-safety.js.map +1 -1
- package/dist/plugin.cjs +565 -656
- package/dist/plugin.cjs.map +4 -4
- package/dist/plugin.d.cts +2 -1
- package/dist/plugin.d.ts +2 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +8 -7
- package/dist/plugin.js.map +1 -1
- package/dist/rules/no-floating-abort-controllers.d.ts.map +1 -1
- package/dist/rules/no-floating-abort-controllers.js +24 -52
- package/dist/rules/no-floating-abort-controllers.js.map +1 -1
- package/dist/rules/no-floating-audio-contexts.d.ts.map +1 -1
- package/dist/rules/no-floating-audio-contexts.js +7 -6
- package/dist/rules/no-floating-audio-contexts.js.map +1 -1
- package/dist/rules/no-floating-broadcast-channels.d.ts.map +1 -1
- package/dist/rules/no-floating-broadcast-channels.js +31 -59
- package/dist/rules/no-floating-broadcast-channels.js.map +1 -1
- package/dist/rules/no-floating-child-processes.d.ts.map +1 -1
- package/dist/rules/no-floating-child-processes.js +43 -45
- package/dist/rules/no-floating-child-processes.js.map +1 -1
- package/dist/rules/no-floating-disposable-stacks.d.ts.map +1 -1
- package/dist/rules/no-floating-disposable-stacks.js +37 -38
- package/dist/rules/no-floating-disposable-stacks.js.map +1 -1
- package/dist/rules/no-floating-file-watchers.d.ts.map +1 -1
- package/dist/rules/no-floating-file-watchers.js +40 -42
- package/dist/rules/no-floating-file-watchers.js.map +1 -1
- package/dist/rules/no-floating-geolocation-watches.js +20 -20
- package/dist/rules/no-floating-geolocation-watches.js.map +1 -1
- package/dist/rules/no-floating-infinite-animations.d.ts.map +1 -1
- package/dist/rules/no-floating-infinite-animations.js +4 -3
- package/dist/rules/no-floating-infinite-animations.js.map +1 -1
- package/dist/rules/no-floating-media-streams.d.ts.map +1 -1
- package/dist/rules/no-floating-media-streams.js +24 -24
- package/dist/rules/no-floating-media-streams.js.map +1 -1
- package/dist/rules/no-floating-message-channels.js +30 -30
- package/dist/rules/no-floating-message-channels.js.map +1 -1
- package/dist/rules/no-floating-network-connections.d.ts.map +1 -1
- package/dist/rules/no-floating-network-connections.js +36 -36
- package/dist/rules/no-floating-network-connections.js.map +1 -1
- package/dist/rules/no-floating-object-urls.d.ts.map +1 -1
- package/dist/rules/no-floating-object-urls.js +4 -3
- package/dist/rules/no-floating-object-urls.js.map +1 -1
- package/dist/rules/no-floating-observers.d.ts.map +1 -1
- package/dist/rules/no-floating-observers.js +33 -34
- package/dist/rules/no-floating-observers.js.map +1 -1
- package/dist/rules/no-floating-servers.d.ts.map +1 -1
- package/dist/rules/no-floating-servers.js +50 -52
- package/dist/rules/no-floating-servers.js.map +1 -1
- package/dist/rules/no-floating-streams.d.ts.map +1 -1
- package/dist/rules/no-floating-streams.js +28 -29
- package/dist/rules/no-floating-streams.js.map +1 -1
- package/dist/rules/no-floating-timers.d.ts.map +1 -1
- package/dist/rules/no-floating-timers.js +7 -47
- package/dist/rules/no-floating-timers.js.map +1 -1
- package/dist/rules/no-floating-wake-locks.js +20 -20
- package/dist/rules/no-floating-wake-locks.js.map +1 -1
- package/dist/rules/no-floating-web-stream-locks.d.ts.map +1 -1
- package/dist/rules/no-floating-web-stream-locks.js +4 -3
- package/dist/rules/no-floating-web-stream-locks.js.map +1 -1
- package/dist/rules/no-floating-workers.d.ts.map +1 -1
- package/dist/rules/no-floating-workers.js +39 -40
- package/dist/rules/no-floating-workers.js.map +1 -1
- package/dist/rules/no-unmanaged-event-listeners.d.ts.map +1 -1
- package/dist/rules/no-unmanaged-event-listeners.js +23 -23
- package/dist/rules/no-unmanaged-event-listeners.js.map +1 -1
- package/docs/rules/no-floating-audio-contexts.md +1 -2
- package/docs/rules/no-floating-media-streams.md +1 -1
- package/docs/rules/no-floating-object-urls.md +3 -3
- package/docs/rules/no-floating-observers.md +1 -1
- package/docs/rules/no-floating-servers.md +1 -1
- package/docs/rules/no-floating-wake-locks.md +1 -1
- package/docs/rules/no-floating-web-stream-locks.md +1 -2
- package/package.json +7 -4
package/dist/plugin.d.cts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Public plugin entrypoint for eslint-plugin-runtime-cleanup exports and preset wiring.
|
|
4
4
|
*/
|
|
5
5
|
import type { ESLint, Linter } from "eslint";
|
|
6
|
+
import type { Except } from "type-fest";
|
|
6
7
|
import { runtimeCleanupRules } from "./_internal/rules-registry.js";
|
|
7
8
|
import { type RuntimeCleanupConfigName as InternalRuntimeCleanupConfigName } from "./_internal/runtime-cleanup-config-references.js";
|
|
8
9
|
/**
|
|
@@ -26,7 +27,7 @@ export type RuntimeCleanupPresetConfig = Linter.Config & {
|
|
|
26
27
|
/** Contract for the `configs` object exported by this plugin. */
|
|
27
28
|
type RuntimeCleanupConfigsContract = Record<RuntimeCleanupConfigName, RuntimeCleanupPresetConfig>;
|
|
28
29
|
/** Fully assembled plugin contract used by the runtime default export. */
|
|
29
|
-
type RuntimeCleanupPluginContract =
|
|
30
|
+
type RuntimeCleanupPluginContract = Except<ESLint.Plugin, "configs" | "rules"> & {
|
|
30
31
|
configs: RuntimeCleanupConfigsContract;
|
|
31
32
|
meta: {
|
|
32
33
|
name: string;
|
package/dist/plugin.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Public plugin entrypoint for eslint-plugin-runtime-cleanup exports and preset wiring.
|
|
4
4
|
*/
|
|
5
5
|
import type { ESLint, Linter } from "eslint";
|
|
6
|
+
import type { Except } from "type-fest";
|
|
6
7
|
import { runtimeCleanupRules } from "./_internal/rules-registry.js";
|
|
7
8
|
import { type RuntimeCleanupConfigName as InternalRuntimeCleanupConfigName } from "./_internal/runtime-cleanup-config-references.js";
|
|
8
9
|
/**
|
|
@@ -26,7 +27,7 @@ export type RuntimeCleanupPresetConfig = Linter.Config & {
|
|
|
26
27
|
/** Contract for the `configs` object exported by this plugin. */
|
|
27
28
|
type RuntimeCleanupConfigsContract = Record<RuntimeCleanupConfigName, RuntimeCleanupPresetConfig>;
|
|
28
29
|
/** Fully assembled plugin contract used by the runtime default export. */
|
|
29
|
-
type RuntimeCleanupPluginContract =
|
|
30
|
+
type RuntimeCleanupPluginContract = Except<ESLint.Plugin, "configs" | "rules"> & {
|
|
30
31
|
configs: RuntimeCleanupConfigsContract;
|
|
31
32
|
meta: {
|
|
32
33
|
name: string;
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAOxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EACH,KAAK,wBAAwB,IAAI,gCAAgC,EAGpE,MAAM,kDAAkD,CAAC;AAK1D;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,GAAG;IACrD,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9C,CAAC;AAWF,iEAAiE;AACjE,KAAK,6BAA6B,GAAG,MAAM,CACvC,wBAAwB,EACxB,0BAA0B,CAC7B,CAAC;AAEF,0EAA0E;AAC1E,KAAK,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG;IAC7E,OAAO,EAAE,6BAA6B,CAAC;IACvC,IAAI,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACrD,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9C,CAAC;AAwCF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,sBAAsB,EAAE,CAAC;AAE/E,0EAA0E;AAC1E,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AA4MtE,kEAAkE;AAClE,QAAA,MAAM,qBAAqB,EAAE,6BACM,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAEjE;;GAEG;AACH,QAAA,MAAM,oBAAoB,EAAE,4BAS3B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAE/D;;GAEG;AACH,eAAe,oBAAoB,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import tsParser from "@typescript-eslint/parser";
|
|
2
|
+
import { objectFromEntries, objectHasOwn } from "ts-extras";
|
|
2
3
|
// eslint-disable-next-line import-x/extensions -- Avoid importing from the ESM entrypoint to preserve CJS compatibility
|
|
3
4
|
import packageJson from "../package.json" with { type: "json" };
|
|
4
5
|
import { runtimeCleanupRules } from "./_internal/rules-registry.js";
|
|
5
6
|
import { runtimeCleanupConfigMetadataByName, runtimeCleanupConfigNames, } from "./_internal/runtime-cleanup-config-references.js";
|
|
6
7
|
/** Default file globs targeted by plugin presets when `files` is omitted. */
|
|
7
|
-
const
|
|
8
|
+
const TS_FILES = ["**/*.{ts,tsx,mts,cts}"];
|
|
8
9
|
/**
|
|
9
10
|
* Resolve package version from package.json data.
|
|
10
11
|
*
|
|
@@ -20,7 +21,7 @@ function getPackageVersion(pkg) {
|
|
|
20
21
|
return typeof version === "string" ? version : "0.0.0";
|
|
21
22
|
}
|
|
22
23
|
/** Parser module reused across preset construction. */
|
|
23
|
-
const
|
|
24
|
+
const tsParserValue = tsParser;
|
|
24
25
|
/** Default parser options applied when a preset omits parser options. */
|
|
25
26
|
const defaultParserOptions = {
|
|
26
27
|
ecmaVersion: "latest",
|
|
@@ -160,17 +161,17 @@ function withRuntimeCleanupPlugin(config, plugin, options) {
|
|
|
160
161
|
const existingParserOptions = existingLanguageOptions["parserOptions"];
|
|
161
162
|
const parserOptions = normalizeParserOptions(existingParserOptions);
|
|
162
163
|
if (options.requiresTypeChecking &&
|
|
163
|
-
!
|
|
164
|
+
!objectHasOwn(parserOptions, "projectService")) {
|
|
164
165
|
Reflect.set(parserOptions, "projectService", true);
|
|
165
166
|
}
|
|
166
167
|
const languageOptions = {
|
|
167
168
|
...existingLanguageOptions,
|
|
168
|
-
parser: existingLanguageOptions["parser"] ??
|
|
169
|
+
parser: existingLanguageOptions["parser"] ?? tsParserValue,
|
|
169
170
|
parserOptions,
|
|
170
171
|
};
|
|
171
172
|
return {
|
|
172
173
|
...config,
|
|
173
|
-
files: config.files ?? [...
|
|
174
|
+
files: config.files ?? [...TS_FILES],
|
|
174
175
|
languageOptions,
|
|
175
176
|
plugins: {
|
|
176
177
|
...config.plugins,
|
|
@@ -196,7 +197,7 @@ const createPresetConfig = (configName) => {
|
|
|
196
197
|
*/
|
|
197
198
|
const createRuntimeCleanupConfigsDefinition = () =>
|
|
198
199
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Object.fromEntries cannot preserve the finite preset-key union.
|
|
199
|
-
|
|
200
|
+
objectFromEntries(runtimeCleanupConfigNames.map((configName) => [
|
|
200
201
|
configName,
|
|
201
202
|
createPresetConfig(configName),
|
|
202
203
|
]));
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-abort-controllers.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-abort-controllers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-floating-abort-controllers.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-abort-controllers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAgIlC,+EAA+E;AAC/E,QAAA,MAAM,0BAA0B,EAAE,QAAQ,CAAC,UAAU,CACjD,yBAAyB,EACzB,SAAS,EAAE,CA2Cb,CAAC;AAEH,eAAe,0BAA0B,CAAC"}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* Require AbortController handles to be retained so work can be aborted during cleanup.
|
|
4
4
|
*/
|
|
5
5
|
import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
|
|
6
|
+
import { isDefined, setHas } from "ts-extras";
|
|
6
7
|
import { getParentNode } from "../_internal/ast-node.js";
|
|
8
|
+
import { getFirstOpaqueParent } from "../_internal/floating-resource.js";
|
|
7
9
|
import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
|
|
8
10
|
import { getVariableInScopeChain } from "../_internal/scope-variable.js";
|
|
9
11
|
import { createTypedRule, } from "../_internal/typed-rule.js";
|
|
@@ -14,25 +16,7 @@ const globalReceiverNames = [
|
|
|
14
16
|
"window",
|
|
15
17
|
];
|
|
16
18
|
const globalReceiverNameSet = new Set(globalReceiverNames);
|
|
17
|
-
const isGlobalReceiverName = (name) => globalReceiverNameSet
|
|
18
|
-
const getTransparentWrappedExpression = (node) => {
|
|
19
|
-
if (node.type === AST_NODE_TYPES.ChainExpression) {
|
|
20
|
-
return node.expression;
|
|
21
|
-
}
|
|
22
|
-
if (node.type === AST_NODE_TYPES.TSAsExpression) {
|
|
23
|
-
return node.expression;
|
|
24
|
-
}
|
|
25
|
-
if (node.type === AST_NODE_TYPES.TSNonNullExpression) {
|
|
26
|
-
return node.expression;
|
|
27
|
-
}
|
|
28
|
-
if (node.type === AST_NODE_TYPES.TSSatisfiesExpression) {
|
|
29
|
-
return node.expression;
|
|
30
|
-
}
|
|
31
|
-
if (node.type === AST_NODE_TYPES.TSTypeAssertion) {
|
|
32
|
-
return node.expression;
|
|
33
|
-
}
|
|
34
|
-
return undefined;
|
|
35
|
-
};
|
|
19
|
+
const isGlobalReceiverName = (name) => setHas(globalReceiverNameSet, name);
|
|
36
20
|
const getStaticPropertyName = (node, computed) => {
|
|
37
21
|
if (!computed && node.type === AST_NODE_TYPES.Identifier) {
|
|
38
22
|
return node.name;
|
|
@@ -61,45 +45,33 @@ const isMemberAbortControllerConstructor = (callee) => callee.type === AST_NODE_
|
|
|
61
45
|
const isAbortControllerConstructor = (context, callee) => isDirectAbortControllerConstructor(context, callee) ||
|
|
62
46
|
isMemberAbortControllerConstructor(callee);
|
|
63
47
|
const isDiscardedAbortControllerHandle = (node) => {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
while (parent !== undefined) {
|
|
67
|
-
const wrappedExpression = getTransparentWrappedExpression(parent);
|
|
68
|
-
if (wrappedExpression === current) {
|
|
69
|
-
current = parent;
|
|
70
|
-
parent = getParentNode(current);
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
|
|
74
|
-
parent.expression === current) {
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
if (parent.type === AST_NODE_TYPES.UnaryExpression &&
|
|
78
|
-
parent.operator === "void" &&
|
|
79
|
-
parent.argument === current) {
|
|
80
|
-
const unaryParent = getParentNode(parent);
|
|
81
|
-
return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
|
|
82
|
-
}
|
|
48
|
+
const opaqueParent = getFirstOpaqueParent(node);
|
|
49
|
+
if (!isDefined(opaqueParent)) {
|
|
83
50
|
return false;
|
|
84
51
|
}
|
|
52
|
+
const { current, parent } = opaqueParent;
|
|
53
|
+
if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
|
|
54
|
+
parent.expression === current) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
if (parent.type === AST_NODE_TYPES.UnaryExpression &&
|
|
58
|
+
parent.operator === "void" &&
|
|
59
|
+
parent.argument === current) {
|
|
60
|
+
const unaryParent = getParentNode(parent);
|
|
61
|
+
return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
|
|
62
|
+
}
|
|
85
63
|
return false;
|
|
86
64
|
};
|
|
87
65
|
const isImmediateAbortSignalAccess = (node) => {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const wrappedExpression = getTransparentWrappedExpression(parent);
|
|
92
|
-
if (wrappedExpression === current) {
|
|
93
|
-
current = parent;
|
|
94
|
-
parent = getParentNode(current);
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
return (parent.type === AST_NODE_TYPES.MemberExpression &&
|
|
98
|
-
parent.object === current &&
|
|
99
|
-
!parent.optional &&
|
|
100
|
-
getStaticPropertyName(parent.property, parent.computed) === "signal");
|
|
66
|
+
const opaqueParent = getFirstOpaqueParent(node);
|
|
67
|
+
if (!isDefined(opaqueParent)) {
|
|
68
|
+
return false;
|
|
101
69
|
}
|
|
102
|
-
|
|
70
|
+
const { current, parent } = opaqueParent;
|
|
71
|
+
return (parent.type === AST_NODE_TYPES.MemberExpression &&
|
|
72
|
+
parent.object === current &&
|
|
73
|
+
!parent.optional &&
|
|
74
|
+
getStaticPropertyName(parent.property, parent.computed) === "signal");
|
|
103
75
|
};
|
|
104
76
|
/** Rule implementation for `runtime-cleanup/no-floating-abort-controllers`. */
|
|
105
77
|
const noFloatingAbortControllers = createTypedRule({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-abort-controllers.js","sourceRoot":"","sources":["../../src/rules/no-floating-abort-controllers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACH,cAAc,GAGjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-floating-abort-controllers.js","sourceRoot":"","sources":["../../src/rules/no-floating-abort-controllers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-audio-contexts.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-audio-contexts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-floating-audio-contexts.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-audio-contexts.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAmGlC,4EAA4E;AAC5E,QAAA,MAAM,uBAAuB,EAAE,QAAQ,CAAC,UAAU,CAC9C,sBAAsB,EACtB,SAAS,EAAE,CAoDb,CAAC;AAEH,eAAe,uBAAuB,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Require AudioContext instances to be retained so they can be closed.
|
|
4
4
|
*/
|
|
5
5
|
import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
|
|
6
|
+
import { arrayFirst, isDefined, setHas } from "ts-extras";
|
|
6
7
|
import { collectStaticMemberPath, isDiscardedResourceExpression, isImmediateUnownedMemberReceiver, } from "../_internal/floating-resource.js";
|
|
7
8
|
import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
|
|
8
9
|
import { getVariableInScopeChain } from "../_internal/scope-variable.js";
|
|
@@ -15,7 +16,7 @@ const cleanupMemberNames = new Set(["close"]);
|
|
|
15
16
|
const globalReceiverNames = ["globalThis", "self", "window"];
|
|
16
17
|
const audioContextConstructorNameSet = new Set(audioContextConstructorNames);
|
|
17
18
|
const globalReceiverNameSet = new Set(globalReceiverNames);
|
|
18
|
-
const isAudioContextConstructorName = (name) => audioContextConstructorNameSet
|
|
19
|
+
const isAudioContextConstructorName = (name) => setHas(audioContextConstructorNameSet, name);
|
|
19
20
|
const isShadowedIdentifier = (context, identifier) => {
|
|
20
21
|
const scope = context.sourceCode.getScope(identifier);
|
|
21
22
|
const variable = getVariableInScopeChain(scope, identifier.name);
|
|
@@ -37,13 +38,13 @@ const getMemberAudioContextConstructorName = (callee) => {
|
|
|
37
38
|
if (path?.length !== 2) {
|
|
38
39
|
return undefined;
|
|
39
40
|
}
|
|
40
|
-
const receiverName = path
|
|
41
|
-
if (receiverName
|
|
42
|
-
!globalReceiverNameSet
|
|
41
|
+
const receiverName = arrayFirst(path);
|
|
42
|
+
if (!isDefined(receiverName) ||
|
|
43
|
+
!setHas(globalReceiverNameSet, receiverName)) {
|
|
43
44
|
return undefined;
|
|
44
45
|
}
|
|
45
46
|
const constructorName = path[1];
|
|
46
|
-
return constructorName
|
|
47
|
+
return isDefined(constructorName) &&
|
|
47
48
|
isAudioContextConstructorName(constructorName)
|
|
48
49
|
? constructorName
|
|
49
50
|
: undefined;
|
|
@@ -56,7 +57,7 @@ const noFloatingAudioContexts = createTypedRule({
|
|
|
56
57
|
return {
|
|
57
58
|
NewExpression(node) {
|
|
58
59
|
const constructorName = getAudioContextConstructorName(context, node.callee);
|
|
59
|
-
if (constructorName
|
|
60
|
+
if (!isDefined(constructorName) ||
|
|
60
61
|
(!isDiscardedResourceExpression(node) &&
|
|
61
62
|
!isImmediateUnownedMemberReceiver(node, cleanupMemberNames))) {
|
|
62
63
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-audio-contexts.js","sourceRoot":"","sources":["../../src/rules/no-floating-audio-contexts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-floating-audio-contexts.js","sourceRoot":"","sources":["../../src/rules/no-floating-audio-contexts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-broadcast-channels.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-broadcast-channels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-floating-broadcast-channels.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-broadcast-channels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA8IlC,gFAAgF;AAChF,QAAA,MAAM,2BAA2B,EAAE,QAAQ,CAAC,UAAU,CAClD,0BAA0B,EAC1B,SAAS,EAAE,CA2Cb,CAAC;AAEH,eAAe,2BAA2B,CAAC"}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* Require BroadcastChannel handles to be retained so they can be closed.
|
|
4
4
|
*/
|
|
5
5
|
import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
|
|
6
|
+
import { isDefined, setHas } from "ts-extras";
|
|
6
7
|
import { getParentNode } from "../_internal/ast-node.js";
|
|
8
|
+
import { getFirstOpaqueParent } from "../_internal/floating-resource.js";
|
|
7
9
|
import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
|
|
8
10
|
import { getVariableInScopeChain } from "../_internal/scope-variable.js";
|
|
9
11
|
import { createTypedRule, } from "../_internal/typed-rule.js";
|
|
@@ -14,25 +16,7 @@ const globalReceiverNames = [
|
|
|
14
16
|
"window",
|
|
15
17
|
];
|
|
16
18
|
const globalReceiverNameSet = new Set(globalReceiverNames);
|
|
17
|
-
const isGlobalReceiverName = (name) => globalReceiverNameSet
|
|
18
|
-
const getTransparentWrappedExpression = (node) => {
|
|
19
|
-
if (node.type === AST_NODE_TYPES.ChainExpression) {
|
|
20
|
-
return node.expression;
|
|
21
|
-
}
|
|
22
|
-
if (node.type === AST_NODE_TYPES.TSAsExpression) {
|
|
23
|
-
return node.expression;
|
|
24
|
-
}
|
|
25
|
-
if (node.type === AST_NODE_TYPES.TSNonNullExpression) {
|
|
26
|
-
return node.expression;
|
|
27
|
-
}
|
|
28
|
-
if (node.type === AST_NODE_TYPES.TSSatisfiesExpression) {
|
|
29
|
-
return node.expression;
|
|
30
|
-
}
|
|
31
|
-
if (node.type === AST_NODE_TYPES.TSTypeAssertion) {
|
|
32
|
-
return node.expression;
|
|
33
|
-
}
|
|
34
|
-
return undefined;
|
|
35
|
-
};
|
|
19
|
+
const isGlobalReceiverName = (name) => setHas(globalReceiverNameSet, name);
|
|
36
20
|
const getStaticPropertyName = (node, computed) => {
|
|
37
21
|
if (!computed && node.type === AST_NODE_TYPES.Identifier) {
|
|
38
22
|
return node.name;
|
|
@@ -61,52 +45,40 @@ const isMemberBroadcastChannelConstructor = (callee) => callee.type === AST_NODE
|
|
|
61
45
|
const isBroadcastChannelConstructor = (context, callee) => isDirectBroadcastChannelConstructor(context, callee) ||
|
|
62
46
|
isMemberBroadcastChannelConstructor(callee);
|
|
63
47
|
const isDiscardedBroadcastChannel = (node) => {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
while (parent !== undefined) {
|
|
67
|
-
const wrappedExpression = getTransparentWrappedExpression(parent);
|
|
68
|
-
if (wrappedExpression === current) {
|
|
69
|
-
current = parent;
|
|
70
|
-
parent = getParentNode(current);
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
|
|
74
|
-
parent.expression === current) {
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
if (parent.type === AST_NODE_TYPES.UnaryExpression &&
|
|
78
|
-
parent.operator === "void" &&
|
|
79
|
-
parent.argument === current) {
|
|
80
|
-
const unaryParent = getParentNode(parent);
|
|
81
|
-
return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
|
|
82
|
-
}
|
|
48
|
+
const opaqueParent = getFirstOpaqueParent(node);
|
|
49
|
+
if (!isDefined(opaqueParent)) {
|
|
83
50
|
return false;
|
|
84
51
|
}
|
|
52
|
+
const { current, parent } = opaqueParent;
|
|
53
|
+
if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
|
|
54
|
+
parent.expression === current) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
if (parent.type === AST_NODE_TYPES.UnaryExpression &&
|
|
58
|
+
parent.operator === "void" &&
|
|
59
|
+
parent.argument === current) {
|
|
60
|
+
const unaryParent = getParentNode(parent);
|
|
61
|
+
return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
|
|
62
|
+
}
|
|
85
63
|
return false;
|
|
86
64
|
};
|
|
87
65
|
const isImmediateBroadcastChannelMethodReceiver = (node) => {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const wrappedExpression = getTransparentWrappedExpression(parent);
|
|
92
|
-
if (wrappedExpression === current) {
|
|
93
|
-
current = parent;
|
|
94
|
-
parent = getParentNode(current);
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
if (parent.type !== AST_NODE_TYPES.MemberExpression ||
|
|
98
|
-
parent.object !== current ||
|
|
99
|
-
parent.optional) {
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
if (getStaticPropertyName(parent.property, parent.computed) === "close") {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
const callExpression = getParentNode(parent);
|
|
106
|
-
return (callExpression?.type === AST_NODE_TYPES.CallExpression &&
|
|
107
|
-
callExpression.callee === parent);
|
|
66
|
+
const opaqueParent = getFirstOpaqueParent(node);
|
|
67
|
+
if (!isDefined(opaqueParent)) {
|
|
68
|
+
return false;
|
|
108
69
|
}
|
|
109
|
-
|
|
70
|
+
const { current, parent } = opaqueParent;
|
|
71
|
+
if (parent.type !== AST_NODE_TYPES.MemberExpression ||
|
|
72
|
+
parent.object !== current ||
|
|
73
|
+
parent.optional) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
if (getStaticPropertyName(parent.property, parent.computed) === "close") {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
const callExpression = getParentNode(parent);
|
|
80
|
+
return (callExpression?.type === AST_NODE_TYPES.CallExpression &&
|
|
81
|
+
callExpression.callee === parent);
|
|
110
82
|
};
|
|
111
83
|
/** Rule implementation for `runtime-cleanup/no-floating-broadcast-channels`. */
|
|
112
84
|
const noFloatingBroadcastChannels = createTypedRule({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-broadcast-channels.js","sourceRoot":"","sources":["../../src/rules/no-floating-broadcast-channels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACH,cAAc,GAGjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-floating-broadcast-channels.js","sourceRoot":"","sources":["../../src/rules/no-floating-broadcast-channels.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-child-processes.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-child-processes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-floating-child-processes.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-child-processes.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAmWlC,6EAA6E;AAC7E,QAAA,MAAM,wBAAwB,EAAE,QAAQ,CAAC,UAAU,CAC/C,sBAAsB,EACtB,SAAS,EAAE,CAiDb,CAAC;AAEH,eAAe,wBAAwB,CAAC"}
|