@checkdigit/eslint-plugin 6.6.0-PR.75-9891 → 6.6.0-PR.75-0dbb
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/index.cjs +299 -164
- package/dist-cjs/metafile.json +101 -85
- package/dist-mjs/ast/tree.mjs +32 -6
- package/dist-mjs/fixture/fetch-header-getter.mjs +24 -17
- package/dist-mjs/fixture/fetch-then.mjs +269 -0
- package/dist-mjs/fixture/fetch.mjs +28 -2
- package/dist-mjs/fixture/no-fixture.mjs +15 -3
- package/dist-mjs/fixture/response-reference.mjs +4 -4
- package/dist-mjs/index.mjs +4 -4
- package/dist-types/ast/tree.d.ts +3 -0
- package/dist-types/fixture/{concurrent-promises.d.ts → fetch-then.d.ts} +1 -1
- package/dist-types/fixture/fetch.d.ts +3 -0
- package/dist-types/index.d.ts +2 -2
- package/package.json +1 -1
- package/src/ast/tree.ts +43 -5
- package/src/fixture/fetch-header-getter.ts +27 -26
- package/src/fixture/fetch-then.ts +355 -0
- package/src/fixture/fetch.ts +47 -0
- package/src/fixture/no-fixture.ts +22 -3
- package/src/fixture/response-reference.ts +3 -11
- package/src/index.ts +3 -3
- package/dist-mjs/fixture/concurrent-promises.mjs +0 -191
- package/src/fixture/concurrent-promises.ts +0 -242
package/dist-cjs/metafile.json
CHANGED
|
@@ -8144,6 +8144,32 @@
|
|
|
8144
8144
|
],
|
|
8145
8145
|
"format": "cjs"
|
|
8146
8146
|
},
|
|
8147
|
+
"src/ast/tree.ts": {
|
|
8148
|
+
"bytes": 2319,
|
|
8149
|
+
"imports": [],
|
|
8150
|
+
"format": "esm"
|
|
8151
|
+
},
|
|
8152
|
+
"src/fixture/response-reference.ts": {
|
|
8153
|
+
"bytes": 4003,
|
|
8154
|
+
"imports": [
|
|
8155
|
+
{
|
|
8156
|
+
"path": "node_modules/eslint/lib/api.js",
|
|
8157
|
+
"kind": "import-statement",
|
|
8158
|
+
"original": "eslint"
|
|
8159
|
+
},
|
|
8160
|
+
{
|
|
8161
|
+
"path": "node:assert",
|
|
8162
|
+
"kind": "import-statement",
|
|
8163
|
+
"external": true
|
|
8164
|
+
},
|
|
8165
|
+
{
|
|
8166
|
+
"path": "src/ast/tree.ts",
|
|
8167
|
+
"kind": "import-statement",
|
|
8168
|
+
"original": "../ast/tree"
|
|
8169
|
+
}
|
|
8170
|
+
],
|
|
8171
|
+
"format": "esm"
|
|
8172
|
+
},
|
|
8147
8173
|
"package.json": {
|
|
8148
8174
|
"bytes": 2685,
|
|
8149
8175
|
"imports": [],
|
|
@@ -8166,39 +8192,24 @@
|
|
|
8166
8192
|
],
|
|
8167
8193
|
"format": "esm"
|
|
8168
8194
|
},
|
|
8169
|
-
"src/
|
|
8170
|
-
"bytes":
|
|
8195
|
+
"src/fixture/fetch.ts": {
|
|
8196
|
+
"bytes": 1427,
|
|
8171
8197
|
"imports": [
|
|
8172
8198
|
{
|
|
8173
|
-
"path": "
|
|
8199
|
+
"path": "src/ast/tree.ts",
|
|
8174
8200
|
"kind": "import-statement",
|
|
8175
|
-
"
|
|
8201
|
+
"original": "../ast/tree"
|
|
8176
8202
|
}
|
|
8177
8203
|
],
|
|
8178
8204
|
"format": "esm"
|
|
8179
8205
|
},
|
|
8180
|
-
"src/
|
|
8181
|
-
"bytes":
|
|
8182
|
-
"imports": [],
|
|
8183
|
-
"format": "esm"
|
|
8184
|
-
},
|
|
8185
|
-
"src/fixture/variable.ts": {
|
|
8186
|
-
"bytes": 158,
|
|
8187
|
-
"imports": [],
|
|
8188
|
-
"format": "esm"
|
|
8189
|
-
},
|
|
8190
|
-
"src/fixture/url.ts": {
|
|
8191
|
-
"bytes": 221,
|
|
8192
|
-
"imports": [],
|
|
8193
|
-
"format": "esm"
|
|
8194
|
-
},
|
|
8195
|
-
"src/fixture/concurrent-promises.ts": {
|
|
8196
|
-
"bytes": 10578,
|
|
8206
|
+
"src/fixture/fetch-header-getter.ts": {
|
|
8207
|
+
"bytes": 3432,
|
|
8197
8208
|
"imports": [
|
|
8198
8209
|
{
|
|
8199
|
-
"path": "
|
|
8210
|
+
"path": "src/fixture/response-reference.ts",
|
|
8200
8211
|
"kind": "import-statement",
|
|
8201
|
-
"original": "
|
|
8212
|
+
"original": "./response-reference"
|
|
8202
8213
|
},
|
|
8203
8214
|
{
|
|
8204
8215
|
"path": "node:assert",
|
|
@@ -8210,57 +8221,57 @@
|
|
|
8210
8221
|
"kind": "import-statement",
|
|
8211
8222
|
"original": "../get-documentation-url"
|
|
8212
8223
|
},
|
|
8213
|
-
{
|
|
8214
|
-
"path": "src/ast/format.ts",
|
|
8215
|
-
"kind": "import-statement",
|
|
8216
|
-
"original": "../ast/format"
|
|
8217
|
-
},
|
|
8218
8224
|
{
|
|
8219
8225
|
"path": "src/ast/tree.ts",
|
|
8220
8226
|
"kind": "import-statement",
|
|
8221
8227
|
"original": "../ast/tree"
|
|
8222
8228
|
},
|
|
8223
8229
|
{
|
|
8224
|
-
"path": "src/fixture/
|
|
8230
|
+
"path": "src/fixture/fetch.ts",
|
|
8225
8231
|
"kind": "import-statement",
|
|
8226
|
-
"original": "./
|
|
8227
|
-
}
|
|
8232
|
+
"original": "./fetch"
|
|
8233
|
+
}
|
|
8234
|
+
],
|
|
8235
|
+
"format": "esm"
|
|
8236
|
+
},
|
|
8237
|
+
"src/ast/format.ts": {
|
|
8238
|
+
"bytes": 546,
|
|
8239
|
+
"imports": [
|
|
8228
8240
|
{
|
|
8229
|
-
"path": "
|
|
8241
|
+
"path": "node:assert",
|
|
8230
8242
|
"kind": "import-statement",
|
|
8231
|
-
"
|
|
8243
|
+
"external": true
|
|
8232
8244
|
}
|
|
8233
8245
|
],
|
|
8234
8246
|
"format": "esm"
|
|
8235
8247
|
},
|
|
8236
|
-
"src/fixture/
|
|
8237
|
-
"bytes":
|
|
8248
|
+
"src/fixture/variable.ts": {
|
|
8249
|
+
"bytes": 158,
|
|
8250
|
+
"imports": [],
|
|
8251
|
+
"format": "esm"
|
|
8252
|
+
},
|
|
8253
|
+
"src/fixture/url.ts": {
|
|
8254
|
+
"bytes": 221,
|
|
8255
|
+
"imports": [],
|
|
8256
|
+
"format": "esm"
|
|
8257
|
+
},
|
|
8258
|
+
"src/fixture/fetch-then.ts": {
|
|
8259
|
+
"bytes": 14818,
|
|
8238
8260
|
"imports": [
|
|
8239
8261
|
{
|
|
8240
8262
|
"path": "node_modules/eslint/lib/api.js",
|
|
8241
8263
|
"kind": "import-statement",
|
|
8242
8264
|
"original": "eslint"
|
|
8243
8265
|
},
|
|
8244
|
-
{
|
|
8245
|
-
"path": "node:assert",
|
|
8246
|
-
"kind": "import-statement",
|
|
8247
|
-
"external": true
|
|
8248
|
-
},
|
|
8249
8266
|
{
|
|
8250
8267
|
"path": "src/ast/tree.ts",
|
|
8251
8268
|
"kind": "import-statement",
|
|
8252
8269
|
"original": "../ast/tree"
|
|
8253
|
-
}
|
|
8254
|
-
],
|
|
8255
|
-
"format": "esm"
|
|
8256
|
-
},
|
|
8257
|
-
"src/fixture/fetch-header-getter.ts": {
|
|
8258
|
-
"bytes": 3414,
|
|
8259
|
-
"imports": [
|
|
8270
|
+
},
|
|
8260
8271
|
{
|
|
8261
|
-
"path": "src/fixture/
|
|
8272
|
+
"path": "src/fixture/fetch.ts",
|
|
8262
8273
|
"kind": "import-statement",
|
|
8263
|
-
"original": "./
|
|
8274
|
+
"original": "./fetch"
|
|
8264
8275
|
},
|
|
8265
8276
|
{
|
|
8266
8277
|
"path": "node:assert",
|
|
@@ -8273,9 +8284,19 @@
|
|
|
8273
8284
|
"original": "../get-documentation-url"
|
|
8274
8285
|
},
|
|
8275
8286
|
{
|
|
8276
|
-
"path": "src/ast/
|
|
8287
|
+
"path": "src/ast/format.ts",
|
|
8277
8288
|
"kind": "import-statement",
|
|
8278
|
-
"original": "../ast/
|
|
8289
|
+
"original": "../ast/format"
|
|
8290
|
+
},
|
|
8291
|
+
{
|
|
8292
|
+
"path": "src/fixture/variable.ts",
|
|
8293
|
+
"kind": "import-statement",
|
|
8294
|
+
"original": "./variable"
|
|
8295
|
+
},
|
|
8296
|
+
{
|
|
8297
|
+
"path": "src/fixture/url.ts",
|
|
8298
|
+
"kind": "import-statement",
|
|
8299
|
+
"original": "./url"
|
|
8279
8300
|
}
|
|
8280
8301
|
],
|
|
8281
8302
|
"format": "esm"
|
|
@@ -8291,13 +8312,8 @@
|
|
|
8291
8312
|
],
|
|
8292
8313
|
"format": "esm"
|
|
8293
8314
|
},
|
|
8294
|
-
"src/fixture/fetch.ts": {
|
|
8295
|
-
"bytes": 149,
|
|
8296
|
-
"imports": [],
|
|
8297
|
-
"format": "esm"
|
|
8298
|
-
},
|
|
8299
8315
|
"src/fixture/no-fixture.ts": {
|
|
8300
|
-
"bytes":
|
|
8316
|
+
"bytes": 19830,
|
|
8301
8317
|
"imports": [
|
|
8302
8318
|
{
|
|
8303
8319
|
"path": "node_modules/eslint/lib/api.js",
|
|
@@ -8309,6 +8325,11 @@
|
|
|
8309
8325
|
"kind": "import-statement",
|
|
8310
8326
|
"original": "../ast/tree"
|
|
8311
8327
|
},
|
|
8328
|
+
{
|
|
8329
|
+
"path": "src/fixture/fetch.ts",
|
|
8330
|
+
"kind": "import-statement",
|
|
8331
|
+
"original": "./fetch"
|
|
8332
|
+
},
|
|
8312
8333
|
{
|
|
8313
8334
|
"path": "src/fixture/response-reference.ts",
|
|
8314
8335
|
"kind": "import-statement",
|
|
@@ -8329,11 +8350,6 @@
|
|
|
8329
8350
|
"kind": "import-statement",
|
|
8330
8351
|
"original": "../ast/format"
|
|
8331
8352
|
},
|
|
8332
|
-
{
|
|
8333
|
-
"path": "src/fixture/fetch.ts",
|
|
8334
|
-
"kind": "import-statement",
|
|
8335
|
-
"original": "./fetch"
|
|
8336
|
-
},
|
|
8337
8353
|
{
|
|
8338
8354
|
"path": "src/fixture/variable.ts",
|
|
8339
8355
|
"kind": "import-statement",
|
|
@@ -8404,17 +8420,17 @@
|
|
|
8404
8420
|
"format": "esm"
|
|
8405
8421
|
},
|
|
8406
8422
|
"src/index.ts": {
|
|
8407
|
-
"bytes":
|
|
8423
|
+
"bytes": 3299,
|
|
8408
8424
|
"imports": [
|
|
8409
8425
|
{
|
|
8410
|
-
"path": "src/fixture/
|
|
8426
|
+
"path": "src/fixture/fetch-header-getter.ts",
|
|
8411
8427
|
"kind": "import-statement",
|
|
8412
|
-
"original": "./fixture/
|
|
8428
|
+
"original": "./fixture/fetch-header-getter"
|
|
8413
8429
|
},
|
|
8414
8430
|
{
|
|
8415
|
-
"path": "src/fixture/fetch-
|
|
8431
|
+
"path": "src/fixture/fetch-then.ts",
|
|
8416
8432
|
"kind": "import-statement",
|
|
8417
|
-
"original": "./fixture/fetch-
|
|
8433
|
+
"original": "./fixture/fetch-then"
|
|
8418
8434
|
},
|
|
8419
8435
|
{
|
|
8420
8436
|
"path": "src/invalid-json-stringify.ts",
|
|
@@ -10639,7 +10655,13 @@
|
|
|
10639
10655
|
"bytesInOutput": 772
|
|
10640
10656
|
},
|
|
10641
10657
|
"src/index.ts": {
|
|
10642
|
-
"bytesInOutput":
|
|
10658
|
+
"bytesInOutput": 2262
|
|
10659
|
+
},
|
|
10660
|
+
"src/ast/tree.ts": {
|
|
10661
|
+
"bytesInOutput": 1648
|
|
10662
|
+
},
|
|
10663
|
+
"src/fixture/response-reference.ts": {
|
|
10664
|
+
"bytesInOutput": 2667
|
|
10643
10665
|
},
|
|
10644
10666
|
"package.json": {
|
|
10645
10667
|
"bytesInOutput": 2774
|
|
@@ -10647,11 +10669,14 @@
|
|
|
10647
10669
|
"src/get-documentation-url.ts": {
|
|
10648
10670
|
"bytesInOutput": 146
|
|
10649
10671
|
},
|
|
10650
|
-
"src/
|
|
10651
|
-
"bytesInOutput":
|
|
10672
|
+
"src/fixture/fetch.ts": {
|
|
10673
|
+
"bytesInOutput": 1206
|
|
10652
10674
|
},
|
|
10653
|
-
"src/
|
|
10654
|
-
"bytesInOutput":
|
|
10675
|
+
"src/fixture/fetch-header-getter.ts": {
|
|
10676
|
+
"bytesInOutput": 2805
|
|
10677
|
+
},
|
|
10678
|
+
"src/ast/format.ts": {
|
|
10679
|
+
"bytesInOutput": 334
|
|
10655
10680
|
},
|
|
10656
10681
|
"src/fixture/variable.ts": {
|
|
10657
10682
|
"bytesInOutput": 118
|
|
@@ -10659,23 +10684,14 @@
|
|
|
10659
10684
|
"src/fixture/url.ts": {
|
|
10660
10685
|
"bytesInOutput": 129
|
|
10661
10686
|
},
|
|
10662
|
-
"src/fixture/
|
|
10663
|
-
"bytesInOutput":
|
|
10664
|
-
},
|
|
10665
|
-
"src/fixture/response-reference.ts": {
|
|
10666
|
-
"bytesInOutput": 2776
|
|
10667
|
-
},
|
|
10668
|
-
"src/fixture/fetch-header-getter.ts": {
|
|
10669
|
-
"bytesInOutput": 2693
|
|
10687
|
+
"src/fixture/fetch-then.ts": {
|
|
10688
|
+
"bytesInOutput": 12296
|
|
10670
10689
|
},
|
|
10671
10690
|
"src/invalid-json-stringify.ts": {
|
|
10672
10691
|
"bytesInOutput": 2473
|
|
10673
10692
|
},
|
|
10674
|
-
"src/fixture/fetch.ts": {
|
|
10675
|
-
"bytesInOutput": 113
|
|
10676
|
-
},
|
|
10677
10693
|
"src/fixture/no-fixture.ts": {
|
|
10678
|
-
"bytesInOutput":
|
|
10694
|
+
"bytesInOutput": 16444
|
|
10679
10695
|
},
|
|
10680
10696
|
"src/no-promise-instance-method.ts": {
|
|
10681
10697
|
"bytesInOutput": 1275
|
|
@@ -10708,7 +10724,7 @@
|
|
|
10708
10724
|
"bytesInOutput": 3362
|
|
10709
10725
|
}
|
|
10710
10726
|
},
|
|
10711
|
-
"bytes":
|
|
10727
|
+
"bytes": 3854155
|
|
10712
10728
|
}
|
|
10713
10729
|
}
|
|
10714
10730
|
}
|
package/dist-mjs/ast/tree.mjs
CHANGED
|
@@ -17,11 +17,11 @@ function getAncestor(node, matcher, exitMatcher) {
|
|
|
17
17
|
}
|
|
18
18
|
return getAncestor(parent, matcher, exitMatcher);
|
|
19
19
|
}
|
|
20
|
+
function isBlockStatement(node) {
|
|
21
|
+
return node.type.endsWith("Statement") || node.type.endsWith("Declaration");
|
|
22
|
+
}
|
|
20
23
|
function getEnclosingStatement(node) {
|
|
21
|
-
return getAncestor(
|
|
22
|
-
node,
|
|
23
|
-
(parentNode) => parentNode.type.endsWith("Statement") || parentNode.type.endsWith("Declaration")
|
|
24
|
-
);
|
|
24
|
+
return getAncestor(node, isBlockStatement);
|
|
25
25
|
}
|
|
26
26
|
function getEnclosingScopeNode(node) {
|
|
27
27
|
return getAncestor(
|
|
@@ -29,10 +29,36 @@ function getEnclosingScopeNode(node) {
|
|
|
29
29
|
(parentNode) => ["FunctionExpression", "FunctionDeclaration", "ArrowFunctionExpression", "Program"].includes(parentNode.type)
|
|
30
30
|
);
|
|
31
31
|
}
|
|
32
|
+
function isUsedInArrayOrAsArgument(node) {
|
|
33
|
+
if (isBlockStatement(node)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
const parent = getParent(node);
|
|
37
|
+
if (!parent) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if (parent.type === "ArrayExpression" || parent.type === "CallExpression" && parent.arguments.includes(node)) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return isUsedInArrayOrAsArgument(parent);
|
|
44
|
+
}
|
|
45
|
+
function getEnclosingFunction(node) {
|
|
46
|
+
if (node.type === "FunctionDeclaration" || node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression") {
|
|
47
|
+
return node;
|
|
48
|
+
}
|
|
49
|
+
const parent = getParent(node);
|
|
50
|
+
if (!parent) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
return getEnclosingFunction(parent);
|
|
54
|
+
}
|
|
32
55
|
export {
|
|
33
56
|
getAncestor,
|
|
57
|
+
getEnclosingFunction,
|
|
34
58
|
getEnclosingScopeNode,
|
|
35
59
|
getEnclosingStatement,
|
|
36
|
-
getParent
|
|
60
|
+
getParent,
|
|
61
|
+
isBlockStatement,
|
|
62
|
+
isUsedInArrayOrAsArgument
|
|
37
63
|
};
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FzdC90cmVlLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQWdCTyxTQUFTLFVBQVUsTUFBcUM7QUFDN0QsU0FBUSxLQUF3QztBQUNsRDtBQUVPLFNBQVMsWUFDZCxNQUNBLFNBQ0EsYUFDa0I7QUFDbEIsUUFBTSxTQUFTLFVBQVUsSUFBSTtBQUM3QixNQUFJLENBQUMsUUFBUTtBQUNYLFdBQU87QUFBQSxFQUNULFdBQVcsT0FBTyxZQUFZLFlBQVksT0FBTyxTQUFTLFNBQVM7QUFDakUsV0FBTztBQUFBLEVBQ1QsV0FBVyxPQUFPLFlBQVksY0FBYyxRQUFRLE1BQU0sR0FBRztBQUMzRCxXQUFPO0FBQUEsRUFDVCxXQUFXLE9BQU8sZ0JBQWdCLFlBQVksT0FBTyxTQUFTLGFBQWE7QUFDekUsV0FBTztBQUFBLEVBQ1QsV0FBVyxPQUFPLGdCQUFnQixjQUFjLFlBQVksTUFBTSxHQUFHO0FBQ25FLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTyxZQUFZLFFBQVEsU0FBUyxXQUFXO0FBQ2pEO0FBRU8sU0FBUyxpQkFBaUIsTUFBWTtBQUMzQyxTQUFPLEtBQUssS0FBSyxTQUFTLFdBQVcsS0FBSyxLQUFLLEtBQUssU0FBUyxhQUFhO0FBQzVFO0FBRU8sU0FBUyxzQkFBc0IsTUFBWTtBQUNoRCxTQUFPLFlBQVksTUFBTSxnQkFBZ0I7QUFDM0M7QUFFTyxTQUFTLHNCQUFzQixNQUFZO0FBQ2hELFNBQU87QUFBQSxJQUFZO0FBQUEsSUFBTSxDQUFDLGVBQ3hCLENBQUMsc0JBQXNCLHVCQUF1QiwyQkFBMkIsU0FBUyxFQUFFLFNBQVMsV0FBVyxJQUFJO0FBQUEsRUFDOUc7QUFDRjtBQUVPLFNBQVMsMEJBQTBCLE1BQVk7QUFDcEQsTUFBSSxpQkFBaUIsSUFBSSxHQUFHO0FBQzFCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxTQUFTLFVBQVUsSUFBSTtBQUM3QixNQUFJLENBQUMsUUFBUTtBQUNYLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFDRSxPQUFPLFNBQVMscUJBQ2YsT0FBTyxTQUFTLG9CQUFvQixPQUFPLFVBQVUsU0FBUyxJQUFrQixHQUNqRjtBQUNBLFdBQU87QUFBQSxFQUNUO0FBR0EsU0FBTywwQkFBMEIsTUFBTTtBQUN6QztBQUVPLFNBQVMscUJBQXFCLE1BQVk7QUFDL0MsTUFDRSxLQUFLLFNBQVMseUJBQ2QsS0FBSyxTQUFTLHdCQUNkLEtBQUssU0FBUywyQkFDZDtBQUNBLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxTQUFTLFVBQVUsSUFBSTtBQUM3QixNQUFJLENBQUMsUUFBUTtBQUNYO0FBQUEsRUFDRjtBQUNBLFNBQU8scUJBQXFCLE1BQU07QUFDcEM7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -3,6 +3,7 @@ import { analyzeResponseReferences } from "./response-reference.mjs";
|
|
|
3
3
|
import { strict as assert } from "node:assert";
|
|
4
4
|
import getDocumentationUrl from "../get-documentation-url.mjs";
|
|
5
5
|
import { getParent } from "../ast/tree.mjs";
|
|
6
|
+
import { isInvalidResponseHeadersAccess } from "./fetch.mjs";
|
|
6
7
|
var ruleId = "fetch-header-getter";
|
|
7
8
|
var rule = {
|
|
8
9
|
meta: {
|
|
@@ -29,28 +30,34 @@ var rule = {
|
|
|
29
30
|
scopeManager
|
|
30
31
|
);
|
|
31
32
|
assert.ok(responseVariable);
|
|
32
|
-
const
|
|
33
|
-
|
|
33
|
+
const directHeadersReferences = responseHeadersReferences.filter((headersReference) => {
|
|
34
|
+
const headersAccess = getParent(headersReference);
|
|
35
|
+
return headersAccess?.type !== "VariableDeclarator";
|
|
36
|
+
});
|
|
37
|
+
const indirectHeadersReferences = responseHeadersReferences.map(getParent).filter((parent) => parent?.type === "VariableDeclarator").map((declarator) => declarator.id.name).map((redefinedHeadersVariableName) => {
|
|
34
38
|
const headersVariable = responseVariable.scope.variables.find((variable) => {
|
|
35
39
|
const identifier = variable.identifiers[0];
|
|
36
40
|
return identifier?.type === "Identifier" && identifier.name === redefinedHeadersVariableName;
|
|
37
41
|
});
|
|
38
|
-
return headersVariable?.references.map((reference) =>
|
|
42
|
+
return headersVariable?.references.map((reference) => reference.identifier) ?? [];
|
|
39
43
|
}).flat();
|
|
40
|
-
const
|
|
41
|
-
|
|
44
|
+
const invalidHeadersReferences = [...directHeadersReferences, ...indirectHeadersReferences].filter(
|
|
45
|
+
isInvalidResponseHeadersAccess
|
|
42
46
|
);
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
invalidHeadersReferences.forEach((headersReference) => {
|
|
48
|
+
const headerAccess = getParent(headersReference);
|
|
49
|
+
if (headerAccess?.type === "MemberExpression") {
|
|
50
|
+
const headerNameNode = headerAccess.property;
|
|
51
|
+
const headerName = headerAccess.computed ? sourceCode.getText(headerNameNode) : `'${sourceCode.getText(headerNameNode)}'`;
|
|
52
|
+
const replacementText = `${sourceCode.getText(headerAccess.object)}.get(${headerName})`;
|
|
53
|
+
context.report({
|
|
54
|
+
node: headerAccess,
|
|
55
|
+
messageId: "shouldUseHeaderGetter",
|
|
56
|
+
fix(fixer) {
|
|
57
|
+
return fixer.replaceText(headerAccess, replacementText);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
54
61
|
});
|
|
55
62
|
}
|
|
56
63
|
};
|
|
@@ -61,4 +68,4 @@ export {
|
|
|
61
68
|
fetch_header_getter_default as default,
|
|
62
69
|
ruleId
|
|
63
70
|
};
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2ZpeHR1cmUvZmV0Y2gtaGVhZGVyLWdldHRlci50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFVQSxTQUFTLGlDQUFpQztBQUMxQyxTQUFTLFVBQVUsY0FBYztBQUNqQyxPQUFPLHlCQUF5QjtBQUNoQyxTQUFTLGlCQUFpQjtBQUMxQixTQUFTLHNDQUFzQztBQUV4QyxJQUFNLFNBQVM7QUFFdEIsSUFBTSxPQUF3QjtBQUFBLEVBQzVCLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxNQUNiLEtBQUssb0JBQW9CLE1BQU07QUFBQSxJQUNqQztBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsdUJBQXVCO0FBQUEsSUFDekI7QUFBQSxJQUNBLFNBQVM7QUFBQSxJQUNULFFBQVEsQ0FBQztBQUFBLEVBQ1g7QUFBQSxFQUNBLE9BQU8sU0FBUztBQUNkLFVBQU0sYUFBYSxRQUFRO0FBQzNCLFVBQU0sZUFBZSxXQUFXO0FBRWhDLFdBQU87QUFBQSxNQUNMLHlEQUF5RCxDQUFDLGNBQWtDO0FBQzFGLGNBQU0sc0JBQXNCLFVBQVUsU0FBUztBQUMvQyxlQUFPLEdBQUcscUJBQXFCLFNBQVMscUJBQXFCO0FBQzdELGNBQU0sRUFBRSxVQUFVLGtCQUFrQixtQkFBbUIsMEJBQTBCLElBQUk7QUFBQSxVQUNuRjtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsZUFBTyxHQUFHLGdCQUFnQjtBQUUxQixjQUFNLDBCQUEwQiwwQkFBMEIsT0FBTyxDQUFDLHFCQUFxQjtBQUNyRixnQkFBTSxnQkFBZ0IsVUFBVSxnQkFBZ0I7QUFDaEQsaUJBQU8sZUFBZSxTQUFTO0FBQUEsUUFDakMsQ0FBQztBQUVELGNBQU0sNEJBQTRCLDBCQUMvQixJQUFJLFNBQVMsRUFDYixPQUFPLENBQUMsV0FBeUMsUUFBUSxTQUFTLG9CQUFvQixFQUN0RixJQUFJLENBQUMsZUFBZ0IsV0FBVyxHQUFrQixJQUFJLEVBQ3RELElBQUksQ0FBQyxpQ0FBaUM7QUFDckMsZ0JBQU0sa0JBQWtCLGlCQUFpQixNQUFNLFVBQVUsS0FBSyxDQUFDLGFBQWE7QUFDMUUsa0JBQU0sYUFBYSxTQUFTLFlBQVksQ0FBQztBQUN6QyxtQkFBTyxZQUFZLFNBQVMsZ0JBQWdCLFdBQVcsU0FBUztBQUFBLFVBQ2xFLENBQUM7QUFDRCxpQkFBTyxpQkFBaUIsV0FBVyxJQUFJLENBQUMsY0FBYyxVQUFVLFVBQVUsS0FBSyxDQUFDO0FBQUEsUUFDbEYsQ0FBQyxFQUNBLEtBQUs7QUFFUixjQUFNLDJCQUEyQixDQUFDLEdBQUcseUJBQXlCLEdBQUcseUJBQXlCLEVBQUU7QUFBQSxVQUMxRjtBQUFBLFFBQ0Y7QUFFQSxpQ0FBeUIsUUFBUSxDQUFDLHFCQUFxQjtBQUNyRCxnQkFBTSxlQUFlLFVBQVUsZ0JBQWdCO0FBQy9DLGNBQUksY0FBYyxTQUFTLG9CQUFvQjtBQUM3QyxrQkFBTSxpQkFBaUIsYUFBYTtBQUNwQyxrQkFBTSxhQUFhLGFBQWEsV0FDNUIsV0FBVyxRQUFRLGNBQWMsSUFDakMsSUFBSSxXQUFXLFFBQVEsY0FBYyxDQUFDO0FBQzFDLGtCQUFNLGtCQUFrQixHQUFHLFdBQVcsUUFBUSxhQUFhLE1BQU0sQ0FBQyxRQUFRLFVBQVU7QUFFcEYsb0JBQVEsT0FBTztBQUFBLGNBQ2IsTUFBTTtBQUFBLGNBQ04sV0FBVztBQUFBLGNBQ1gsSUFBSSxPQUFPO0FBQ1QsdUJBQU8sTUFBTSxZQUFZLGNBQWMsZUFBZTtBQUFBLGNBQ3hEO0FBQUEsWUFDRixDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGO0FBRUEsSUFBTyw4QkFBUTsiLAogICJuYW1lcyI6IFtdCn0K
|