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/cjs/S3001/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
|
removeDelete: 'Remove this "delete" operator or pass an object property to it.',
|
|
60
60
|
},
|
package/cjs/S3003/rule.js
CHANGED
|
@@ -51,30 +51,33 @@ 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 parser_services_js_1 = require("../helpers/parser-services.js");
|
|
56
|
+
const type_js_1 = require("../helpers/type.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 services = context.sourceCode.parserServices;
|
|
60
|
-
if (!(0,
|
|
63
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
61
64
|
return {};
|
|
62
65
|
}
|
|
63
66
|
return {
|
|
64
67
|
BinaryExpression: (node) => {
|
|
65
68
|
const { operator, left, right } = node;
|
|
66
69
|
if (['<', '<=', '>', '>='].includes(operator) &&
|
|
67
|
-
(0,
|
|
68
|
-
(0,
|
|
70
|
+
(0, type_js_1.isString)(left, services) &&
|
|
71
|
+
(0, type_js_1.isString)(right, services) &&
|
|
69
72
|
!isLiteralException(left) &&
|
|
70
73
|
!isLiteralException(right) &&
|
|
71
74
|
!isWithinSortCallback(context, node)) {
|
|
72
|
-
(0,
|
|
75
|
+
(0, location_js_1.report)(context, {
|
|
73
76
|
message: `Convert operands of this use of "${operator}" to number type.`,
|
|
74
77
|
loc: context.sourceCode
|
|
75
78
|
.getTokensBetween(left, right)
|
|
76
79
|
.find(token => token.type === 'Punctuator' && token.value === operator).loc,
|
|
77
|
-
}, [left, right].map(node => (0,
|
|
80
|
+
}, [left, right].map(node => (0, location_js_1.toSecondaryLocation)(node)));
|
|
78
81
|
}
|
|
79
82
|
},
|
|
80
83
|
};
|
package/cjs/S3317/rule.js
CHANGED
|
@@ -55,10 +55,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
55
55
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
56
|
exports.rule = void 0;
|
|
57
57
|
const node_path_1 = __importDefault(require("node:path"));
|
|
58
|
-
const
|
|
58
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
59
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
59
60
|
const meta = __importStar(require("./generated-meta.js"));
|
|
60
61
|
exports.rule = {
|
|
61
|
-
meta: (0,
|
|
62
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
62
63
|
messages: {
|
|
63
64
|
renameFile: 'Rename this file to "{{exported}}"',
|
|
64
65
|
},
|
|
@@ -70,7 +71,7 @@ exports.rule = {
|
|
|
70
71
|
ExportDefaultDeclaration: (node) => {
|
|
71
72
|
const declaration = node.declaration;
|
|
72
73
|
if (declaration.type === 'Identifier') {
|
|
73
|
-
const variable = (0,
|
|
74
|
+
const variable = (0, ast_js_1.getVariableFromName)(context, declaration.name, node);
|
|
74
75
|
if (variable?.defs.length === 1) {
|
|
75
76
|
const def = variable.defs[0];
|
|
76
77
|
if (def.type === 'ClassName' || def.type === 'FunctionName' || isConst(def)) {
|
package/cjs/S3330/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
|
const cookie_flag_check_js_1 = require("../helpers/cookie-flag-check.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
|
exports.rule = {
|
|
58
|
-
meta: (0,
|
|
58
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
59
59
|
create(context) {
|
|
60
60
|
return {
|
|
61
61
|
CallExpression: (node) => new cookie_flag_check_js_1.CookieFlagCheck(context, 'httpOnly').checkCookiesFromCallExpression(node),
|
package/cjs/S3358/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
|
extractTernary: 'Extract this nested ternary operation into an independent statement.',
|
|
60
60
|
},
|
package/cjs/S3402/rule.js
CHANGED
|
@@ -55,15 +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");
|
|
61
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
62
|
+
const location_js_1 = require("../helpers/location.js");
|
|
59
63
|
const meta = __importStar(require("./generated-meta.js"));
|
|
60
64
|
const message = `Review this expression to be sure that the concatenation was intended.`;
|
|
61
65
|
const objectLikeTypes = new Set(['object', 'Object']);
|
|
62
66
|
exports.rule = {
|
|
63
|
-
meta: (0,
|
|
67
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
64
68
|
create(context) {
|
|
65
69
|
const services = context.sourceCode.parserServices;
|
|
66
|
-
if (!(0,
|
|
70
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
67
71
|
return {};
|
|
68
72
|
}
|
|
69
73
|
const checker = services.program.getTypeChecker();
|
|
@@ -81,22 +85,22 @@ exports.rule = {
|
|
|
81
85
|
.find(token => token.value === '+' || token.value === '+=').loc;
|
|
82
86
|
}
|
|
83
87
|
function checkConcatenation(left, right) {
|
|
84
|
-
if ((0,
|
|
85
|
-
(0,
|
|
88
|
+
if ((0, ast_js_1.isStringLiteral)(left) ||
|
|
89
|
+
(0, ast_js_1.isStringLiteral)(right) ||
|
|
86
90
|
isConcatenation(left) ||
|
|
87
91
|
isConcatenation(right)) {
|
|
88
92
|
return;
|
|
89
93
|
}
|
|
90
|
-
const leftType = (0,
|
|
91
|
-
const rightType = (0,
|
|
94
|
+
const leftType = (0, type_js_1.getTypeFromTreeNode)(left, services);
|
|
95
|
+
const rightType = (0, type_js_1.getTypeFromTreeNode)(right, services);
|
|
92
96
|
if (isStringPlusNonString(leftType, rightType) ||
|
|
93
97
|
isStringPlusNonString(rightType, leftType)) {
|
|
94
|
-
(0,
|
|
98
|
+
(0, location_js_1.report)(context, {
|
|
95
99
|
message,
|
|
96
100
|
loc: getOperatorLocation(left, right),
|
|
97
101
|
}, [
|
|
98
|
-
(0,
|
|
99
|
-
(0,
|
|
102
|
+
(0, location_js_1.toSecondaryLocation)(left, `left operand has type ${checker.typeToString(leftType)}.`),
|
|
103
|
+
(0, location_js_1.toSecondaryLocation)(right, `right operand has type ${checker.typeToString(rightType)}.`),
|
|
100
104
|
]);
|
|
101
105
|
}
|
|
102
106
|
}
|
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,
|