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
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Predicate helpers for narrowing `TSTypeReference` nodes by identifier name.
|
|
4
|
+
*/
|
|
5
|
+
import { type TSESTree } from "@typescript-eslint/utils";
|
|
2
6
|
/**
|
|
3
7
|
* Checks whether a type node is an identifier-based type reference with a
|
|
4
8
|
* specific symbol name.
|
|
5
9
|
*
|
|
6
10
|
* @param node - Type node candidate.
|
|
7
|
-
* @param
|
|
11
|
+
* @param expectedIdentifierName - Expected referenced identifier name.
|
|
8
12
|
*
|
|
9
13
|
* @returns `true` when the node is `TSTypeReference` and the referenced
|
|
10
14
|
* `typeName` identifier matches exactly.
|
|
11
15
|
*/
|
|
12
|
-
export declare const isIdentifierTypeReference: (node: Readonly<TSESTree.TypeNode>,
|
|
13
|
-
typeName: TSESTree.Identifier;
|
|
14
|
-
};
|
|
16
|
+
export declare const isIdentifierTypeReference: (node: Readonly<TSESTree.TypeNode>, expectedIdentifierName: string) => node is TSESTree.TSTypeReference;
|
|
15
17
|
/**
|
|
16
18
|
* Unwrap transparent parenthesized type nodes.
|
|
17
19
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-reference-node.d.ts","sourceRoot":"","sources":["../../src/_internal/type-reference-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"type-reference-node.d.ts","sourceRoot":"","sources":["../../src/_internal/type-reference-node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AASzE;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GAClC,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACjC,wBAAwB,MAAM,KAC/B,IAAI,IAAI,QAAQ,CAAC,eAG6B,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GACpC,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAClC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAa5B,CAAC"}
|
|
@@ -12,14 +12,14 @@ const isTypeNodeLike = (value) => typeof value === "object" &&
|
|
|
12
12
|
* specific symbol name.
|
|
13
13
|
*
|
|
14
14
|
* @param node - Type node candidate.
|
|
15
|
-
* @param
|
|
15
|
+
* @param expectedIdentifierName - Expected referenced identifier name.
|
|
16
16
|
*
|
|
17
17
|
* @returns `true` when the node is `TSTypeReference` and the referenced
|
|
18
18
|
* `typeName` identifier matches exactly.
|
|
19
19
|
*/
|
|
20
|
-
export const isIdentifierTypeReference = (node,
|
|
20
|
+
export const isIdentifierTypeReference = (node, expectedIdentifierName) => node.type === AST_NODE_TYPES.TSTypeReference &&
|
|
21
21
|
node.typeName.type === AST_NODE_TYPES.Identifier &&
|
|
22
|
-
node.typeName.name ===
|
|
22
|
+
node.typeName.name === expectedIdentifierName;
|
|
23
23
|
/**
|
|
24
24
|
* Unwrap transparent parenthesized type nodes.
|
|
25
25
|
*
|
|
@@ -33,9 +33,9 @@ export const unwrapParenthesizedTypeNode = (node) => {
|
|
|
33
33
|
if (nodeType !== TS_PARENTHESIZED_TYPE) {
|
|
34
34
|
return node;
|
|
35
35
|
}
|
|
36
|
-
const
|
|
37
|
-
return isTypeNodeLike(
|
|
38
|
-
? unwrapParenthesizedTypeNode(
|
|
36
|
+
const annotation = Reflect.get(nodeObject, "typeAnnotation");
|
|
37
|
+
return isTypeNodeLike(annotation)
|
|
38
|
+
? unwrapParenthesizedTypeNode(annotation)
|
|
39
39
|
: node;
|
|
40
40
|
};
|
|
41
41
|
//# sourceMappingURL=type-reference-node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-reference-node.js","sourceRoot":"","sources":["../../src/_internal/type-reference-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"type-reference-node.js","sourceRoot":"","sources":["../../src/_internal/type-reference-node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAiB,MAAM,0BAA0B,CAAC;AAEzE,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAEpD,MAAM,cAAc,GAAG,CAAC,KAAc,EAAwC,EAAE,CAC5E,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,QAAQ,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACrC,IAAiC,EACjC,sBAA8B,EACE,EAAE,CAClC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;IAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;IAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,sBAAsB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,IAAiC,EACN,EAAE;IAC7B,MAAM,UAAU,GAAW,IAAI,CAAC;IAChC,MAAM,QAAQ,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE1D,IAAI,QAAQ,KAAK,qBAAqB,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAEtE,OAAO,cAAc,CAAC,UAAU,CAAC;QAC7B,CAAC,CAAC,2BAA2B,CAAC,UAAU,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { UnknownArray } from "type-fest";
|
|
1
2
|
/**
|
|
2
3
|
* @packageDocumentation
|
|
3
4
|
* Internal shared utilities used by eslint-plugin-runtime-cleanup rule modules
|
|
@@ -30,7 +31,7 @@ interface RuntimeCleanupRuleDocs {
|
|
|
30
31
|
runtimeCleanupConfigs?: readonly RuntimeCleanupConfigReference[] | RuntimeCleanupConfigReference;
|
|
31
32
|
}
|
|
32
33
|
/** Shared typed-rule context contract used by helper utilities. */
|
|
33
|
-
type TypedRuleContext = Readonly<TSESLint.RuleContext<string,
|
|
34
|
+
type TypedRuleContext = Readonly<TSESLint.RuleContext<string, Readonly<UnknownArray>>>;
|
|
34
35
|
export type { TypedRuleContext };
|
|
35
36
|
/**
|
|
36
37
|
* Rule-creator wrapper used by plugin rules.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/typed-rule.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"typed-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/typed-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGtE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAO5F;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACxB,cAAc,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,iBAAiB,CAAC,CAAC;CACpE;AAED,KAAK,yBAAyB,GAAG,UAAU,CACvC,OAAO,WAAW,CAAC,WAAW,CAAC,sBAAsB,CAAC,CACzD,CAAC;AAEF;;;;;;;GAOG;AACH,UAAU,sBAAsB;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAChB,SAAS,6BAA6B,EAAE,GACxC,6BAA6B,CAAC;CACvC;AAED,mEAAmE;AACnE,KAAK,gBAAgB,GAAG,QAAQ,CAC5B,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CACvD,CAAC;AAEF,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,EAAE,yBAyD7B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAC7B,SAAS,gBAAgB,KAC1B,iBAcF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,gBAAgB,KAAG,OAS3D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,GACxC,SAAS,gBAAgB,KAC1B,iBAAiB,GAAG,SACiD,CAAC;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GACpC,SAAS,QAAQ,CAAC;IACd,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;CAC9C,CAAC,KACH,EAAE,CAAC,IAAI,GAAG,SASZ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
import { isDefined } from "ts-extras";
|
|
2
3
|
import { registerProgramSettingsForContext } from "./plugin-settings.js";
|
|
3
4
|
import { getRuleCatalogEntryForRuleNameOrNull } from "./rule-catalog.js";
|
|
4
5
|
import { createRuleDocsUrl } from "./rule-docs-url.js";
|
|
@@ -21,7 +22,7 @@ export const createTypedRule = (ruleDefinition) => {
|
|
|
21
22
|
const catalogEntry = getRuleCatalogEntryForRuleNameOrNull(ruleDefinition.name);
|
|
22
23
|
const createdRule = ESLintUtils.RuleCreator.withoutDocs(ruleDefinition);
|
|
23
24
|
const ruleDocs = createdRule.meta.docs;
|
|
24
|
-
if (ruleDocs
|
|
25
|
+
if (!isDefined(ruleDocs)) {
|
|
25
26
|
throw new TypeError(`Rule '${ruleDefinition.name}' must declare meta.docs.`);
|
|
26
27
|
}
|
|
27
28
|
const canonicalDocsUrl = createRuleDocsUrl(ruleDefinition.name);
|
|
@@ -51,9 +52,9 @@ export const createTypedRule = (ruleDefinition) => {
|
|
|
51
52
|
},
|
|
52
53
|
meta: {
|
|
53
54
|
...createdRule.meta,
|
|
54
|
-
...(metaDefaultOptions
|
|
55
|
-
? {}
|
|
56
|
-
: {
|
|
55
|
+
...(isDefined(metaDefaultOptions)
|
|
56
|
+
? { defaultOptions: metaDefaultOptions }
|
|
57
|
+
: {}),
|
|
57
58
|
docs: docsWithCatalog,
|
|
58
59
|
},
|
|
59
60
|
name: ruleDefinition.name,
|
|
@@ -113,7 +114,7 @@ export const getTypedRuleServicesOrUndefined = (context) => hasTypeServices(cont
|
|
|
113
114
|
export const getSignatureParameterTypeAt = (options) => {
|
|
114
115
|
const { checker, index, location, signature } = options;
|
|
115
116
|
const symbol = signature?.parameters[index];
|
|
116
|
-
if (symbol
|
|
117
|
+
if (!isDefined(symbol)) {
|
|
117
118
|
return undefined;
|
|
118
119
|
}
|
|
119
120
|
return checker.getTypeOfSymbolAtLocation(symbol, location);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-rule.js","sourceRoot":"","sources":["../../src/_internal/typed-rule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typed-rule.js","sourceRoot":"","sources":["../../src/_internal/typed-rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Shared safety checks for value-expression autofixes.
|
|
4
|
+
*/
|
|
5
|
+
import { type TSESTree } from "@typescript-eslint/utils";
|
|
2
6
|
/**
|
|
3
7
|
* Check whether a parent node is a transparent expression wrapper for `child`.
|
|
4
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-rewrite-autofix-safety.d.ts","sourceRoot":"","sources":["../../src/_internal/value-rewrite-autofix-safety.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"value-rewrite-autofix-safety.d.ts","sourceRoot":"","sources":["../../src/_internal/value-rewrite-autofix-safety.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAMzE;;GAEG;AACH,eAAO,MAAM,8BAA8B,GACvC,QAAQ,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC/B,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAC/B,OAsBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAClC,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KACpC,OAGmB,CAAC;AAEvB;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAC7C,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KACpC,OAmBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,GACpC,MAAM,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAC1C,OAUF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,GACxC,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,iBAAiB,CAAC,KACjE,IAAI,IAAI,QAAQ,CAAC,UAmCnB,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Shared safety checks for value-expression autofixes.
|
|
4
4
|
*/
|
|
5
5
|
import { AST_NODE_TYPES } from "@typescript-eslint/utils";
|
|
6
|
+
import { isDefined } from "ts-extras";
|
|
6
7
|
import { getParentNode } from "./ast-node.js";
|
|
7
8
|
/**
|
|
8
9
|
* Check whether a parent node is a transparent expression wrapper for `child`.
|
|
@@ -36,25 +37,16 @@ export const isOptionalChainExpression = (node) => node.type === AST_NODE_TYPES.
|
|
|
36
37
|
*/
|
|
37
38
|
export const isDirectReturnLikeExpressionPosition = (node) => {
|
|
38
39
|
let currentNode = node;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (isTransparentExpressionWrapper(parentNode, currentNode)) {
|
|
45
|
-
currentNode = parentNode;
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
if (parentNode.type === AST_NODE_TYPES.ReturnStatement &&
|
|
49
|
-
parentNode.argument === currentNode) {
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
if (parentNode.type === AST_NODE_TYPES.ArrowFunctionExpression &&
|
|
53
|
-
parentNode.body === currentNode) {
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
return false;
|
|
40
|
+
let parentNode = getParentNode(currentNode);
|
|
41
|
+
while (isDefined(parentNode) &&
|
|
42
|
+
isTransparentExpressionWrapper(parentNode, currentNode)) {
|
|
43
|
+
currentNode = parentNode;
|
|
44
|
+
parentNode = getParentNode(currentNode);
|
|
57
45
|
}
|
|
46
|
+
return ((parentNode?.type === AST_NODE_TYPES.ReturnStatement &&
|
|
47
|
+
parentNode.argument === currentNode) ||
|
|
48
|
+
(parentNode?.type === AST_NODE_TYPES.ArrowFunctionExpression &&
|
|
49
|
+
parentNode.body === currentNode));
|
|
58
50
|
};
|
|
59
51
|
/**
|
|
60
52
|
* Guard array index-to-helper rewrites known to be type-sensitive.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-rewrite-autofix-safety.js","sourceRoot":"","sources":["../../src/_internal/value-rewrite-autofix-safety.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"value-rewrite-autofix-safety.js","sourceRoot":"","sources":["../../src/_internal/value-rewrite-autofix-safety.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAiB,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC1C,MAA+B,EAC/B,KAA8B,EACvB,EAAE;IACT,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,qBAAqB,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACrC,IAAmC,EAC5B,EAAE,CACT,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;IAC5C,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB,CAAC;QAC3F,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEvB;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAChD,IAAmC,EAC5B,EAAE;IACT,IAAI,WAAW,GAA4B,IAAI,CAAC;IAEhD,IAAI,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAE5C,OACI,SAAS,CAAC,UAAU,CAAC;QACrB,8BAA8B,CAAC,UAAU,EAAE,WAAW,CAAC,EACzD,CAAC;QACC,WAAW,GAAG,UAAU,CAAC;QACzB,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,CACH,CAAC,UAAU,EAAE,IAAI,KAAK,cAAc,CAAC,eAAe;QAChD,UAAU,CAAC,QAAQ,KAAK,WAAW,CAAC;QACxC,CAAC,UAAU,EAAE,IAAI,KAAK,cAAc,CAAC,uBAAuB;YACxD,UAAU,CAAC,IAAI,KAAK,WAAW,CAAC,CACvC,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,IAAyC,EAClC,EAAE;IACT,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,oCAAoC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC3C,IAAgE,EACrC,EAAE;IAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,iBAAiB,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IACI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;QAC3C,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB;QAChD,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,qBAAqB;QAClD,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAC9C,CAAC;QACC,OAAO,+BAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,+BAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
|