eslint-plugin-sonarjs 4.0.0 → 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 +269 -268
- 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 +85 -7
- 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/generated-meta.js +1 -1
- package/cjs/S1488/rule.js +11 -7
- package/cjs/S1515/rule.js +10 -8
- package/cjs/{helpers/aws/index.js → S1523/generated-meta.js} +34 -18
- package/cjs/S1523/index.js +21 -0
- package/cjs/S1523/meta.js +21 -0
- package/cjs/S1523/rule.js +143 -0
- package/cjs/S1526/rule.js +5 -4
- package/cjs/S1527/rule.js +2 -2
- package/cjs/S1528/rule.js +2 -2
- package/cjs/S1529/generated-meta.js +1 -1
- 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/generated-meta.js +1 -1
- 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 +47 -5
- package/cjs/S2208/rule.js +2 -2
- package/cjs/S2234/rule.js +58 -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 +80 -9
- 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/generated-meta.js +1 -1
- 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 +22 -11
- package/cjs/S3801/generated-meta.js +1 -1
- 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/config.js +1 -1
- 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/generated-meta.js +1 -1
- package/cjs/S7059/rule.js +8 -5
- package/cjs/S7639/generated-meta.js +1 -1
- package/cjs/S7639/rule.js +5 -4
- package/cjs/S7790/generated-meta.js +1 -1
- package/cjs/S7790/rule.js +7 -5
- package/cjs/S8441/generated-meta.js +1 -1
- 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/configs.js +92 -0
- 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/find-up/all-in-parent-dirs.js +0 -16
- 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/cjs/plugin-rules.js +452 -450
- package/docs/assertions-in-tests.md +2 -0
- package/docs/bitwise-operators.md +2 -0
- package/docs/code-eval.md +7 -0
- package/docs/file-permissions.md +1 -1
- package/docs/no-async-constructor.md +2 -0
- package/docs/no-inconsistent-returns.md +2 -0
- package/docs/prefer-immediate-return.md +2 -0
- package/docs/sql-queries.md +2 -0
- package/package.json +39 -1
- package/types/S1067/rule.d.ts +1 -1
- package/types/S1110/rule.d.ts +1 -1
- package/types/S1128/rule.d.ts +1 -1
- package/types/S1172/rule.d.ts +1 -1
- package/types/S1226/rule.d.ts +1 -1
- package/types/S134/rule.d.ts +1 -1
- package/types/S1472/rule.d.ts +1 -1
- package/types/S1481/rule.d.ts +1 -1
- package/types/S1488/generated-meta.d.ts +1 -1
- package/types/S1515/rule.d.ts +1 -1
- package/types/S1523/generated-meta.d.ts +17 -0
- package/types/S1523/index.d.ts +1 -0
- package/types/S1523/meta.d.ts +2 -0
- package/types/S1523/rule.d.ts +2 -0
- package/types/S1527/rule.d.ts +1 -1
- package/types/S1529/generated-meta.d.ts +1 -1
- package/types/S1541/rule.d.ts +1 -1
- package/types/S1862/rule.d.ts +1 -1
- package/types/S2077/generated-meta.d.ts +1 -1
- package/types/S2123/rule.d.ts +1 -1
- package/types/S2259/rule.d.ts +1 -1
- package/types/S2428/rule.d.ts +1 -1
- package/types/S2589/rule.d.ts +1 -1
- package/types/S2598/rule.d.ts +1 -1
- package/types/S2699/generated-meta.d.ts +1 -1
- package/types/S2699/rule.d.ts +1 -1
- package/types/S2737/rule.d.ts +1 -1
- package/types/S2757/rule.d.ts +1 -1
- package/types/S2819/rule.d.ts +1 -1
- package/types/S3001/rule.d.ts +1 -1
- package/types/S3317/rule.d.ts +1 -1
- package/types/S3500/rule.d.ts +1 -1
- package/types/S3513/rule.d.ts +1 -1
- package/types/S3686/rule.d.ts +1 -1
- package/types/S3801/generated-meta.d.ts +1 -1
- package/types/S3972/rule.d.ts +1 -1
- package/types/S3973/rule.d.ts +1 -1
- package/types/S4030/rule.d.ts +1 -1
- package/types/S4143/rule.d.ts +1 -1
- package/types/S4158/rule.d.ts +1 -1
- package/types/S4621/rule.d.ts +1 -1
- package/types/S4782/rule.d.ts +1 -1
- package/types/S5693/rule.d.ts +1 -1
- package/types/S5725/rule.d.ts +1 -1
- package/types/S5860/rule.d.ts +1 -1
- package/types/S5868/rule.d.ts +1 -1
- package/types/S5869/rule.d.ts +1 -1
- package/types/S6079/rule.d.ts +1 -1
- package/types/S6326/rule.d.ts +1 -1
- package/types/S6351/rule.d.ts +1 -1
- package/types/S6418/config.d.ts +1 -1
- package/types/S6443/rule.d.ts +1 -1
- package/types/S7059/generated-meta.d.ts +1 -1
- package/types/S7639/generated-meta.d.ts +1 -1
- package/types/S7790/generated-meta.d.ts +1 -1
- package/types/S8441/generated-meta.d.ts +1 -1
- package/types/S930/rule.d.ts +1 -1
- package/types/helpers/ancestor.d.ts +3 -3
- package/types/helpers/ast.d.ts +1 -1
- package/types/helpers/aws/iam.d.ts +2 -2
- package/types/helpers/aws/s3.d.ts +1 -1
- package/types/helpers/chai.d.ts +3 -5
- package/types/helpers/configs.d.ts +39 -1
- package/types/helpers/entropy.d.ts +1 -0
- package/types/helpers/equivalence.d.ts +1 -1
- package/types/helpers/express.d.ts +38 -43
- package/types/helpers/find-up/all-in-parent-dirs.d.ts +1 -1
- package/types/helpers/find-up/closest.d.ts +1 -1
- package/types/helpers/find-up/find-minimatch.d.ts +1 -1
- package/types/helpers/generate-meta.d.ts +1 -1
- package/types/helpers/mocha.d.ts +19 -21
- package/types/helpers/module.d.ts +1 -1
- package/types/helpers/package-jsons/all-in-parent-dirs.d.ts +1 -1
- package/types/helpers/package-jsons/dependencies.d.ts +1 -1
- package/types/helpers/recognizers/CodeRecognizer.d.ts +1 -1
- package/types/helpers/recognizers/JavaScriptFootPrint.d.ts +2 -2
- package/types/helpers/recognizers/LanguageFootprint.d.ts +1 -1
- package/types/helpers/regex/alternation.d.ts +1 -1
- package/types/helpers/regex/ast.d.ts +1 -1
- package/types/helpers/regex/location.d.ts +2 -2
- package/types/helpers/regex/range.d.ts +2 -2
- package/types/helpers/regex/rule-template.d.ts +1 -1
- package/types/helpers/result.d.ts +1 -1
- package/types/helpers/sinon.d.ts +4 -6
- package/types/helpers/sonar-runtime.d.ts +1 -1
- package/types/helpers/supertest.d.ts +4 -6
- package/types/helpers/type.d.ts +1 -1
- package/types/helpers/vitest.d.ts +4 -6
- package/types/plugin-rules.d.ts +1 -0
- 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/cjs/S3403/rule.js
CHANGED
|
@@ -55,19 +55,22 @@ 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");
|
|
61
|
+
const location_js_1 = require("../helpers/location.js");
|
|
59
62
|
const meta = __importStar(require("./generated-meta.js"));
|
|
60
63
|
exports.rule = {
|
|
61
|
-
meta: (0,
|
|
64
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, { hasSuggestions: true }),
|
|
62
65
|
create(context) {
|
|
63
66
|
const services = context.sourceCode.parserServices;
|
|
64
|
-
if (!(0,
|
|
67
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
65
68
|
return {};
|
|
66
69
|
}
|
|
67
70
|
function isComparableTo(lhs, rhs) {
|
|
68
71
|
const checker = services.program.getTypeChecker();
|
|
69
|
-
const lhsType = checker.getBaseTypeOfLiteralType((0,
|
|
70
|
-
const rhsType = checker.getBaseTypeOfLiteralType((0,
|
|
72
|
+
const lhsType = checker.getBaseTypeOfLiteralType((0, type_js_1.getTypeFromTreeNode)(lhs, services));
|
|
73
|
+
const rhsType = checker.getBaseTypeOfLiteralType((0, type_js_1.getTypeFromTreeNode)(rhs, services));
|
|
71
74
|
// If either type is indeterminate (unknown, type parameter, or indexed access),
|
|
72
75
|
// we cannot know at compile time if the comparison will always fail
|
|
73
76
|
if (isIndeterminateType(lhsType) || isIndeterminateType(rhsType)) {
|
|
@@ -84,7 +87,7 @@ exports.rule = {
|
|
|
84
87
|
const operatorToken = context.sourceCode
|
|
85
88
|
.getTokensBetween(left, right)
|
|
86
89
|
.find(token => token.type === 'Punctuator' && token.value === operator);
|
|
87
|
-
(0,
|
|
90
|
+
(0, location_js_1.report)(context, {
|
|
88
91
|
message: `Remove this "${actual}" check; it will always be ${outcome}. Did you mean to use "${expected}"?`,
|
|
89
92
|
loc: operatorToken.loc,
|
|
90
93
|
suggest: [
|
|
@@ -93,7 +96,7 @@ exports.rule = {
|
|
|
93
96
|
fix: fixer => fixer.replaceText(operatorToken, expected),
|
|
94
97
|
},
|
|
95
98
|
],
|
|
96
|
-
}, [left, right].map(node => (0,
|
|
99
|
+
}, [left, right].map(node => (0, location_js_1.toSecondaryLocation)(node)));
|
|
97
100
|
}
|
|
98
101
|
},
|
|
99
102
|
};
|
package/cjs/S3415/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 ast_js_1 = require("../helpers/ast.js");
|
|
56
|
+
const mocha_js_1 = require("../helpers/mocha.js");
|
|
57
|
+
const location_js_1 = require("../helpers/location.js");
|
|
55
58
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
59
|
const ASSERT_FUNCTIONS = [
|
|
57
60
|
'equal',
|
|
@@ -64,12 +67,12 @@ const ASSERT_FUNCTIONS = [
|
|
|
64
67
|
'approximately',
|
|
65
68
|
];
|
|
66
69
|
exports.rule = {
|
|
67
|
-
meta: (0,
|
|
70
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, { hasSuggestions: true }),
|
|
68
71
|
create(context) {
|
|
69
72
|
const testCases = [];
|
|
70
73
|
return {
|
|
71
74
|
CallExpression(node) {
|
|
72
|
-
if (
|
|
75
|
+
if ((0, mocha_js_1.isTestCase)(node)) {
|
|
73
76
|
testCases.push(node);
|
|
74
77
|
return;
|
|
75
78
|
}
|
|
@@ -78,7 +81,7 @@ exports.rule = {
|
|
|
78
81
|
}
|
|
79
82
|
},
|
|
80
83
|
'CallExpression:exit': (node) => {
|
|
81
|
-
if (
|
|
84
|
+
if ((0, mocha_js_1.isTestCase)(node)) {
|
|
82
85
|
testCases.pop();
|
|
83
86
|
}
|
|
84
87
|
},
|
|
@@ -89,8 +92,8 @@ function checkInvertedArguments(node, context) {
|
|
|
89
92
|
const args = extractAssertionsArguments(node);
|
|
90
93
|
if (args) {
|
|
91
94
|
const [actual, expected, format] = args;
|
|
92
|
-
if ((0,
|
|
93
|
-
(0,
|
|
95
|
+
if ((0, ast_js_1.isLiteral)(actual) && !(0, ast_js_1.isLiteral)(expected)) {
|
|
96
|
+
(0, location_js_1.report)(context, {
|
|
94
97
|
node: expected,
|
|
95
98
|
message: `Swap these 2 arguments so they are in the correct order: ${format}.`,
|
|
96
99
|
suggest: [
|
|
@@ -102,7 +105,7 @@ function checkInvertedArguments(node, context) {
|
|
|
102
105
|
],
|
|
103
106
|
},
|
|
104
107
|
],
|
|
105
|
-
}, [(0,
|
|
108
|
+
}, [(0, location_js_1.toSecondaryLocation)(actual, 'Other argument to swap.')]);
|
|
106
109
|
}
|
|
107
110
|
}
|
|
108
111
|
}
|
|
@@ -110,9 +113,9 @@ function extractAssertionsArguments(node) {
|
|
|
110
113
|
return extractAssertArguments(node) ?? extractExpectArguments(node) ?? extractFailArguments(node);
|
|
111
114
|
}
|
|
112
115
|
function extractAssertArguments(node) {
|
|
113
|
-
if ((0,
|
|
116
|
+
if ((0, ast_js_1.isMethodCall)(node) && node.arguments.length > 1) {
|
|
114
117
|
const { callee: { object, property }, arguments: [actual, expected], } = node;
|
|
115
|
-
if ((0,
|
|
118
|
+
if ((0, ast_js_1.isIdentifier)(object, 'assert') && (0, ast_js_1.isIdentifier)(property, ...ASSERT_FUNCTIONS)) {
|
|
116
119
|
return [actual, expected, `${object.name}.${property.name}(actual, expected)`];
|
|
117
120
|
}
|
|
118
121
|
}
|
|
@@ -123,13 +126,13 @@ function extractExpectArguments(node) {
|
|
|
123
126
|
return null;
|
|
124
127
|
}
|
|
125
128
|
let { object, property } = node.callee;
|
|
126
|
-
if (!(0,
|
|
129
|
+
if (!(0, ast_js_1.isIdentifier)(property, 'equal', 'eql', 'closeTo')) {
|
|
127
130
|
return null;
|
|
128
131
|
}
|
|
129
132
|
while (object.type === 'MemberExpression') {
|
|
130
133
|
object = object.object;
|
|
131
134
|
}
|
|
132
|
-
if (object.type === 'CallExpression' && (0,
|
|
135
|
+
if (object.type === 'CallExpression' && (0, ast_js_1.isIdentifier)(object.callee, 'expect')) {
|
|
133
136
|
return [
|
|
134
137
|
object.arguments[0],
|
|
135
138
|
node.arguments[0],
|
|
@@ -139,9 +142,9 @@ function extractExpectArguments(node) {
|
|
|
139
142
|
return null;
|
|
140
143
|
}
|
|
141
144
|
function extractFailArguments(node) {
|
|
142
|
-
if ((0,
|
|
145
|
+
if ((0, ast_js_1.isMethodCall)(node) && node.arguments.length > 1) {
|
|
143
146
|
const { callee: { object, property }, arguments: [actual, expected], } = node;
|
|
144
|
-
if ((0,
|
|
147
|
+
if ((0, ast_js_1.isIdentifier)(object, 'assert', 'expect', 'should') && (0, ast_js_1.isIdentifier)(property, 'fail')) {
|
|
145
148
|
return [actual, expected, `${object.name}.${property.name}(actual, expected)`];
|
|
146
149
|
}
|
|
147
150
|
}
|
package/cjs/S3499/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 location_js_1 = require("../helpers/location.js");
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.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
|
create(context) {
|
|
59
60
|
function raiseIssue(node, begin, end, positionMessage) {
|
|
60
61
|
const properties = node.properties;
|
|
@@ -62,10 +63,10 @@ exports.rule = {
|
|
|
62
63
|
for (let i = begin; i < end; i++) {
|
|
63
64
|
const prop = properties[i];
|
|
64
65
|
if (prop.shorthand) {
|
|
65
|
-
secondaryLocations.push((0,
|
|
66
|
+
secondaryLocations.push((0, location_js_1.toSecondaryLocation)(prop, `Move to ${positionMessage}`));
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
|
-
(0,
|
|
69
|
+
(0, location_js_1.report)(context, {
|
|
69
70
|
message: `Group all shorthand properties at ${positionMessage} of this object declaration.`,
|
|
70
71
|
loc: context.sourceCode.getFirstToken(node).loc,
|
|
71
72
|
}, secondaryLocations);
|
package/cjs/S3500/rule.js
CHANGED
|
@@ -51,19 +51,20 @@ 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
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
58
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
58
59
|
create(context) {
|
|
59
60
|
return {
|
|
60
61
|
'VariableDeclaration[kind="const"]': (node) => {
|
|
61
62
|
for (const variable of context.sourceCode.getDeclaredVariables(node)) {
|
|
62
63
|
for (const reference of variable.references.filter((ref, i, refs) => isModifyingReference(ref, i, refs))) {
|
|
63
|
-
(0,
|
|
64
|
+
(0, location_js_1.report)(context, {
|
|
64
65
|
message: `Correct this attempt to modify "${reference.identifier.name}" or use "let" in its declaration.`,
|
|
65
66
|
node: reference.identifier,
|
|
66
|
-
}, [(0,
|
|
67
|
+
}, [(0, location_js_1.toSecondaryLocation)(node, 'Const declaration')]);
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
},
|
package/cjs/S3513/rule.js
CHANGED
|
@@ -51,12 +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 location_js_1 = require("../helpers/location.js");
|
|
55
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
57
|
const MESSAGE = "Use the rest syntax to declare this function's arguments.";
|
|
57
58
|
const SECONDARY_MESSAGE = 'Replace this reference to "arguments".';
|
|
58
59
|
exports.rule = {
|
|
59
|
-
meta: (0,
|
|
60
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
60
61
|
create(context) {
|
|
61
62
|
return {
|
|
62
63
|
// Ignore root scope containing global variables
|
|
@@ -85,10 +86,10 @@ function checkArgumentsVariableWithoutDefinition(context, variable) {
|
|
|
85
86
|
if (!isLocalVariableOrParameter && references.length > 0) {
|
|
86
87
|
const firstReference = references[0];
|
|
87
88
|
const secondaryLocations = references.slice(1).map(ref => ref.identifier);
|
|
88
|
-
(0,
|
|
89
|
+
(0, location_js_1.report)(context, {
|
|
89
90
|
node: firstReference.identifier,
|
|
90
91
|
message: MESSAGE,
|
|
91
|
-
}, secondaryLocations.map(node => (0,
|
|
92
|
+
}, secondaryLocations.map(node => (0, location_js_1.toSecondaryLocation)(node, SECONDARY_MESSAGE)));
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
95
|
function isFollowedByLengthProperty(reference) {
|
package/cjs/S3514/rule.js
CHANGED
|
@@ -51,12 +51,15 @@ 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 ancestor_js_1 = require("../helpers/ancestor.js");
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
57
|
+
const location_js_1 = require("../helpers/location.js");
|
|
55
58
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
59
|
const MAX_INDEX = 4;
|
|
57
60
|
const isAllowedIndex = (idx) => idx >= 0 && idx <= MAX_INDEX;
|
|
58
61
|
exports.rule = {
|
|
59
|
-
meta: (0,
|
|
62
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
60
63
|
create(context) {
|
|
61
64
|
function visitStatements(statements) {
|
|
62
65
|
const declarationsByObject = new Map();
|
|
@@ -81,8 +84,8 @@ exports.rule = {
|
|
|
81
84
|
continue;
|
|
82
85
|
}
|
|
83
86
|
const property = expression.property;
|
|
84
|
-
if ((0,
|
|
85
|
-
((0,
|
|
87
|
+
if ((0, ast_js_1.isIdentifier)(property, varName) ||
|
|
88
|
+
((0, ast_js_1.isNumberLiteral)(property) && isAllowedIndex(property.value))) {
|
|
86
89
|
addDeclaration(declarationsByObject, expression.object, declaration);
|
|
87
90
|
}
|
|
88
91
|
}
|
|
@@ -104,10 +107,10 @@ exports.rule = {
|
|
|
104
107
|
const firstKind = getKind(declarations[0]);
|
|
105
108
|
const tail = declarations.slice(1);
|
|
106
109
|
if (tail.every(decl => getKind(decl) === firstKind)) {
|
|
107
|
-
(0,
|
|
110
|
+
(0, location_js_1.report)(context, {
|
|
108
111
|
node: declarations[0],
|
|
109
112
|
message: `Use destructuring syntax for these assignments from "${key}".`,
|
|
110
|
-
}, tail.map(node => (0,
|
|
113
|
+
}, tail.map(node => (0, location_js_1.toSecondaryLocation)(node, 'Replace this assignment.')));
|
|
111
114
|
}
|
|
112
115
|
}
|
|
113
116
|
}
|
|
@@ -126,6 +129,6 @@ exports.rule = {
|
|
|
126
129
|
},
|
|
127
130
|
};
|
|
128
131
|
function getKind(declarator) {
|
|
129
|
-
const declaration = (0,
|
|
132
|
+
const declaration = (0, ancestor_js_1.findFirstMatchingAncestor)(declarator, n => n.type === 'VariableDeclaration');
|
|
130
133
|
return declaration?.kind;
|
|
131
134
|
}
|
package/cjs/S3516/rule.js
CHANGED
|
@@ -51,10 +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 ancestor_js_1 = require("../helpers/ancestor.js");
|
|
55
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
56
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
57
|
+
const location_js_1 = require("../helpers/location.js");
|
|
55
58
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
59
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
60
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
58
61
|
create(context) {
|
|
59
62
|
const functionContextStack = [];
|
|
60
63
|
const codePathSegments = [];
|
|
@@ -66,10 +69,10 @@ exports.rule = {
|
|
|
66
69
|
}
|
|
67
70
|
const returnedValues = functionContext.returnStatements.map(returnStatement => returnStatement.argument);
|
|
68
71
|
if (areAllSameValue(returnedValues, context.sourceCode.getScope(node))) {
|
|
69
|
-
(0,
|
|
72
|
+
(0, location_js_1.report)(context, {
|
|
70
73
|
message: `Refactor this function to not always return the same value.`,
|
|
71
|
-
loc: (0,
|
|
72
|
-
}, returnedValues.map(node => (0,
|
|
74
|
+
loc: (0, location_js_1.getMainFunctionTokenLocation)(node, (0, ancestor_js_1.getParent)(context, node), context),
|
|
75
|
+
}, returnedValues.map(node => (0, location_js_1.toSecondaryLocation)(node, 'Returned value.')), returnedValues.length);
|
|
73
76
|
}
|
|
74
77
|
}
|
|
75
78
|
return {
|
|
@@ -149,11 +152,11 @@ function getSingleWriteDefinition(variableName, scope) {
|
|
|
149
152
|
return null;
|
|
150
153
|
}
|
|
151
154
|
function isPossibleObjectUpdate(ref) {
|
|
152
|
-
const expressionStatement = (0,
|
|
155
|
+
const expressionStatement = (0, ancestor_js_1.findFirstMatchingAncestor)(ref.identifier, n => n.type === 'ExpressionStatement' || ast_js_1.FUNCTION_NODES.includes(n.type));
|
|
153
156
|
// To avoid FP, we consider method calls as write operations, since we do not know whether they will
|
|
154
157
|
// update the object state or not.
|
|
155
158
|
return (expressionStatement?.type === 'ExpressionStatement' &&
|
|
156
|
-
((0,
|
|
159
|
+
((0, ast_js_1.isElementWrite)(expressionStatement, ref) ||
|
|
157
160
|
expressionStatement.expression.type === 'CallExpression'));
|
|
158
161
|
}
|
|
159
162
|
function getLiteralValue(returnedValue, scope) {
|
package/cjs/S3524/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 MESSAGE_ADD_PARAMETER = 'Add parentheses around the parameter of this arrow function.';
|
|
57
57
|
const MESSAGE_REMOVE_PARAMETER = 'Remove parentheses around the parameter of this arrow function.';
|
|
@@ -62,7 +62,7 @@ const DEFAULT_OPTIONS = {
|
|
|
62
62
|
requireBodyBraces: false,
|
|
63
63
|
};
|
|
64
64
|
exports.rule = {
|
|
65
|
-
meta: (0,
|
|
65
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
66
66
|
create(context) {
|
|
67
67
|
const { requireParameterParentheses, requireBodyBraces } = {
|
|
68
68
|
...DEFAULT_OPTIONS,
|
package/cjs/S3525/rule.js
CHANGED
|
@@ -55,17 +55,19 @@ 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 parser_services_js_1 = require("../helpers/parser-services.js");
|
|
59
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
60
|
+
const type_js_1 = require("../helpers/type.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
|
declareClass: 'Declare a "{{class}}" class and move this declaration of "{{declaration}}" into it.',
|
|
64
66
|
},
|
|
65
67
|
}),
|
|
66
68
|
create(context) {
|
|
67
69
|
const services = context.sourceCode.parserServices;
|
|
68
|
-
const isFunction = (0,
|
|
70
|
+
const isFunction = (0, parser_services_js_1.isRequiredParserServices)(services) ? isFunctionType : isFunctionLike;
|
|
69
71
|
return {
|
|
70
72
|
AssignmentExpression: (node) => {
|
|
71
73
|
const { left, right } = node;
|
|
@@ -92,7 +94,7 @@ exports.rule = {
|
|
|
92
94
|
},
|
|
93
95
|
};
|
|
94
96
|
function isFunctionType(node, services) {
|
|
95
|
-
const type = (0,
|
|
97
|
+
const type = (0, type_js_1.getTypeFromTreeNode)(node, services);
|
|
96
98
|
return type.symbol && (type.symbol.flags & typescript_1.default.SymbolFlags.Function) !== 0;
|
|
97
99
|
}
|
|
98
100
|
function isFunctionLike(node, _services) {
|
package/cjs/S3531/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 location_js_1 = require("../helpers/location.js");
|
|
56
|
+
const ancestor_js_1 = require("../helpers/ancestor.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
|
addYield: 'Add a "yield" statement to this generator.',
|
|
60
62
|
},
|
|
@@ -70,7 +72,7 @@ exports.rule = {
|
|
|
70
72
|
if (countYield === 0 && functionNode.body.body.length > 0) {
|
|
71
73
|
context.report({
|
|
72
74
|
messageId: 'addYield',
|
|
73
|
-
loc: (0,
|
|
75
|
+
loc: (0, location_js_1.getMainFunctionTokenLocation)(functionNode, (0, ancestor_js_1.getParent)(context, node), context),
|
|
74
76
|
});
|
|
75
77
|
}
|
|
76
78
|
}
|
package/cjs/S3533/rule.js
CHANGED
|
@@ -51,11 +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
|
|
55
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
56
|
+
const type_js_1 = require("../helpers/type.js");
|
|
57
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
58
|
+
const collection_js_1 = require("../helpers/collection.js");
|
|
56
59
|
const meta = __importStar(require("./generated-meta.js"));
|
|
57
60
|
exports.rule = {
|
|
58
|
-
meta: (0,
|
|
61
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
59
62
|
messages: {
|
|
60
63
|
standardImport: 'Use a standard "import" statement instead of "{{adhocImport}}".',
|
|
61
64
|
},
|
|
@@ -85,8 +88,7 @@ exports.rule = {
|
|
|
85
88
|
},
|
|
86
89
|
};
|
|
87
90
|
function isString(node, services) {
|
|
88
|
-
return (
|
|
89
|
-
(0, index_js_1.isStringLiteral)(node));
|
|
91
|
+
return (0, parser_services_js_1.isRequiredParserServices)(services) ? (0, type_js_1.isString)(node, services) : (0, ast_js_1.isStringLiteral)(node);
|
|
90
92
|
}
|
|
91
93
|
function isCommonJsImport(callExpression, identifier, services) {
|
|
92
94
|
return (callExpression.arguments.length === 1 &&
|
|
@@ -100,6 +102,5 @@ function isAmdImport(callExpression, identifier, services) {
|
|
|
100
102
|
if (callExpression.arguments.length !== 2 && callExpression.arguments.length !== 3) {
|
|
101
103
|
return false;
|
|
102
104
|
}
|
|
103
|
-
return (
|
|
104
|
-
helpers.isFunction((0, index_js_1.last)(callExpression.arguments), services));
|
|
105
|
+
return (0, parser_services_js_1.isRequiredParserServices)(services) && (0, type_js_1.isFunction)((0, collection_js_1.last)(callExpression.arguments), services);
|
|
105
106
|
}
|
package/cjs/S3579/rule.js
CHANGED
|
@@ -51,24 +51,26 @@ 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 type_js_1 = require("../helpers/type.js");
|
|
56
|
+
const parser_services_js_1 = require("../helpers/parser-services.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
|
noAssociativeArray: 'Make it an object if it must have named properties; otherwise, use a numeric index here.',
|
|
60
62
|
},
|
|
61
63
|
}),
|
|
62
64
|
create(context) {
|
|
63
65
|
const services = context.sourceCode.parserServices;
|
|
64
|
-
if (!(0,
|
|
66
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
65
67
|
return {};
|
|
66
68
|
}
|
|
67
69
|
return {
|
|
68
70
|
'AssignmentExpression[left.type="MemberExpression"]'(node) {
|
|
69
71
|
const { property, object } = node
|
|
70
72
|
.left;
|
|
71
|
-
if ((0,
|
|
73
|
+
if ((0, type_js_1.isString)(property, services) && (0, type_js_1.isArray)(object, services)) {
|
|
72
74
|
context.report({
|
|
73
75
|
messageId: 'noAssociativeArray',
|
|
74
76
|
node,
|
package/cjs/S3616/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 ast_js_1 = require("../helpers/ast.js");
|
|
56
|
+
const collection_js_1 = require("../helpers/collection.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
|
specifyCase: `Explicitly specify {{nesting}} separate cases that fall through; currently this case clause only works for "{{expression}}".`,
|
|
60
62
|
},
|
|
@@ -81,7 +83,7 @@ exports.rule = {
|
|
|
81
83
|
return {
|
|
82
84
|
'SwitchCase > SequenceExpression'(node) {
|
|
83
85
|
const expressions = node.expressions;
|
|
84
|
-
reportIssue(node, (0,
|
|
86
|
+
reportIssue(node, (0, collection_js_1.last)(expressions), expressions.length);
|
|
85
87
|
},
|
|
86
88
|
'SwitchCase > LogicalExpression'(node) {
|
|
87
89
|
if (!isSwitchTrue(getEnclosingSwitchStatement(context, node))) {
|
|
@@ -104,7 +106,7 @@ function getEnclosingSwitchStatement(context, node) {
|
|
|
104
106
|
throw new Error('A switch case should have an enclosing switch statement');
|
|
105
107
|
}
|
|
106
108
|
function isSwitchTrue(node) {
|
|
107
|
-
return (0,
|
|
109
|
+
return (0, ast_js_1.isLiteral)(node.discriminant) && node.discriminant.value === true;
|
|
108
110
|
}
|
|
109
111
|
function getFirstElementAndNestingLevel(logicalExpression, currentLvl) {
|
|
110
112
|
if (logicalExpression.operator === '||') {
|
package/cjs/S3626/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 collection_js_1 = require("../helpers/collection.js");
|
|
55
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
57
|
const loops = 'WhileStatement, ForStatement, DoWhileStatement, ForInStatement, ForOfStatement';
|
|
57
58
|
exports.rule = {
|
|
58
|
-
meta: (0,
|
|
59
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
59
60
|
messages: {
|
|
60
61
|
removeRedundantJump: 'Remove this redundant jump.',
|
|
61
62
|
suggestJumpRemoval: 'Remove this redundant jump',
|
|
@@ -71,7 +72,7 @@ exports.rule = {
|
|
|
71
72
|
const previousComments = context.sourceCode.getCommentsBefore(node);
|
|
72
73
|
const previousToken = previousComments.length === 0
|
|
73
74
|
? context.sourceCode.getTokenBefore(node)
|
|
74
|
-
: (0,
|
|
75
|
+
: (0, collection_js_1.last)(previousComments);
|
|
75
76
|
context.report({
|
|
76
77
|
messageId: 'removeRedundantJump',
|
|
77
78
|
node: node,
|
package/cjs/S3686/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 ast_js_1 = require("../helpers/ast.js");
|
|
56
|
+
const location_js_1 = require("../helpers/location.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
|
create(context) {
|
|
59
61
|
const usedInNew = new Map();
|
|
60
62
|
const usedInCall = new Map();
|
|
@@ -76,10 +78,10 @@ function checkExpression(callExpression, thisTypeUsageMap, otherTypeUsageMap, ha
|
|
|
76
78
|
if (otherTypeUsage?.loc && !hasIssue.includes(variable)) {
|
|
77
79
|
const message = `Correct the use of this function; ` +
|
|
78
80
|
`on line ${otherTypeUsage.loc.start.line} it was called with${tail} "new".`;
|
|
79
|
-
(0,
|
|
81
|
+
(0, location_js_1.report)(context, {
|
|
80
82
|
node: callExpression.callee,
|
|
81
83
|
message,
|
|
82
|
-
}, [(0,
|
|
84
|
+
}, [(0, location_js_1.toSecondaryLocation)(otherTypeUsage.callee)]);
|
|
83
85
|
hasIssue.push(variable);
|
|
84
86
|
}
|
|
85
87
|
else {
|
|
@@ -89,7 +91,7 @@ function checkExpression(callExpression, thisTypeUsageMap, otherTypeUsageMap, ha
|
|
|
89
91
|
}
|
|
90
92
|
function getVariable(node, context) {
|
|
91
93
|
if (node.callee.type === 'Identifier') {
|
|
92
|
-
return (0,
|
|
94
|
+
return (0, ast_js_1.getVariableFromName)(context, node.callee.name, node);
|
|
93
95
|
}
|
|
94
96
|
return undefined;
|
|
95
97
|
}
|
package/cjs/S3699/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 EMPTY_RETURN_VALUE_KEYWORDS = new Set([
|
|
57
58
|
'TSVoidKeyword',
|
|
@@ -80,7 +81,7 @@ function isReturnValueUsed(callExpr) {
|
|
|
80
81
|
parent.type !== 'ThrowStatement');
|
|
81
82
|
}
|
|
82
83
|
exports.rule = {
|
|
83
|
-
meta: (0,
|
|
84
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
84
85
|
messages: {
|
|
85
86
|
removeUseOfOutput: 'Remove this use of the output from "{{name}}"; "{{name}}" doesn\'t return anything.',
|
|
86
87
|
},
|
|
@@ -105,7 +106,7 @@ exports.rule = {
|
|
|
105
106
|
}
|
|
106
107
|
else if (definition.type === 'Variable') {
|
|
107
108
|
const { init } = definition.node;
|
|
108
|
-
if (init && ((0,
|
|
109
|
+
if (init && ((0, ast_js_1.isFunctionExpression)(init) || (0, ast_js_1.isArrowFunctionExpression)(init))) {
|
|
109
110
|
callExpressionsToCheck.set(reference.identifier, init);
|
|
110
111
|
}
|
|
111
112
|
}
|
package/cjs/S3735/rule.js
CHANGED
|
@@ -51,10 +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 ast_js_1 = require("../helpers/ast.js");
|
|
56
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
57
|
+
const type_js_1 = require("../helpers/type.js");
|
|
55
58
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
59
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
60
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
61
|
messages: {
|
|
59
62
|
removeVoid: 'Remove this use of the "void" operator.',
|
|
60
63
|
},
|
|
@@ -86,13 +89,13 @@ function isIIFE(expr) {
|
|
|
86
89
|
}
|
|
87
90
|
function isPromiseLike(context, expr) {
|
|
88
91
|
const services = context.sourceCode.parserServices;
|
|
89
|
-
if ((0,
|
|
90
|
-
return (0,
|
|
92
|
+
if ((0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
93
|
+
return (0, type_js_1.isThenableOrVoidUnion)(expr.argument, services);
|
|
91
94
|
}
|
|
92
95
|
else {
|
|
93
96
|
// If we don't have typescript types, we can't reason if it's a promise.
|
|
94
97
|
// Therefore, if this is a function call, assume it is a promise.
|
|
95
98
|
// For this rule, it will result in not raising an issue.
|
|
96
|
-
return (0,
|
|
99
|
+
return (0, ast_js_1.isFunctionCall)(expr.argument);
|
|
97
100
|
}
|
|
98
101
|
}
|