eslint-plugin-etc-misc 1.1.1 → 1.1.2
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/README.md +3 -0
- package/dist/configs/all-strict.d.ts +1 -0
- package/dist/configs/all-strict.d.ts.map +1 -1
- package/dist/configs/all-strict.js +1 -0
- package/dist/configs/all-strict.js.map +1 -1
- package/dist/configs/all.d.ts +1 -0
- package/dist/configs/all.d.ts.map +1 -1
- package/dist/configs/all.js +1 -0
- package/dist/configs/all.js.map +1 -1
- package/dist/configs/minimal.d.ts +3 -0
- package/dist/configs/minimal.d.ts.map +1 -1
- package/dist/configs/minimal.js +3 -0
- package/dist/configs/minimal.js.map +1 -1
- package/dist/configs/recommended.d.ts +3 -0
- package/dist/configs/recommended.d.ts.map +1 -1
- package/dist/configs/recommended.js +3 -0
- package/dist/configs/recommended.js.map +1 -1
- package/dist/configs/strict-type-checked.d.ts +1 -0
- package/dist/configs/strict-type-checked.d.ts.map +1 -1
- package/dist/configs/strict-type-checked.js +1 -0
- package/dist/configs/strict-type-checked.js.map +1 -1
- package/dist/configs/strict.d.ts +1 -0
- package/dist/configs/strict.d.ts.map +1 -1
- package/dist/configs/strict.js +1 -0
- package/dist/configs/strict.js.map +1 -1
- package/dist/configs.d.ts +8 -7
- package/dist/configs.d.ts.map +1 -1
- package/dist/configs.js +1 -0
- package/dist/configs.js.map +1 -1
- package/dist/plugin.cjs +967 -404
- package/dist/plugin.cjs.map +4 -4
- package/dist/rules/no-function-declare-after-return.d.ts +19 -0
- package/dist/rules/no-function-declare-after-return.d.ts.map +1 -0
- package/dist/rules/no-function-declare-after-return.js +119 -0
- package/dist/rules/no-function-declare-after-return.js.map +1 -0
- package/dist/rules/no-use-extend-native.d.ts +9 -0
- package/dist/rules/no-use-extend-native.d.ts.map +1 -0
- package/dist/rules/no-use-extend-native.js +296 -0
- package/dist/rules/no-use-extend-native.js.map +1 -0
- package/dist/rules/no-vulnerable.d.ts +15 -0
- package/dist/rules/no-vulnerable.d.ts.map +1 -0
- package/dist/rules/no-vulnerable.js +182 -0
- package/dist/rules/no-vulnerable.js.map +1 -0
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +8 -0
- package/dist/rules.js.map +1 -1
- package/docs/docusaurus/package.json +5 -5
- package/docs/docusaurus/src/pages/index.module.css +2 -1
- package/docs/rules/no-function-declare-after-return.md +143 -0
- package/docs/rules/no-use-extend-native.md +89 -0
- package/docs/rules/no-vulnerable.md +110 -0
- package/package.json +26 -45
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { checkSync } from "recheck";
|
|
2
|
+
import { arrayFirst, isDefined, keyIn, setHas } from "ts-extras";
|
|
3
|
+
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
4
|
+
const getStaticStringValue = (node) => {
|
|
5
|
+
if (node.type === "Literal" && typeof node.value === "string") {
|
|
6
|
+
return node.value;
|
|
7
|
+
}
|
|
8
|
+
if (node.type === "TemplateLiteral" &&
|
|
9
|
+
node.expressions.length === 0 &&
|
|
10
|
+
node.quasis.length === 1) {
|
|
11
|
+
return arrayFirst(node.quasis)?.value.cooked ?? null;
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
};
|
|
15
|
+
const isNonSpreadArgument = (argument) => argument.type !== "SpreadElement";
|
|
16
|
+
const isRegExpConstructorCall = (node) => {
|
|
17
|
+
if (node.callee.type !== "Identifier" || node.callee.name !== "RegExp") {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (node.arguments.length === 0 || node.arguments.length > 2) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
const sourceArgument = arrayFirst(node.arguments);
|
|
24
|
+
if (!isDefined(sourceArgument) || !isNonSpreadArgument(sourceArgument)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const sourceValue = getStaticStringValue(sourceArgument);
|
|
28
|
+
if (sourceValue === null) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
const flagsArgument = node.arguments[1];
|
|
32
|
+
if (flagsArgument === undefined) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
if (flagsArgument.type === "SpreadElement") {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return isDefined(getStaticStringValue(flagsArgument));
|
|
39
|
+
};
|
|
40
|
+
const getStaticFlagsValue = (argument) => {
|
|
41
|
+
if (!isDefined(argument)) {
|
|
42
|
+
return "";
|
|
43
|
+
}
|
|
44
|
+
if (!isNonSpreadArgument(argument)) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
return getStaticStringValue(argument);
|
|
48
|
+
};
|
|
49
|
+
const getDiagnosticsErrorMessage = (error) => {
|
|
50
|
+
if (keyIn(error, "message") && typeof error.message === "string") {
|
|
51
|
+
return error.message;
|
|
52
|
+
}
|
|
53
|
+
return "No additional details provided.";
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Detect ReDoS-vulnerable regular expressions using `recheck`.
|
|
57
|
+
*/
|
|
58
|
+
const rule = ruleCreator({
|
|
59
|
+
create: (context, [rawOptions]) => {
|
|
60
|
+
const options = rawOptions ?? {};
|
|
61
|
+
const { ignoreErrors = true, permittableComplexities = [], ...recheckParameters } = options;
|
|
62
|
+
const allowedComplexities = new Set(permittableComplexities);
|
|
63
|
+
const reportDiagnostics = (node, source, flags) => {
|
|
64
|
+
const diagnostics = checkSync(source, flags, recheckParameters);
|
|
65
|
+
if (diagnostics.status === "safe") {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (diagnostics.status === "vulnerable") {
|
|
69
|
+
if (setHas(allowedComplexities, diagnostics.complexity.type)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
context.report({
|
|
73
|
+
data: {
|
|
74
|
+
summary: diagnostics.complexity.summary,
|
|
75
|
+
},
|
|
76
|
+
messageId: "vulnerable",
|
|
77
|
+
node,
|
|
78
|
+
});
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (ignoreErrors) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
context.report({
|
|
85
|
+
data: {
|
|
86
|
+
kind: diagnostics.error.kind,
|
|
87
|
+
message: getDiagnosticsErrorMessage(diagnostics.error),
|
|
88
|
+
},
|
|
89
|
+
messageId: "checkerError",
|
|
90
|
+
node,
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
return {
|
|
94
|
+
CallExpression: (node) => {
|
|
95
|
+
if (!isRegExpConstructorCall(node)) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const sourceArgument = arrayFirst(node.arguments);
|
|
99
|
+
if (!isDefined(sourceArgument) ||
|
|
100
|
+
!isNonSpreadArgument(sourceArgument)) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const source = getStaticStringValue(sourceArgument);
|
|
104
|
+
const secondArgument = node.arguments[1];
|
|
105
|
+
const flags = getStaticFlagsValue(secondArgument);
|
|
106
|
+
if (source === null || flags === null) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
reportDiagnostics(node, source, flags);
|
|
110
|
+
},
|
|
111
|
+
Literal: (node) => {
|
|
112
|
+
if (!(node.value instanceof RegExp)) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
reportDiagnostics(node, node.value.source, node.value.flags);
|
|
116
|
+
},
|
|
117
|
+
NewExpression: (node) => {
|
|
118
|
+
if (!isRegExpConstructorCall(node)) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const sourceArgument = arrayFirst(node.arguments);
|
|
122
|
+
if (!isDefined(sourceArgument) ||
|
|
123
|
+
!isNonSpreadArgument(sourceArgument)) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const source = getStaticStringValue(sourceArgument);
|
|
127
|
+
const secondArgument = node.arguments[1];
|
|
128
|
+
const flags = getStaticFlagsValue(secondArgument);
|
|
129
|
+
if (source === null || flags === null) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
reportDiagnostics(node, source, flags);
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
},
|
|
136
|
+
meta: {
|
|
137
|
+
defaultOptions: [{}],
|
|
138
|
+
deprecated: false,
|
|
139
|
+
docs: {
|
|
140
|
+
deprecated: false,
|
|
141
|
+
description: "disallow ReDoS-vulnerable regular expressions.",
|
|
142
|
+
frozen: false,
|
|
143
|
+
recommended: true,
|
|
144
|
+
url: "https://nick2bad4u.github.io/eslint-plugin-etc-misc/docs/rules/no-vulnerable",
|
|
145
|
+
},
|
|
146
|
+
hasSuggestions: false,
|
|
147
|
+
messages: {
|
|
148
|
+
checkerError: "ReDoS analysis failed ({{kind}}): {{message}}. Consider setting ignoreErrors to true for this pattern.",
|
|
149
|
+
vulnerable: "Potential ReDoS-vulnerable regular expression detected ({{summary}}).",
|
|
150
|
+
},
|
|
151
|
+
schema: [
|
|
152
|
+
{
|
|
153
|
+
additionalProperties: false,
|
|
154
|
+
description: "Configuration for ReDoS analysis, including recheck parameters and local rule behavior flags.",
|
|
155
|
+
properties: {
|
|
156
|
+
ignoreErrors: {
|
|
157
|
+
description: "Whether to suppress errors returned by the ReDoS analyzer.",
|
|
158
|
+
type: "boolean",
|
|
159
|
+
},
|
|
160
|
+
permittableComplexities: {
|
|
161
|
+
description: "List of vulnerable complexity categories to permit without reporting.",
|
|
162
|
+
items: {
|
|
163
|
+
enum: ["polynomial", "exponential"],
|
|
164
|
+
type: "string",
|
|
165
|
+
},
|
|
166
|
+
type: "array",
|
|
167
|
+
uniqueItems: true,
|
|
168
|
+
},
|
|
169
|
+
timeout: {
|
|
170
|
+
description: "Maximum analysis time budget in milliseconds passed through to recheck.",
|
|
171
|
+
type: ["number", "null"],
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
type: "object",
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
type: "problem",
|
|
178
|
+
},
|
|
179
|
+
name: "no-vulnerable",
|
|
180
|
+
});
|
|
181
|
+
export default rule;
|
|
182
|
+
//# sourceMappingURL=no-vulnerable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-vulnerable.js","sourceRoot":"","sources":["../../src/rules/no-vulnerable.ts"],"names":[],"mappings":"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"}
|
package/dist/rules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAsJpE,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAiNtE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EACnC,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CACnD,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CACnD,CAAC;AA+DxB;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CACtB,CAAC"}
|
package/dist/rules.js
CHANGED
|
@@ -25,6 +25,7 @@ import noDeprecated from "./rules/no-deprecated.js";
|
|
|
25
25
|
import noEnum from "./rules/no-enum.js";
|
|
26
26
|
import noExpressionEmptyLines from "./rules/no-expression-empty-lines.js";
|
|
27
27
|
import noForeach from "./rules/no-foreach.js";
|
|
28
|
+
import noFunctionDeclareAfterReturn from "./rules/no-function-declare-after-return.js";
|
|
28
29
|
import noImplicitAnyCatch from "./rules/no-implicit-any-catch.js";
|
|
29
30
|
import noIndexImport from "./rules/no-index-import.js";
|
|
30
31
|
import noInternalModules from "./rules/no-internal-modules.js";
|
|
@@ -49,8 +50,10 @@ import noUnnecessaryBreak from "./rules/no-unnecessary-break.js";
|
|
|
49
50
|
import noUnnecessaryInitialization from "./rules/no-unnecessary-initialization.js";
|
|
50
51
|
import noUnnecessaryTemplateLiteral from "./rules/no-unnecessary-template-literal.js";
|
|
51
52
|
import noUnusedDisable from "./rules/no-unused-disable.js";
|
|
53
|
+
import noUseExtendNative from "./rules/no-use-extend-native.js";
|
|
52
54
|
import noUselessGenerics from "./rules/no-useless-generics.js";
|
|
53
55
|
import noValueToString from "./rules/no-value-tostring.js";
|
|
56
|
+
import noVulnerable from "./rules/no-vulnerable.js";
|
|
54
57
|
import noWriteonly from "./rules/no-writeonly.js";
|
|
55
58
|
import objectFormat from "./rules/object-format.js";
|
|
56
59
|
import onlyExportName from "./rules/only-export-name.js";
|
|
@@ -147,6 +150,7 @@ const recommendedRuleNames = new Set([
|
|
|
147
150
|
"consistent-optional-props",
|
|
148
151
|
"no-assign-mutated-array",
|
|
149
152
|
"no-const-enum",
|
|
153
|
+
"no-function-declare-after-return",
|
|
150
154
|
"no-implicit-any-catch",
|
|
151
155
|
"no-internal",
|
|
152
156
|
"no-t",
|
|
@@ -154,6 +158,7 @@ const recommendedRuleNames = new Set([
|
|
|
154
158
|
"no-unnecessary-break",
|
|
155
159
|
"no-unnecessary-initialization",
|
|
156
160
|
"no-unnecessary-template-literal",
|
|
161
|
+
"no-vulnerable",
|
|
157
162
|
"throw-error",
|
|
158
163
|
"typescript/no-boolean-literal-type",
|
|
159
164
|
"typescript/prefer-readonly-array",
|
|
@@ -195,6 +200,7 @@ const baseRules = {
|
|
|
195
200
|
"no-enum": noEnum,
|
|
196
201
|
"no-expression-empty-lines": noExpressionEmptyLines,
|
|
197
202
|
"no-foreach": noForeach,
|
|
203
|
+
"no-function-declare-after-return": noFunctionDeclareAfterReturn,
|
|
198
204
|
"no-implicit-any-catch": noImplicitAnyCatch,
|
|
199
205
|
"no-index-import": noIndexImport,
|
|
200
206
|
"no-internal": noInternal,
|
|
@@ -219,8 +225,10 @@ const baseRules = {
|
|
|
219
225
|
"no-unnecessary-initialization": noUnnecessaryInitialization,
|
|
220
226
|
"no-unnecessary-template-literal": noUnnecessaryTemplateLiteral,
|
|
221
227
|
"no-unused-disable": noUnusedDisable,
|
|
228
|
+
"no-use-extend-native": noUseExtendNative,
|
|
222
229
|
"no-useless-generics": noUselessGenerics,
|
|
223
230
|
"no-value-tostring": noValueToString,
|
|
231
|
+
"no-vulnerable": noVulnerable,
|
|
224
232
|
"no-writeonly": noWriteonly,
|
|
225
233
|
"object-format": objectFormat,
|
|
226
234
|
"only-export-name": onlyExportName,
|
package/dist/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,19 +64,19 @@
|
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@docusaurus/module-type-aliases": "^3.10.1",
|
|
66
66
|
"@docusaurus/tsconfig": "^3.10.1",
|
|
67
|
-
"@eslint/config-inspector": "^2.0.
|
|
67
|
+
"@eslint/config-inspector": "^2.0.1",
|
|
68
68
|
"@mdx-js/react": "^3.1.1",
|
|
69
69
|
"@types/react": "^19.2.14",
|
|
70
70
|
"@types/react-dom": "^19.2.3",
|
|
71
71
|
"docusaurus-plugin-image-zoom": "^3.0.1",
|
|
72
|
-
"react": "^19.2.
|
|
73
|
-
"react-dom": "^19.2.
|
|
72
|
+
"react": "^19.2.6",
|
|
73
|
+
"react-dom": "^19.2.6",
|
|
74
74
|
"react-github-btn": "^1.4.0",
|
|
75
75
|
"typed-css-modules": "^0.9.1",
|
|
76
76
|
"typedoc": "^0.28.19",
|
|
77
77
|
"typedoc-docusaurus-theme": "^1.4.2",
|
|
78
78
|
"typedoc-plugin-coverage": "^4.0.3",
|
|
79
|
-
"typedoc-plugin-dt-links": "^2.0.
|
|
79
|
+
"typedoc-plugin-dt-links": "^2.0.54",
|
|
80
80
|
"typedoc-plugin-external-package-links": "^0.2.0",
|
|
81
81
|
"typedoc-plugin-markdown": "^4.11.0",
|
|
82
82
|
"typedoc-plugin-mdn-links": "^5.1.1",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"react": "^19.2.4",
|
|
91
91
|
"react-dom": "^19.2.4"
|
|
92
92
|
},
|
|
93
|
-
"packageManager": "npm@11.
|
|
93
|
+
"packageManager": "npm@11.14.1",
|
|
94
94
|
"engines": {
|
|
95
95
|
"node": ">=20.19.0"
|
|
96
96
|
},
|
|
@@ -497,7 +497,8 @@
|
|
|
497
497
|
block-size: 1.9rem;
|
|
498
498
|
font-family:
|
|
499
499
|
"Nerd Font Symbols", "Symbols Nerd Font Mono", "Symbols Nerd Font",
|
|
500
|
-
"FiraCode Nerd Font", var(--index-font-family-base)
|
|
500
|
+
"FiraCode Nerd Font", "Segoe UI Symbol", var(--index-font-family-base),
|
|
501
|
+
sans-serif, system-ui;
|
|
501
502
|
font-size: 1.12rem;
|
|
502
503
|
font-variant-ligatures: none;
|
|
503
504
|
inline-size: 1.9rem;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# no-function-declare-after-return
|
|
2
|
+
|
|
3
|
+
Disallow function declarations that appear after a `return` statement in the same block scope.
|
|
4
|
+
|
|
5
|
+
## Rule details
|
|
6
|
+
|
|
7
|
+
JavaScript hoists `function` declarations to the top of their enclosing scope,
|
|
8
|
+
which means the following code is syntactically valid and runs without errors:
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
function publicMethods(obj) {
|
|
12
|
+
if (obj instanceof CustomClass) {
|
|
13
|
+
return {
|
|
14
|
+
get: methodGetter(obj), // ← called before its declaration ❌
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function methodGetter(obj) { // ← declared after the return
|
|
18
|
+
// …
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Even though this works at runtime, it is a readability trap:
|
|
24
|
+
|
|
25
|
+
- A reader scanning the function top-to-bottom will encounter the call to
|
|
26
|
+
`methodGetter` before they see its definition.
|
|
27
|
+
- Newcomers unfamiliar with hoisting may not realize `methodGetter` is even in
|
|
28
|
+
scope at the call site.
|
|
29
|
+
- Linters such as `no-unreachable` do not flag this because the declaration is
|
|
30
|
+
not unreachable — it is hoisted.
|
|
31
|
+
|
|
32
|
+
This rule enforces that every `FunctionDeclaration` is placed **before** any
|
|
33
|
+
`ReturnStatement` in the same block scope, making hoisting irrelevant from a
|
|
34
|
+
readability perspective.
|
|
35
|
+
|
|
36
|
+
### Scope boundaries
|
|
37
|
+
|
|
38
|
+
This rule reports only when the function declaration is a **direct sibling** of
|
|
39
|
+
the `return` statement in the same statement list (`BlockStatement` or
|
|
40
|
+
`Program`).
|
|
41
|
+
|
|
42
|
+
- `return` inside `switch` cases is out of scope for this rule.
|
|
43
|
+
- Function declarations nested inside later `if`/`try`/`for` blocks are not directly targeted by this rule.
|
|
44
|
+
|
|
45
|
+
> **Note:** This rule targets only `FunctionDeclaration` nodes. Arrow functions,
|
|
46
|
+
> function expressions, generator functions, and async function expressions
|
|
47
|
+
> assigned to variables are **not** flagged — those are expression statements and
|
|
48
|
+
> are genuinely unreachable. Use `no-unreachable` for those cases.
|
|
49
|
+
|
|
50
|
+
## ❌ Incorrect
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
function outer() {
|
|
54
|
+
return 42;
|
|
55
|
+
function helper() {} // ← 'helper' should be moved before the return
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
function publicMethods(obj) {
|
|
61
|
+
if (obj) {
|
|
62
|
+
return {
|
|
63
|
+
set: methodSetter(obj),
|
|
64
|
+
get: methodGetter(obj),
|
|
65
|
+
};
|
|
66
|
+
function methodSetter(obj) { /* … */ } // ← should be before return
|
|
67
|
+
function methodGetter(obj) { /* … */ } // ← should be before return
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## ✅ Correct
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
function outer() {
|
|
76
|
+
function helper() {} // ← declared before the return
|
|
77
|
+
return helper();
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
function publicMethods(obj) {
|
|
83
|
+
function methodSetter(obj) { /* … */ } // ← before the return
|
|
84
|
+
function methodGetter(obj) { /* … */ } // ← before the return
|
|
85
|
+
if (obj) {
|
|
86
|
+
return {
|
|
87
|
+
set: methodSetter(obj),
|
|
88
|
+
get: methodGetter(obj),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
// Arrow functions and function expressions after return are NOT flagged —
|
|
96
|
+
// use no-unreachable for those.
|
|
97
|
+
function outer() {
|
|
98
|
+
return 1;
|
|
99
|
+
const arrow = () => {}; // not a FunctionDeclaration — not flagged here
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Autofix
|
|
104
|
+
|
|
105
|
+
This rule provides an **autofix**. When triggered, it moves the offending
|
|
106
|
+
`FunctionDeclaration` to immediately before the `ReturnStatement`, preserving
|
|
107
|
+
the correct indentation level.
|
|
108
|
+
|
|
109
|
+
When a function declaration has leading comments (including JSDoc), the fixer
|
|
110
|
+
moves those comments together with the declaration.
|
|
111
|
+
|
|
112
|
+
## Options
|
|
113
|
+
|
|
114
|
+
This rule has no options.
|
|
115
|
+
|
|
116
|
+
## When not to use it
|
|
117
|
+
|
|
118
|
+
- If your team relies on intentional hoisting patterns with thorough documentation,
|
|
119
|
+
you may disable this rule.
|
|
120
|
+
- If the function declaration lives in a different block scope from the return
|
|
121
|
+
statement (e.g., hoisted to the outer function while the return is inside an
|
|
122
|
+
`if`-block), the fix may require manual review to confirm the intended
|
|
123
|
+
placement.
|
|
124
|
+
|
|
125
|
+
## Further reading
|
|
126
|
+
|
|
127
|
+
- [MDN: Function declarations — Hoisting](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function#hoisting)
|
|
128
|
+
- [ESLint built-in: `no-unreachable`](https://eslint.org/docs/rules/no-unreachable)
|
|
129
|
+
|
|
130
|
+
## ESLint flat config example
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
import etcMisc from "eslint-plugin-etc-misc";
|
|
134
|
+
|
|
135
|
+
export default [
|
|
136
|
+
{
|
|
137
|
+
plugins: { "etc-misc": etcMisc },
|
|
138
|
+
rules: {
|
|
139
|
+
"etc-misc/no-function-declare-after-return": "warn",
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
];
|
|
143
|
+
```
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# no-use-extend-native
|
|
2
|
+
|
|
3
|
+
Disallow usage of non-native members on built-in JavaScript objects.
|
|
4
|
+
|
|
5
|
+
## Rule details
|
|
6
|
+
|
|
7
|
+
This rule helps prevent implicit reliance on monkey-patched native prototypes (for example from legacy libraries that add methods like `String.prototype.green`).
|
|
8
|
+
|
|
9
|
+
Relying on extended native objects can make code unpredictable across runtimes, bundling targets, and dependency versions.
|
|
10
|
+
|
|
11
|
+
This rule reports member usage on obvious built-in values when the accessed member is not part of the native API.
|
|
12
|
+
|
|
13
|
+
## Targeted pattern scope
|
|
14
|
+
|
|
15
|
+
This rule is intentionally conservative and focuses on obvious built-in object shapes such as:
|
|
16
|
+
|
|
17
|
+
- String/number/boolean/regexp literals.
|
|
18
|
+
- Array/object literals.
|
|
19
|
+
- `new` expressions for built-ins.
|
|
20
|
+
- `String.prototype.<member>` / `Array.prototype.<member>` style accesses.
|
|
21
|
+
|
|
22
|
+
It does **not** attempt full-flow inference for arbitrary identifiers.
|
|
23
|
+
|
|
24
|
+
## ❌ Incorrect
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
const value = "unicorn".green;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
const value = [].customFunction();
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
const value = String.prototype.shortHash();
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## ✅ Correct
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
const value = "unicorn".toUpperCase();
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
const value = [].map((entry) => entry);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
const value = String.prototype.toLowerCase.call("ABC");
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Options
|
|
53
|
+
|
|
54
|
+
This rule has no options.
|
|
55
|
+
|
|
56
|
+
## Relationship to ESLint `no-extend-native`
|
|
57
|
+
|
|
58
|
+
- ESLint core [`no-extend-native`](https://eslint.org/docs/latest/rules/no-extend-native) prevents adding properties to native prototypes.
|
|
59
|
+
- This rule prevents consuming non-native members when they appear in code.
|
|
60
|
+
|
|
61
|
+
Using both rules together gives better protection:
|
|
62
|
+
|
|
63
|
+
1. Prevent introducing prototype extension.
|
|
64
|
+
2. Prevent relying on prototype extension from third-party code.
|
|
65
|
+
|
|
66
|
+
## When not to use it
|
|
67
|
+
|
|
68
|
+
- If your project intentionally and explicitly relies on controlled prototype extension.
|
|
69
|
+
- If your runtime environment guarantees specific prototype patches and that dependency is accepted in your architecture.
|
|
70
|
+
|
|
71
|
+
## Further reading
|
|
72
|
+
|
|
73
|
+
- [ESLint `no-extend-native`](https://eslint.org/docs/latest/rules/no-extend-native)
|
|
74
|
+
- [MDN: Inheritance and the prototype chain](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)
|
|
75
|
+
|
|
76
|
+
## ESLint flat config example
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
import etcMisc from "eslint-plugin-etc-misc";
|
|
80
|
+
|
|
81
|
+
export default [
|
|
82
|
+
{
|
|
83
|
+
plugins: { "etc-misc": etcMisc },
|
|
84
|
+
rules: {
|
|
85
|
+
"etc-misc/no-use-extend-native": "error",
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
];
|
|
89
|
+
```
|