eslint-plugin-sonarjs 4.0.1 → 4.0.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 +1 -1
- package/cjs/S100/rule.js +7 -5
- package/cjs/S101/rule.js +2 -2
- package/cjs/S104/rule.js +2 -2
- package/cjs/S105/rule.js +2 -2
- package/cjs/S1066/rule.js +5 -4
- package/cjs/S1067/rule.js +8 -6
- package/cjs/S1110/rule.js +7 -5
- package/cjs/S1119/rule.js +2 -2
- package/cjs/S1121/rule.js +4 -3
- package/cjs/S1125/rule.js +9 -8
- package/cjs/S1126/rule.js +2 -2
- package/cjs/S1128/rule.js +8 -5
- package/cjs/S1134/rule.js +2 -2
- package/cjs/S1135/rule.js +2 -2
- package/cjs/S1154/rule.js +6 -4
- package/cjs/S117/rule.js +6 -5
- package/cjs/S1172/rule.js +2 -2
- package/cjs/S1192/rule.js +5 -4
- package/cjs/S1219/rule.js +4 -3
- package/cjs/S1226/rule.js +6 -4
- package/cjs/S124/rule.js +2 -2
- package/cjs/S125/rule.js +9 -7
- package/cjs/S126/rule.js +2 -2
- package/cjs/S1264/rule.js +2 -2
- package/cjs/S128/rule.js +4 -3
- package/cjs/S1291/rule.js +2 -2
- package/cjs/S1301/rule.js +2 -2
- package/cjs/S1313/rule.js +2 -2
- package/cjs/S134/rule.js +7 -5
- package/cjs/S135/rule.js +5 -4
- package/cjs/S138/rule.js +9 -6
- package/cjs/S1439/rule.js +2 -2
- package/cjs/S1444/rule.js +2 -2
- package/cjs/S1451/rule.js +2 -2
- package/cjs/S1472/rule.js +2 -2
- package/cjs/S1479/rule.js +2 -2
- package/cjs/S1481/rule.js +2 -2
- package/cjs/S1488/rule.js +11 -7
- package/cjs/S1515/rule.js +10 -8
- package/cjs/S1523/rule.js +5 -5
- package/cjs/S1526/rule.js +5 -4
- package/cjs/S1527/rule.js +2 -2
- package/cjs/S1528/rule.js +2 -2
- package/cjs/S1529/rule.js +4 -3
- package/cjs/S1530/rule.js +5 -3
- package/cjs/S1533/rule.js +2 -2
- package/cjs/S1535/rule.js +2 -2
- package/cjs/S1541/rule.js +10 -7
- package/cjs/S1607/rule.js +22 -20
- package/cjs/S1764/rule.js +10 -7
- package/cjs/S1821/rule.js +2 -2
- package/cjs/S1848/rule.js +10 -7
- package/cjs/S1854/rule.js +18 -14
- package/cjs/S1862/rule.js +10 -8
- package/cjs/S1871/rule.js +21 -16
- package/cjs/S1874/rule.js +4 -3
- package/cjs/S1940/rule.js +2 -2
- package/cjs/S1994/rule.js +10 -7
- package/cjs/S2004/rule.js +9 -7
- package/cjs/S2068/rule.js +75 -12
- package/cjs/S2077/rule.js +10 -6
- package/cjs/S2092/rule.js +2 -2
- package/cjs/S2123/rule.js +2 -2
- package/cjs/S2137/rule.js +2 -2
- package/cjs/S2138/rule.js +4 -3
- package/cjs/S2187/rule.js +2 -2
- package/cjs/S2201/rule.js +8 -5
- package/cjs/S2208/rule.js +2 -2
- package/cjs/S2234/rule.js +15 -11
- package/cjs/S2245/rule.js +4 -3
- package/cjs/S2251/rule.js +5 -4
- package/cjs/S2255/rule.js +6 -5
- package/cjs/S2259/rule.js +14 -9
- package/cjs/S2301/rule.js +14 -9
- package/cjs/S2310/rule.js +14 -11
- package/cjs/S2392/rule.js +7 -5
- package/cjs/S2424/rule.js +2 -2
- package/cjs/S2428/rule.js +8 -6
- package/cjs/S2486/rule.js +4 -3
- package/cjs/S2589/rule.js +12 -10
- package/cjs/S2598/rule.js +17 -14
- package/cjs/S2612/generated-meta.js +1 -1
- package/cjs/S2612/rule.js +8 -6
- package/cjs/S2639/rule.js +2 -2
- package/cjs/S2681/rule.js +2 -2
- package/cjs/S2692/rule.js +6 -4
- package/cjs/S2699/rule.js +40 -31
- package/cjs/S2703/rule.js +2 -2
- package/cjs/S2737/rule.js +6 -4
- package/cjs/S2755/rule.js +9 -6
- package/cjs/S2757/rule.js +2 -2
- package/cjs/S2817/rule.js +10 -7
- package/cjs/S2819/rule.js +16 -12
- package/cjs/S2870/rule.js +8 -5
- package/cjs/S2871/rule.js +12 -9
- package/cjs/S2970/rule.js +9 -8
- package/cjs/S2990/rule.js +2 -2
- package/cjs/S2999/rule.js +10 -7
- package/cjs/S3001/rule.js +2 -2
- package/cjs/S3003/rule.js +10 -7
- package/cjs/S3317/rule.js +4 -3
- package/cjs/S3330/rule.js +2 -2
- package/cjs/S3358/rule.js +2 -2
- package/cjs/S3402/rule.js +14 -10
- package/cjs/S3403/rule.js +10 -7
- package/cjs/S3415/rule.js +16 -13
- package/cjs/S3499/rule.js +5 -4
- package/cjs/S3500/rule.js +5 -4
- package/cjs/S3513/rule.js +5 -4
- package/cjs/S3514/rule.js +10 -7
- package/cjs/S3516/rule.js +10 -7
- package/cjs/S3524/rule.js +2 -2
- package/cjs/S3525/rule.js +6 -4
- package/cjs/S3531/rule.js +5 -3
- package/cjs/S3533/rule.js +8 -7
- package/cjs/S3579/rule.js +6 -4
- package/cjs/S3616/rule.js +6 -4
- package/cjs/S3626/rule.js +4 -3
- package/cjs/S3686/rule.js +7 -5
- package/cjs/S3699/rule.js +4 -3
- package/cjs/S3735/rule.js +8 -5
- package/cjs/S3757/rule.js +8 -6
- package/cjs/S3758/rule.js +9 -7
- package/cjs/S3760/rule.js +24 -21
- package/cjs/S3776/rule.js +26 -22
- package/cjs/S3782/rule.js +6 -4
- package/cjs/S3785/rule.js +9 -6
- package/cjs/S3796/rule.js +12 -8
- package/cjs/S3798/rule.js +4 -3
- package/cjs/S3800/rule.js +16 -11
- package/cjs/S3801/rule.js +15 -11
- package/cjs/S3827/rule.js +9 -6
- package/cjs/S3923/rule.js +9 -6
- package/cjs/S3972/rule.js +5 -4
- package/cjs/S3973/rule.js +7 -5
- package/cjs/S3981/rule.js +4 -3
- package/cjs/S3984/rule.js +4 -3
- package/cjs/S4030/rule.js +10 -7
- package/cjs/S4036/rule.js +7 -5
- package/cjs/S4043/rule.js +12 -8
- package/cjs/S4139/rule.js +7 -5
- package/cjs/S4143/rule.js +12 -9
- package/cjs/S4144/rule.js +12 -9
- package/cjs/S4158/rule.js +11 -8
- package/cjs/S4165/rule.js +14 -12
- package/cjs/S4322/rule.js +8 -5
- package/cjs/S4323/rule.js +4 -3
- package/cjs/S4324/rule.js +7 -5
- package/cjs/S4328/rule.js +2 -2
- package/cjs/S4335/rule.js +6 -4
- package/cjs/S4423/rule.js +4 -3
- package/cjs/S4423/rule.lib.js +8 -7
- package/cjs/S4426/rule.js +11 -10
- package/cjs/S4502/rule.js +16 -13
- package/cjs/S4507/rule.js +8 -6
- package/cjs/S4524/rule.js +2 -2
- package/cjs/S4619/rule.js +6 -4
- package/cjs/S4621/rule.js +5 -4
- package/cjs/S4622/rule.js +5 -3
- package/cjs/S4623/rule.js +8 -5
- package/cjs/S4624/rule.js +6 -4
- package/cjs/S4634/rule.js +4 -3
- package/cjs/S4721/rule.js +7 -5
- package/cjs/S4782/rule.js +7 -5
- package/cjs/S4784/rule.js +5 -4
- package/cjs/S4787/rule.js +9 -7
- package/cjs/S4790/rule.js +7 -5
- package/cjs/S4798/rule.js +2 -2
- package/cjs/S4817/rule.js +10 -8
- package/cjs/S4818/rule.js +4 -3
- package/cjs/S4822/rule.js +13 -9
- package/cjs/S4823/rule.js +4 -3
- package/cjs/S4829/rule.js +4 -3
- package/cjs/S4830/rule.js +11 -8
- package/cjs/S5042/rule.js +9 -7
- package/cjs/S5122/rule.js +40 -36
- package/cjs/S5148/rule.js +9 -8
- package/cjs/S5247/rule.js +22 -18
- package/cjs/S5256/rule.js +5 -4
- package/cjs/S5257/rule.js +4 -3
- package/cjs/S5260/rule.js +4 -3
- package/cjs/S5264/rule.js +4 -3
- package/cjs/S5332/rule.js +4 -3
- package/cjs/S5332/rule.lib.js +19 -17
- package/cjs/S5443/rule.js +2 -2
- package/cjs/S5527/rule.js +18 -14
- package/cjs/S5542/rule.js +6 -4
- package/cjs/S5547/rule.js +6 -4
- package/cjs/S5604/rule.js +15 -14
- package/cjs/S5659/rule.js +15 -12
- package/cjs/S5689/rule.js +11 -8
- package/cjs/S5691/rule.js +7 -5
- package/cjs/S5693/rule.js +14 -12
- package/cjs/S5725/rule.js +9 -6
- package/cjs/S5728/rule.js +7 -4
- package/cjs/S5730/rule.js +9 -6
- package/cjs/S5732/rule.js +8 -5
- package/cjs/S5734/rule.js +7 -4
- package/cjs/S5736/rule.js +8 -5
- package/cjs/S5739/rule.js +11 -8
- package/cjs/S5742/rule.js +7 -4
- package/cjs/S5743/rule.js +8 -6
- package/cjs/S5757/rule.js +13 -10
- package/cjs/S5759/rule.js +10 -7
- package/cjs/S5842/rule.js +2 -2
- package/cjs/S5843/rule.js +22 -19
- package/cjs/S5850/rule.js +4 -3
- package/cjs/S5852/rule.js +2 -2
- package/cjs/S5856/rule.js +10 -7
- package/cjs/S5860/rule.js +30 -26
- package/cjs/S5863/rule.js +15 -11
- package/cjs/S5867/rule.js +8 -7
- package/cjs/S5868/rule.js +7 -5
- package/cjs/S5869/rule.js +6 -5
- package/cjs/S5876/rule.js +12 -8
- package/cjs/S5958/rule.js +12 -9
- package/cjs/S5973/rule.js +10 -7
- package/cjs/S6019/rule.js +4 -3
- package/cjs/S6035/rule.js +2 -2
- package/cjs/S6079/rule.js +9 -6
- package/cjs/S6080/rule.js +13 -10
- package/cjs/S6092/rule.js +9 -7
- package/cjs/S6245/rule.js +14 -9
- package/cjs/S6249/rule.js +7 -5
- package/cjs/S6252/rule.js +12 -8
- package/cjs/S6265/rule.js +27 -20
- package/cjs/S6268/rule.js +5 -4
- package/cjs/S6270/rule.js +12 -9
- package/cjs/S6275/rule.js +2 -2
- package/cjs/S6281/rule.js +22 -17
- package/cjs/S6299/rule.js +2 -2
- package/cjs/S6302/rule.js +6 -5
- package/cjs/S6303/rule.js +12 -10
- package/cjs/S6304/rule.js +6 -5
- package/cjs/S6308/rule.js +7 -5
- package/cjs/S6317/rule.js +5 -4
- package/cjs/S6319/rule.js +2 -2
- package/cjs/S6321/rule.js +25 -23
- package/cjs/S6323/rule.js +4 -3
- package/cjs/S6324/rule.js +2 -2
- package/cjs/S6326/rule.js +2 -2
- package/cjs/S6327/rule.js +2 -2
- package/cjs/S6328/rule.js +4 -3
- package/cjs/S6329/rule.js +7 -5
- package/cjs/S6330/rule.js +2 -2
- package/cjs/S6332/rule.js +2 -2
- package/cjs/S6333/rule.js +8 -6
- package/cjs/S6351/rule.js +22 -19
- package/cjs/S6353/rule.js +2 -2
- package/cjs/S6397/rule.js +2 -2
- package/cjs/S6418/rule.js +9 -24
- package/cjs/S6426/rule.js +5 -4
- package/cjs/S6437/rule.js +10 -7
- package/cjs/S6439/rule.js +9 -7
- package/cjs/S6442/rule.js +11 -8
- package/cjs/S6443/rule.js +9 -7
- package/cjs/S6486/rule.js +5 -4
- package/cjs/S6564/rule.js +4 -3
- package/cjs/S6594/rule.js +12 -8
- package/cjs/S6627/rule.js +6 -4
- package/cjs/S6759/rule.js +10 -6
- package/cjs/S6958/rule.js +2 -2
- package/cjs/S6959/rule.js +9 -6
- package/cjs/S7059/rule.js +8 -5
- package/cjs/S7639/rule.js +5 -4
- package/cjs/S7790/rule.js +7 -5
- package/cjs/S8441/rule.js +13 -9
- package/cjs/S881/rule.js +2 -2
- package/cjs/S888/rule.js +4 -3
- package/cjs/S930/rule.js +14 -12
- package/cjs/helpers/ast.js +11 -8
- package/cjs/helpers/aws/s3.js +9 -6
- package/cjs/helpers/chai.js +41 -43
- package/cjs/helpers/cookie-flag-check.js +19 -17
- package/cjs/helpers/{decorators/index.js → entropy.js} +16 -17
- package/cjs/helpers/express.js +127 -128
- package/cjs/helpers/mocha.js +50 -54
- package/cjs/helpers/regex/ast.js +7 -6
- package/cjs/helpers/regex/extract.js +11 -11
- package/cjs/helpers/regex/group.js +2 -2
- package/cjs/helpers/regex/location.js +2 -2
- package/cjs/helpers/regex/range.js +5 -4
- package/cjs/helpers/regex/rule-template.js +4 -3
- package/cjs/helpers/sinon.js +33 -36
- package/cjs/helpers/supertest.js +34 -37
- package/cjs/helpers/vitest.js +29 -32
- package/docs/file-permissions.md +1 -1
- package/package.json +39 -1
- package/types/helpers/ancestor.d.ts +1 -1
- package/types/helpers/aws/s3.d.ts +1 -1
- package/types/helpers/chai.d.ts +3 -5
- package/types/helpers/entropy.d.ts +1 -0
- package/types/helpers/express.d.ts +38 -43
- package/types/helpers/mocha.d.ts +19 -21
- package/types/helpers/regex/ast.d.ts +1 -1
- package/types/helpers/regex/rule-template.d.ts +1 -1
- package/types/helpers/sinon.d.ts +3 -5
- package/types/helpers/supertest.d.ts +3 -5
- package/types/helpers/type.d.ts +1 -1
- package/types/helpers/vitest.d.ts +3 -5
- package/cjs/helpers/aws/index.js +0 -35
- package/cjs/helpers/decorators/interceptor.js +0 -88
- package/cjs/helpers/index.js +0 -60
- package/cjs/helpers/recognizers/index.js +0 -37
- package/cjs/helpers/rule-detect-react.js +0 -29
- package/cjs/helpers/validate-version.js +0 -94
- package/types/helpers/aws/index.d.ts +0 -3
- package/types/helpers/decorators/index.d.ts +0 -2
- package/types/helpers/decorators/interceptor.d.ts +0 -16
- package/types/helpers/index.d.ts +0 -28
- package/types/helpers/recognizers/index.d.ts +0 -2
- package/types/helpers/rule-detect-react.d.ts +0 -2
- package/types/helpers/validate-version.d.ts +0 -13
package/README.md
CHANGED
|
@@ -182,7 +182,7 @@ If you have any questions, encounter any bugs, or have feature requests, please
|
|
|
182
182
|
| [expression-complexity](https://sonarsource.github.io/rspec/#/rspec/S1067/javascript) | Expressions should not be too complex | | | | | |
|
|
183
183
|
| [file-header](https://sonarsource.github.io/rspec/#/rspec/S1451/javascript) | Track lack of copyright and license headers | | | | | |
|
|
184
184
|
| [file-name-differ-from-class](https://sonarsource.github.io/rspec/#/rspec/S3317/javascript) | Default export names and file names should match | | | | | |
|
|
185
|
-
| [file-permissions](https://sonarsource.github.io/rspec/#/rspec/S2612/javascript) |
|
|
185
|
+
| [file-permissions](https://sonarsource.github.io/rspec/#/rspec/S2612/javascript) | File permissions should not be set to world-accessible values | ✅ | | | | |
|
|
186
186
|
| [file-uploads](https://sonarsource.github.io/rspec/#/rspec/S2598/javascript) | File uploads should be restricted | ✅ | | | | |
|
|
187
187
|
| [fixme-tag](https://sonarsource.github.io/rspec/#/rspec/S1134/javascript) | Track uses of "FIXME" tags | ✅ | | | | |
|
|
188
188
|
| [for-in](https://sonarsource.github.io/rspec/#/rspec/S1535/javascript) | "for...in" loops should filter properties before acting on them | | | | | |
|
package/cjs/S100/rule.js
CHANGED
|
@@ -51,7 +51,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
|
+
const collection_js_1 = require("../helpers/collection.js");
|
|
55
57
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
58
|
const functionExitSelector = [
|
|
57
59
|
':matches(',
|
|
@@ -78,7 +80,7 @@ const messages = {
|
|
|
78
80
|
renameFunction: "Rename this '{{function}}' function to match the regular expression '{{format}}'.",
|
|
79
81
|
};
|
|
80
82
|
exports.rule = {
|
|
81
|
-
meta: (0,
|
|
83
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, { messages }),
|
|
82
84
|
create(context) {
|
|
83
85
|
const format = context.options[0]?.format ?? DEFAULT_FORMAT;
|
|
84
86
|
const knowledgeStack = [];
|
|
@@ -112,7 +114,7 @@ exports.rule = {
|
|
|
112
114
|
});
|
|
113
115
|
},
|
|
114
116
|
[functionExitSelector]: (func) => {
|
|
115
|
-
if (func === (0,
|
|
117
|
+
if (func === (0, collection_js_1.last)(knowledgeStack)?.func) {
|
|
116
118
|
const knowledge = knowledgeStack.pop();
|
|
117
119
|
if (knowledge && !knowledge.returnsJSX) {
|
|
118
120
|
const { node } = knowledge;
|
|
@@ -130,10 +132,10 @@ exports.rule = {
|
|
|
130
132
|
}
|
|
131
133
|
},
|
|
132
134
|
ReturnStatement: (node) => {
|
|
133
|
-
const knowledge = (0,
|
|
135
|
+
const knowledge = (0, collection_js_1.last)(knowledgeStack);
|
|
134
136
|
const ancestors = context.sourceCode.getAncestors(node);
|
|
135
137
|
for (let i = ancestors.length - 1; i >= 0; i--) {
|
|
136
|
-
if (
|
|
138
|
+
if (ast_js_1.functionLike.has(ancestors[i].type)) {
|
|
137
139
|
const enclosingFunction = ancestors[i];
|
|
138
140
|
if (knowledge?.func === enclosingFunction && node.argument?.type.startsWith('JSX')) {
|
|
139
141
|
knowledge.returnsJSX = true;
|
package/cjs/S101/rule.js
CHANGED
|
@@ -51,14 +51,14 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
55
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
56
|
const DEFAULT_FORMAT = '^[A-Z][a-zA-Z0-9]*$';
|
|
57
57
|
const messages = {
|
|
58
58
|
renameClass: 'Rename {{symbolType}} "{{symbol}}" to match the regular expression {{format}}.',
|
|
59
59
|
};
|
|
60
60
|
exports.rule = {
|
|
61
|
-
meta: (0,
|
|
61
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, { messages }),
|
|
62
62
|
create(context) {
|
|
63
63
|
return {
|
|
64
64
|
ClassDeclaration: (node) => checkName(node, 'class', context),
|
package/cjs/S104/rule.js
CHANGED
|
@@ -52,14 +52,14 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
54
|
const rule_js_1 = require("../S138/rule.js");
|
|
55
|
-
const
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
57
57
|
const DEFAULT = 1000;
|
|
58
58
|
const messages = {
|
|
59
59
|
maxFileLine: 'This file has {{lineCount}} lines, which is greater than {{threshold}} authorized. Split it into smaller files.',
|
|
60
60
|
};
|
|
61
61
|
exports.rule = {
|
|
62
|
-
meta: (0,
|
|
62
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, { messages }),
|
|
63
63
|
create(context) {
|
|
64
64
|
const threshold = context.options[0]?.maximum ?? DEFAULT;
|
|
65
65
|
const sourceCode = context.sourceCode;
|
package/cjs/S105/rule.js
CHANGED
|
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
55
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
56
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
57
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
58
|
messages: {
|
|
59
59
|
replaceTab: 'Replace all tab characters in this file by sequences of white-spaces.',
|
|
60
60
|
},
|
package/cjs/S1066/rule.js
CHANGED
|
@@ -51,11 +51,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const location_js_1 = require("../helpers/location.js");
|
|
55
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
57
|
const message = 'Merge this if statement with the nested one.';
|
|
57
58
|
exports.rule = {
|
|
58
|
-
meta: (0,
|
|
59
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
59
60
|
messages: {
|
|
60
61
|
mergeNestedIfStatement: message,
|
|
61
62
|
},
|
|
@@ -71,11 +72,11 @@ exports.rule = {
|
|
|
71
72
|
const ifKeyword = context.sourceCode.getFirstToken(consequent);
|
|
72
73
|
const enclosingIfKeyword = context.sourceCode.getFirstToken(node);
|
|
73
74
|
if (ifKeyword && enclosingIfKeyword) {
|
|
74
|
-
(0,
|
|
75
|
+
(0, location_js_1.report)(context, {
|
|
75
76
|
messageId: 'mergeNestedIfStatement',
|
|
76
77
|
message,
|
|
77
78
|
loc: enclosingIfKeyword.loc,
|
|
78
|
-
}, [(0,
|
|
79
|
+
}, [(0, location_js_1.toSecondaryLocation)(ifKeyword, 'Nested "if" statement.')]);
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
},
|
package/cjs/S1067/rule.js
CHANGED
|
@@ -51,11 +51,13 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const collection_js_1 = require("../helpers/collection.js");
|
|
56
|
+
const location_js_1 = require("../helpers/location.js");
|
|
55
57
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
58
|
const DEFAULT = 3;
|
|
57
59
|
exports.rule = {
|
|
58
|
-
meta: (0,
|
|
60
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
59
61
|
create(context) {
|
|
60
62
|
const threshold = context.options[0]?.max ?? DEFAULT;
|
|
61
63
|
const statementLevel = [new ExpressionComplexity()];
|
|
@@ -63,7 +65,7 @@ exports.rule = {
|
|
|
63
65
|
'*': (node) => {
|
|
64
66
|
const tree = node;
|
|
65
67
|
if (isConditionalLike(tree)) {
|
|
66
|
-
const expr = (0,
|
|
68
|
+
const expr = (0, collection_js_1.last)(statementLevel);
|
|
67
69
|
expr.incrementNestedExprLevel();
|
|
68
70
|
expr.addOperator(getOperatorToken(tree, context));
|
|
69
71
|
}
|
|
@@ -74,7 +76,7 @@ exports.rule = {
|
|
|
74
76
|
'*:exit': (node) => {
|
|
75
77
|
const tree = node;
|
|
76
78
|
if (isConditionalLike(tree)) {
|
|
77
|
-
const expr = (0,
|
|
79
|
+
const expr = (0, collection_js_1.last)(statementLevel);
|
|
78
80
|
expr.decrementNestedExprLevel();
|
|
79
81
|
if (expr.isOnFirstExprLevel()) {
|
|
80
82
|
const operators = expr.getComplexityOperators();
|
|
@@ -138,8 +140,8 @@ function getOperatorToken(node, context) {
|
|
|
138
140
|
function reportIssue(node, operators, max, context) {
|
|
139
141
|
const complexity = operators.length;
|
|
140
142
|
const cost = complexity - max;
|
|
141
|
-
(0,
|
|
143
|
+
(0, location_js_1.report)(context, {
|
|
142
144
|
node: node,
|
|
143
145
|
message: `Reduce the number of conditional operators (${complexity}) used in the expression (maximum allowed ${max}).`,
|
|
144
|
-
}, operators.map(node => (0,
|
|
146
|
+
}, operators.map(node => (0, location_js_1.toSecondaryLocation)(node, '+1')), cost);
|
|
145
147
|
}
|
package/cjs/S1110/rule.js
CHANGED
|
@@ -51,7 +51,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const ancestor_js_1 = require("../helpers/ancestor.js");
|
|
56
|
+
const location_js_1 = require("../helpers/location.js");
|
|
55
57
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
58
|
/**
|
|
57
59
|
* Parts of the grammar that are required to have parentheses.
|
|
@@ -66,7 +68,7 @@ const parenthesized = {
|
|
|
66
68
|
ImportExpression: 'source',
|
|
67
69
|
};
|
|
68
70
|
exports.rule = {
|
|
69
|
-
meta: (0,
|
|
71
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, { hasSuggestions: true }),
|
|
70
72
|
create(context) {
|
|
71
73
|
return {
|
|
72
74
|
'*'(node) {
|
|
@@ -77,7 +79,7 @@ exports.rule = {
|
|
|
77
79
|
};
|
|
78
80
|
function checkRedundantParentheses(sourceCode, node, context) {
|
|
79
81
|
const parenthesesPairsAroundNode = getParenthesesPairsAround(sourceCode, node, node);
|
|
80
|
-
const parent = (0,
|
|
82
|
+
const parent = (0, ancestor_js_1.getParent)(context, node);
|
|
81
83
|
// Ignore parentheses pair from the parent node
|
|
82
84
|
if (!!parent && isInParentNodeParentheses(node, parent)) {
|
|
83
85
|
parenthesesPairsAroundNode.pop();
|
|
@@ -85,7 +87,7 @@ function checkRedundantParentheses(sourceCode, node, context) {
|
|
|
85
87
|
// One pair of parentheses is allowed for readability purposes
|
|
86
88
|
parenthesesPairsAroundNode.shift();
|
|
87
89
|
for (const parentheses of parenthesesPairsAroundNode) {
|
|
88
|
-
(0,
|
|
90
|
+
(0, location_js_1.report)(context, {
|
|
89
91
|
message: `Remove these redundant parentheses.`,
|
|
90
92
|
loc: parentheses.openingParenthesis.loc,
|
|
91
93
|
suggest: [
|
|
@@ -99,7 +101,7 @@ function checkRedundantParentheses(sourceCode, node, context) {
|
|
|
99
101
|
},
|
|
100
102
|
},
|
|
101
103
|
],
|
|
102
|
-
}, [(0,
|
|
104
|
+
}, [(0, location_js_1.toSecondaryLocation)(parentheses.closingParenthesis)]);
|
|
103
105
|
}
|
|
104
106
|
}
|
|
105
107
|
function getParenthesesPairsAround(sourceCode, start, end) {
|
package/cjs/S1119/rule.js
CHANGED
|
@@ -51,7 +51,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
55
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
56
|
const LOOP_TYPES = new Set([
|
|
57
57
|
'ForStatement',
|
|
@@ -67,7 +67,7 @@ function isSwitch(node) {
|
|
|
67
67
|
return node.type === 'SwitchStatement';
|
|
68
68
|
}
|
|
69
69
|
exports.rule = {
|
|
70
|
-
meta: (0,
|
|
70
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
71
71
|
messages: {
|
|
72
72
|
removeLabel: 'Refactor the code to remove this label and the need for it.',
|
|
73
73
|
},
|
package/cjs/S1121/rule.js
CHANGED
|
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const ancestor_js_1 = require("../helpers/ancestor.js");
|
|
55
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
57
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
58
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
59
|
messages: {
|
|
59
60
|
extractAssignment: 'Extract the assignment of "{{symbol}}" from this expression.',
|
|
60
61
|
},
|
|
@@ -63,7 +64,7 @@ exports.rule = {
|
|
|
63
64
|
return {
|
|
64
65
|
AssignmentExpression: (node) => {
|
|
65
66
|
const assignment = node;
|
|
66
|
-
const parent = (0,
|
|
67
|
+
const parent = (0, ancestor_js_1.getParent)(context, node);
|
|
67
68
|
if (parent &&
|
|
68
69
|
!isAssignmentStatement(parent) &&
|
|
69
70
|
!isEnclosingChain(parent) &&
|
package/cjs/S1125/rule.js
CHANGED
|
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
55
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
57
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
58
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
59
|
hasSuggestions: true,
|
|
59
60
|
messages: {
|
|
60
61
|
removeUnnecessaryBoolean: 'Refactor the code to avoid using this boolean literal.',
|
|
@@ -79,10 +80,10 @@ exports.rule = {
|
|
|
79
80
|
};
|
|
80
81
|
function checkBinaryExpression(expression) {
|
|
81
82
|
const { left, right, operator } = expression;
|
|
82
|
-
if ((0,
|
|
83
|
+
if ((0, ast_js_1.isBooleanLiteral)(left)) {
|
|
83
84
|
reportWithFix(left, fixer => getBinaryFix(fixer, expression, left, right, operator));
|
|
84
85
|
}
|
|
85
|
-
if ((0,
|
|
86
|
+
if ((0, ast_js_1.isBooleanLiteral)(right)) {
|
|
86
87
|
reportWithFix(right, fixer => getBinaryFix(fixer, expression, right, left, operator));
|
|
87
88
|
}
|
|
88
89
|
}
|
|
@@ -96,16 +97,16 @@ exports.rule = {
|
|
|
96
97
|
}
|
|
97
98
|
function checkLogicalExpression(expression) {
|
|
98
99
|
const { left, right, operator } = expression;
|
|
99
|
-
if ((0,
|
|
100
|
+
if ((0, ast_js_1.isBooleanLiteral)(left)) {
|
|
100
101
|
reportWithFix(left, fixer => getLogicalFix(fixer, expression, left, right, operator));
|
|
101
102
|
}
|
|
102
|
-
if (operator === '&&' && (0,
|
|
103
|
+
if (operator === '&&' && (0, ast_js_1.isBooleanLiteral)(right)) {
|
|
103
104
|
reportWithFix(right, fixer => getLogicalFix(fixer, expression, right, left, operator));
|
|
104
105
|
}
|
|
105
106
|
// ignore `x || true` and `x || false` expressions outside of conditional expressions and `if` statements
|
|
106
107
|
const parent = expression.parent;
|
|
107
108
|
if (operator === '||' &&
|
|
108
|
-
(0,
|
|
109
|
+
(0, ast_js_1.isBooleanLiteral)(right) &&
|
|
109
110
|
((parent.type === 'ConditionalExpression' && parent.test === expression) ||
|
|
110
111
|
parent.type === 'IfStatement')) {
|
|
111
112
|
reportWithFix(right, fixer => getLogicalFix(fixer, expression, right, left, operator));
|
|
@@ -128,7 +129,7 @@ exports.rule = {
|
|
|
128
129
|
}
|
|
129
130
|
function checkUnaryExpression(unaryExpression) {
|
|
130
131
|
const { argument } = unaryExpression;
|
|
131
|
-
if ((0,
|
|
132
|
+
if ((0, ast_js_1.isBooleanLiteral)(argument)) {
|
|
132
133
|
reportWithFix(argument, fixer => {
|
|
133
134
|
const booleanValue = argument.value;
|
|
134
135
|
const replacement = booleanValue ? 'false' : 'true';
|
package/cjs/S1126/rule.js
CHANGED
|
@@ -34,10 +34,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.rule = void 0;
|
|
37
|
-
const
|
|
37
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
38
38
|
const meta = __importStar(require("./generated-meta.js"));
|
|
39
39
|
exports.rule = {
|
|
40
|
-
meta: (0,
|
|
40
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
41
41
|
messages: {
|
|
42
42
|
replaceIfThenElseByReturn: 'Replace this if-then-else flow by a single return statement.',
|
|
43
43
|
suggest: 'Replace with single return statement',
|
package/cjs/S1128/rule.js
CHANGED
|
@@ -51,7 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const vue_js_1 = require("../helpers/vue.js");
|
|
56
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
57
|
+
const quickfix_js_1 = require("../helpers/quickfix.js");
|
|
55
58
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
59
|
const EXCLUDED_IMPORTS = new Set(['React']);
|
|
57
60
|
const JSDOC_TAGS = [
|
|
@@ -146,7 +149,7 @@ const JSDOC_TAGS = [
|
|
|
146
149
|
'@yields',
|
|
147
150
|
];
|
|
148
151
|
exports.rule = {
|
|
149
|
-
meta: (0,
|
|
152
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
150
153
|
messages: {
|
|
151
154
|
removeUnusedImport: `Remove this unused import of '{{symbol}}'.`,
|
|
152
155
|
suggestRemoveWholeStatement: `Remove this import statement`,
|
|
@@ -192,7 +195,7 @@ exports.rule = {
|
|
|
192
195
|
const jsDocComments = getJsDocComments(context);
|
|
193
196
|
for (const unused of unusedImports.filter(({ id: unused }) => !jsxIdentifiers.includes(unused.name) &&
|
|
194
197
|
!tsTypeIdentifiers.has(unused.name) &&
|
|
195
|
-
!(vueIdentifiers.has(unused.name) && (0,
|
|
198
|
+
!(vueIdentifiers.has(unused.name) && (0, vue_js_1.isInsideVueSetupScript)(unused, context)) &&
|
|
196
199
|
!jsxFactories.has(unused.name) &&
|
|
197
200
|
!jsDocComments.some(comment => comment.value.includes(unused.name)))) {
|
|
198
201
|
context.report({
|
|
@@ -246,7 +249,7 @@ function getSuggestion(context, { id, importDecl }) {
|
|
|
246
249
|
return {
|
|
247
250
|
messageId: 'suggestRemoveWholeStatement',
|
|
248
251
|
fix: fixer => {
|
|
249
|
-
return (0,
|
|
252
|
+
return (0, quickfix_js_1.removeNodeWithLeadingWhitespaces)(context, importDecl, fixer);
|
|
250
253
|
},
|
|
251
254
|
};
|
|
252
255
|
}
|
|
@@ -289,7 +292,7 @@ function getSuggestion(context, { id, importDecl }) {
|
|
|
289
292
|
function getJsxFactories(context) {
|
|
290
293
|
const factories = new Set();
|
|
291
294
|
const parserServices = context.sourceCode.parserServices;
|
|
292
|
-
if ((0,
|
|
295
|
+
if ((0, parser_services_js_1.isRequiredParserServices)(parserServices)) {
|
|
293
296
|
const compilerOptions = parserServices.program.getCompilerOptions();
|
|
294
297
|
if (compilerOptions.jsxFactory) {
|
|
295
298
|
factories.add(compilerOptions.jsxFactory);
|
package/cjs/S1134/rule.js
CHANGED
|
@@ -52,11 +52,11 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
54
|
const rule_js_1 = require("../S1135/rule.js");
|
|
55
|
-
const
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
57
57
|
const fixmePattern = 'fixme';
|
|
58
58
|
exports.rule = {
|
|
59
|
-
meta: (0,
|
|
59
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
60
60
|
messages: {
|
|
61
61
|
fixme: 'Take the required action to fix the issue indicated by this comment.',
|
|
62
62
|
},
|
package/cjs/S1135/rule.js
CHANGED
|
@@ -52,12 +52,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
54
|
exports.reportPatternInComment = reportPatternInComment;
|
|
55
|
-
const
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
57
57
|
const todoPattern = 'todo';
|
|
58
58
|
const letterPattern = /[\p{Letter}]/u;
|
|
59
59
|
exports.rule = {
|
|
60
|
-
meta: (0,
|
|
60
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
61
61
|
messages: {
|
|
62
62
|
completeTODO: 'Complete the task associated to this "TODO" comment.',
|
|
63
63
|
},
|
package/cjs/S1154/rule.js
CHANGED
|
@@ -55,21 +55,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
55
55
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
56
|
exports.rule = void 0;
|
|
57
57
|
const typescript_1 = __importDefault(require("typescript"));
|
|
58
|
-
const
|
|
58
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
59
|
+
const type_js_1 = require("../helpers/type.js");
|
|
60
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
59
61
|
const meta = __importStar(require("./generated-meta.js"));
|
|
60
62
|
exports.rule = {
|
|
61
|
-
meta: (0,
|
|
63
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
62
64
|
messages: {
|
|
63
65
|
uselessStringOp: '{{symbol}} is an immutable object; you must either store or return the result of the operation.',
|
|
64
66
|
},
|
|
65
67
|
}),
|
|
66
68
|
create(context) {
|
|
67
69
|
const services = context.sourceCode.parserServices;
|
|
68
|
-
if (!(0,
|
|
70
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
69
71
|
return {};
|
|
70
72
|
}
|
|
71
73
|
function isString(node) {
|
|
72
|
-
const type = (0,
|
|
74
|
+
const type = (0, type_js_1.getTypeFromTreeNode)(node, services);
|
|
73
75
|
return (type.flags & typescript_1.default.TypeFlags.StringLike) !== 0;
|
|
74
76
|
}
|
|
75
77
|
function getVariable(node) {
|
package/cjs/S117/rule.js
CHANGED
|
@@ -51,7 +51,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
55
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
57
|
const CAMEL_CASED = '^[_$A-Za-z][$A-Za-z0-9]*$';
|
|
57
58
|
const UPPER_CASED = '^[_$A-Z][_$A-Z0-9]+$';
|
|
@@ -60,7 +61,7 @@ const messages = {
|
|
|
60
61
|
renameSymbol: `Rename this {{symbolType}} "{{symbol}}" to match the regular expression {{format}}.`,
|
|
61
62
|
};
|
|
62
63
|
exports.rule = {
|
|
63
|
-
meta: (0,
|
|
64
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, { messages }),
|
|
64
65
|
create(context) {
|
|
65
66
|
return {
|
|
66
67
|
VariableDeclaration: (node) => checkVariable(node, context),
|
|
@@ -75,7 +76,7 @@ function checkVariable(decl, context) {
|
|
|
75
76
|
return;
|
|
76
77
|
}
|
|
77
78
|
for (const declaration of decl.declarations) {
|
|
78
|
-
for (const id of (0,
|
|
79
|
+
for (const id of (0, ast_js_1.resolveIdentifiers)(declaration.id)) {
|
|
79
80
|
raiseOnInvalidIdentifier(id, 'local variable', context);
|
|
80
81
|
}
|
|
81
82
|
}
|
|
@@ -85,7 +86,7 @@ function checkFunction(func, context) {
|
|
|
85
86
|
return;
|
|
86
87
|
}
|
|
87
88
|
for (const param of func.params) {
|
|
88
|
-
for (const id of (0,
|
|
89
|
+
for (const id of (0, ast_js_1.resolveIdentifiers)(param)) {
|
|
89
90
|
raiseOnInvalidIdentifier(id, 'parameter', context);
|
|
90
91
|
}
|
|
91
92
|
}
|
|
@@ -97,7 +98,7 @@ function checkProperty(prop, context) {
|
|
|
97
98
|
}
|
|
98
99
|
function checkCatch(catchh, context) {
|
|
99
100
|
if (catchh.param) {
|
|
100
|
-
for (const id of (0,
|
|
101
|
+
for (const id of (0, ast_js_1.resolveIdentifiers)(catchh.param)) {
|
|
101
102
|
raiseOnInvalidIdentifier(id, 'parameter', context);
|
|
102
103
|
}
|
|
103
104
|
}
|
package/cjs/S1172/rule.js
CHANGED
|
@@ -52,10 +52,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
54
|
exports.isParameterProperty = isParameterProperty;
|
|
55
|
-
const
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
57
57
|
exports.rule = {
|
|
58
|
-
meta: (0,
|
|
58
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
59
59
|
hasSuggestions: true,
|
|
60
60
|
messages: {
|
|
61
61
|
removeOrRenameParameter: 'Remove the unused function parameter "{{param}}" or rename it to "_{{param}}" to make intention explicit.',
|
package/cjs/S1192/rule.js
CHANGED
|
@@ -51,7 +51,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const location_js_1 = require("../helpers/location.js");
|
|
55
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
57
|
// Number of times a literal must be duplicated to trigger an issue
|
|
57
58
|
const MIN_LENGTH = 10;
|
|
@@ -72,7 +73,7 @@ const messages = {
|
|
|
72
73
|
defineConstant: message,
|
|
73
74
|
};
|
|
74
75
|
exports.rule = {
|
|
75
|
-
meta: (0,
|
|
76
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, { messages }),
|
|
76
77
|
create(context) {
|
|
77
78
|
const literalsByValue = new Map();
|
|
78
79
|
const { threshold, ignoreStrings } = {
|
|
@@ -102,8 +103,8 @@ exports.rule = {
|
|
|
102
103
|
for (const literals of literalsByValue.values()) {
|
|
103
104
|
if (literals.length >= threshold) {
|
|
104
105
|
const [primaryNode, ...secondaryNodes] = literals;
|
|
105
|
-
const secondaryIssues = secondaryNodes.map(node => (0,
|
|
106
|
-
(0,
|
|
106
|
+
const secondaryIssues = secondaryNodes.map(node => (0, location_js_1.toSecondaryLocation)(node, 'Duplication'));
|
|
107
|
+
(0, location_js_1.report)(context, {
|
|
107
108
|
message,
|
|
108
109
|
node: primaryNode,
|
|
109
110
|
data: { times: literals.length.toString() },
|
package/cjs/S1219/rule.js
CHANGED
|
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const collection_js_1 = require("../helpers/collection.js");
|
|
55
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
57
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
58
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
59
|
messages: {
|
|
59
60
|
removeLabel: 'Remove this misleading "{{label}}" label.',
|
|
60
61
|
},
|
|
@@ -68,7 +69,7 @@ exports.rule = {
|
|
|
68
69
|
stack.push(stack.pop() - 1);
|
|
69
70
|
}
|
|
70
71
|
function inCase() {
|
|
71
|
-
return (0,
|
|
72
|
+
return (0, collection_js_1.last)(stack);
|
|
72
73
|
}
|
|
73
74
|
return {
|
|
74
75
|
SwitchCase: () => {
|
package/cjs/S1226/rule.js
CHANGED
|
@@ -51,10 +51,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const ancestor_js_1 = require("../helpers/ancestor.js");
|
|
56
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
55
57
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
58
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
59
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
60
|
messages: {
|
|
59
61
|
noReassignment: 'Introduce a new variable or use its initial value before reassigning "{{reference}}".',
|
|
60
62
|
},
|
|
@@ -141,7 +143,7 @@ exports.rule = {
|
|
|
141
143
|
}
|
|
142
144
|
},
|
|
143
145
|
onCodePathSegmentLoop(_fromSegment, _toSegment, node) {
|
|
144
|
-
const parent = (0,
|
|
146
|
+
const parent = (0, ancestor_js_1.getParent)(context, node);
|
|
145
147
|
if (!isForEachLoopStart(node, parent)) {
|
|
146
148
|
return;
|
|
147
149
|
}
|
|
@@ -153,7 +155,7 @@ exports.rule = {
|
|
|
153
155
|
}
|
|
154
156
|
}
|
|
155
157
|
// In case of array or object pattern expression, the left hand side are not declared variables but simply identifiers
|
|
156
|
-
for (const name of (0,
|
|
158
|
+
for (const name of (0, ast_js_1.resolveIdentifiers)(parent.left, true).map(identifier => identifier.name)) {
|
|
157
159
|
variablesToCheck.add(name);
|
|
158
160
|
variablesToCheckInCurrentScope.add(name);
|
|
159
161
|
}
|
package/cjs/S124/rule.js
CHANGED
|
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
55
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
56
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
57
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
58
58
|
create(context) {
|
|
59
59
|
const options = context.options[0] || {};
|
|
60
60
|
const flags = options.flags || '';
|