@checkdigit/eslint-plugin 6.6.0-PR.75-4211 → 6.6.0-PR.75-1f73
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 +458 -384
- package/dist-cjs/metafile.json +31 -7
- package/dist-mjs/agent/no-mapped-response.mjs +75 -0
- package/dist-mjs/index.mjs +11 -6
- package/dist-types/agent/no-mapped-response.d.ts +4 -0
- package/dist-types/index.d.ts +7 -3
- package/package.json +1 -1
- package/src/agent/no-mapped-response.ts +84 -0
- package/src/index.ts +10 -5
package/dist-cjs/metafile.json
CHANGED
|
@@ -12166,7 +12166,7 @@
|
|
|
12166
12166
|
"format": "esm"
|
|
12167
12167
|
},
|
|
12168
12168
|
"package.json": {
|
|
12169
|
-
"bytes":
|
|
12169
|
+
"bytes": 2871,
|
|
12170
12170
|
"imports": [],
|
|
12171
12171
|
"format": "esm",
|
|
12172
12172
|
"with": {
|
|
@@ -12443,6 +12443,22 @@
|
|
|
12443
12443
|
],
|
|
12444
12444
|
"format": "esm"
|
|
12445
12445
|
},
|
|
12446
|
+
"src/agent/no-mapped-response.ts": {
|
|
12447
|
+
"bytes": 2805,
|
|
12448
|
+
"imports": [
|
|
12449
|
+
{
|
|
12450
|
+
"path": "node_modules/@typescript-eslint/utils/dist/index.js",
|
|
12451
|
+
"kind": "import-statement",
|
|
12452
|
+
"original": "@typescript-eslint/utils"
|
|
12453
|
+
},
|
|
12454
|
+
{
|
|
12455
|
+
"path": "src/get-documentation-url.ts",
|
|
12456
|
+
"kind": "import-statement",
|
|
12457
|
+
"original": "../get-documentation-url"
|
|
12458
|
+
}
|
|
12459
|
+
],
|
|
12460
|
+
"format": "esm"
|
|
12461
|
+
},
|
|
12446
12462
|
"src/no-promise-instance-method.ts": {
|
|
12447
12463
|
"bytes": 1617,
|
|
12448
12464
|
"imports": [
|
|
@@ -12593,7 +12609,7 @@
|
|
|
12593
12609
|
"format": "esm"
|
|
12594
12610
|
},
|
|
12595
12611
|
"src/index.ts": {
|
|
12596
|
-
"bytes":
|
|
12612
|
+
"bytes": 6171,
|
|
12597
12613
|
"imports": [
|
|
12598
12614
|
{
|
|
12599
12615
|
"path": "src/agent/add-url-domain.ts",
|
|
@@ -12630,6 +12646,11 @@
|
|
|
12630
12646
|
"kind": "import-statement",
|
|
12631
12647
|
"original": "./agent/no-full-response"
|
|
12632
12648
|
},
|
|
12649
|
+
{
|
|
12650
|
+
"path": "src/agent/no-mapped-response.ts",
|
|
12651
|
+
"kind": "import-statement",
|
|
12652
|
+
"original": "./agent/no-mapped-response"
|
|
12653
|
+
},
|
|
12633
12654
|
{
|
|
12634
12655
|
"path": "src/no-promise-instance-method.ts",
|
|
12635
12656
|
"kind": "import-statement",
|
|
@@ -15489,13 +15510,13 @@
|
|
|
15489
15510
|
"bytesInOutput": 2217
|
|
15490
15511
|
},
|
|
15491
15512
|
"src/index.ts": {
|
|
15492
|
-
"bytesInOutput":
|
|
15513
|
+
"bytesInOutput": 3977
|
|
15493
15514
|
},
|
|
15494
15515
|
"src/agent/url.ts": {
|
|
15495
15516
|
"bytesInOutput": 745
|
|
15496
15517
|
},
|
|
15497
15518
|
"package.json": {
|
|
15498
|
-
"bytesInOutput":
|
|
15519
|
+
"bytesInOutput": 2971
|
|
15499
15520
|
},
|
|
15500
15521
|
"src/get-documentation-url.ts": {
|
|
15501
15522
|
"bytesInOutput": 148
|
|
@@ -15539,17 +15560,20 @@
|
|
|
15539
15560
|
"src/agent/no-full-response.ts": {
|
|
15540
15561
|
"bytesInOutput": 2006
|
|
15541
15562
|
},
|
|
15563
|
+
"src/agent/no-mapped-response.ts": {
|
|
15564
|
+
"bytesInOutput": 2417
|
|
15565
|
+
},
|
|
15542
15566
|
"src/no-promise-instance-method.ts": {
|
|
15543
15567
|
"bytesInOutput": 1275
|
|
15544
15568
|
},
|
|
15545
15569
|
"src/agent/no-service-wrapper.ts": {
|
|
15546
|
-
"bytesInOutput":
|
|
15570
|
+
"bytesInOutput": 8914
|
|
15547
15571
|
},
|
|
15548
15572
|
"src/agent/no-status-code.ts": {
|
|
15549
15573
|
"bytesInOutput": 2037
|
|
15550
15574
|
},
|
|
15551
15575
|
"src/require-resolve-full-response.ts": {
|
|
15552
|
-
"bytesInOutput":
|
|
15576
|
+
"bytesInOutput": 7198
|
|
15553
15577
|
},
|
|
15554
15578
|
"src/file-path-comment.ts": {
|
|
15555
15579
|
"bytesInOutput": 1961
|
|
@@ -15579,7 +15603,7 @@
|
|
|
15579
15603
|
"bytesInOutput": 3362
|
|
15580
15604
|
}
|
|
15581
15605
|
},
|
|
15582
|
-
"bytes":
|
|
15606
|
+
"bytes": 4333031
|
|
15583
15607
|
}
|
|
15584
15608
|
}
|
|
15585
15609
|
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// src/agent/no-mapped-response.ts
|
|
2
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
3
|
+
import getDocumentationUrl from "../get-documentation-url.mjs";
|
|
4
|
+
var ruleId = "no-mapped-response";
|
|
5
|
+
var createRule = ESLintUtils.RuleCreator((name) => getDocumentationUrl(name));
|
|
6
|
+
var rule = createRule({
|
|
7
|
+
name: ruleId,
|
|
8
|
+
meta: {
|
|
9
|
+
type: "suggestion",
|
|
10
|
+
docs: {
|
|
11
|
+
description: "Replace the usage of MappedResponse type with FetchResponse."
|
|
12
|
+
},
|
|
13
|
+
messages: {
|
|
14
|
+
replaceFullResponseWithFetchResponse: "Replace the usage of FullResponse type with FetchResponse.",
|
|
15
|
+
unknownError: 'Unknown error occurred in file "{{fileName}}": {{ error }}.'
|
|
16
|
+
},
|
|
17
|
+
fixable: "code",
|
|
18
|
+
schema: []
|
|
19
|
+
},
|
|
20
|
+
defaultOptions: [],
|
|
21
|
+
create(context) {
|
|
22
|
+
const sourceCode = context.sourceCode;
|
|
23
|
+
return {
|
|
24
|
+
'TSTypeReference[typeName.name="MappedResponse"]': (typeReference) => {
|
|
25
|
+
try {
|
|
26
|
+
context.report({
|
|
27
|
+
messageId: "replaceFullResponseWithFetchResponse",
|
|
28
|
+
node: typeReference,
|
|
29
|
+
fix(fixer) {
|
|
30
|
+
const typeParams = sourceCode.getText(typeReference.typeArguments);
|
|
31
|
+
return fixer.replaceText(typeReference, `FetchResponse${typeParams || ""}`);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
} catch (error) {
|
|
35
|
+
console.error(`Failed to apply ${ruleId} rule for file "${context.filename}":`, error);
|
|
36
|
+
context.report({
|
|
37
|
+
node: typeReference,
|
|
38
|
+
messageId: "unknownError",
|
|
39
|
+
data: {
|
|
40
|
+
fileName: context.filename,
|
|
41
|
+
error: error instanceof Error ? error.toString() : JSON.stringify(error)
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
'ImportSpecifier[imported.name="MappedResponse"]': (importSpecifier) => {
|
|
47
|
+
try {
|
|
48
|
+
context.report({
|
|
49
|
+
messageId: "replaceFullResponseWithFetchResponse",
|
|
50
|
+
node: importSpecifier.imported,
|
|
51
|
+
fix(fixer) {
|
|
52
|
+
return fixer.replaceText(importSpecifier.imported, "FetchResponse");
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
} catch (error) {
|
|
56
|
+
console.error(`Failed to apply ${ruleId} rule for file "${context.filename}":`, error);
|
|
57
|
+
context.report({
|
|
58
|
+
node: importSpecifier.imported,
|
|
59
|
+
messageId: "unknownError",
|
|
60
|
+
data: {
|
|
61
|
+
fileName: context.filename,
|
|
62
|
+
error: error instanceof Error ? error.toString() : JSON.stringify(error)
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
var no_mapped_response_default = rule;
|
|
71
|
+
export {
|
|
72
|
+
no_mapped_response_default as default,
|
|
73
|
+
ruleId
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L25vLW1hcHBlZC1yZXNwb25zZS50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFRQSxTQUFTLG1CQUE2QjtBQUN0QyxPQUFPLHlCQUF5QjtBQUV6QixJQUFNLFNBQVM7QUFFdEIsSUFBTSxhQUFhLFlBQVksWUFBWSxDQUFDLFNBQVMsb0JBQW9CLElBQUksQ0FBQztBQUU5RSxJQUFNLE9BQU8sV0FBVztBQUFBLEVBQ3RCLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxVQUFVO0FBQUEsTUFDUixzQ0FBc0M7QUFBQSxNQUN0QyxjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBLFNBQVM7QUFBQSxJQUNULFFBQVEsQ0FBQztBQUFBLEVBQ1g7QUFBQSxFQUNBLGdCQUFnQixDQUFDO0FBQUEsRUFDakIsT0FBTyxTQUFTO0FBQ2QsVUFBTSxhQUFhLFFBQVE7QUFFM0IsV0FBTztBQUFBLE1BQ0wsbURBQW1ELENBQUMsa0JBQTRDO0FBQzlGLFlBQUk7QUFDRixrQkFBUSxPQUFPO0FBQUEsWUFDYixXQUFXO0FBQUEsWUFDWCxNQUFNO0FBQUEsWUFDTixJQUFJLE9BQU87QUFDVCxvQkFBTSxhQUFhLFdBQVcsUUFBUSxjQUFjLGFBQWE7QUFDakUscUJBQU8sTUFBTSxZQUFZLGVBQWUsZ0JBQWdCLGNBQWMsRUFBRSxFQUFFO0FBQUEsWUFDNUU7QUFBQSxVQUNGLENBQUM7QUFBQSxRQUNILFNBQVMsT0FBTztBQUVkLGtCQUFRLE1BQU0sbUJBQW1CLE1BQU0sbUJBQW1CLFFBQVEsUUFBUSxNQUFNLEtBQUs7QUFDckYsa0JBQVEsT0FBTztBQUFBLFlBQ2IsTUFBTTtBQUFBLFlBQ04sV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLGNBQ0osVUFBVSxRQUFRO0FBQUEsY0FDbEIsT0FBTyxpQkFBaUIsUUFBUSxNQUFNLFNBQVMsSUFBSSxLQUFLLFVBQVUsS0FBSztBQUFBLFlBQ3pFO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0Y7QUFBQSxNQUNBLG1EQUFtRCxDQUFDLG9CQUE4QztBQUNoRyxZQUFJO0FBQ0Ysa0JBQVEsT0FBTztBQUFBLFlBQ2IsV0FBVztBQUFBLFlBQ1gsTUFBTSxnQkFBZ0I7QUFBQSxZQUN0QixJQUFJLE9BQU87QUFDVCxxQkFBTyxNQUFNLFlBQVksZ0JBQWdCLFVBQVUsZUFBZTtBQUFBLFlBQ3BFO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSCxTQUFTLE9BQU87QUFFZCxrQkFBUSxNQUFNLG1CQUFtQixNQUFNLG1CQUFtQixRQUFRLFFBQVEsTUFBTSxLQUFLO0FBQ3JGLGtCQUFRLE9BQU87QUFBQSxZQUNiLE1BQU0sZ0JBQWdCO0FBQUEsWUFDdEIsV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLGNBQ0osVUFBVSxRQUFRO0FBQUEsY0FDbEIsT0FBTyxpQkFBaUIsUUFBUSxNQUFNLFNBQVMsSUFBSSxLQUFLLFVBQVUsS0FBSztBQUFBLFlBQ3pFO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFFRCxJQUFPLDZCQUFROyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist-mjs/index.mjs
CHANGED
|
@@ -8,6 +8,7 @@ import fetchThen, { ruleId as fetchThenRuleId } from "./agent/fetch-then.mjs";
|
|
|
8
8
|
import invalidJsonStringify, { ruleId as invalidJsonStringifyRuleId } from "./invalid-json-stringify.mjs";
|
|
9
9
|
import noFixture, { ruleId as noFixtureRuleId } from "./agent/no-fixture.mjs";
|
|
10
10
|
import noFullResponse, { ruleId as noFullResponseRuleId } from "./agent/no-full-response.mjs";
|
|
11
|
+
import noMappedResponse, { ruleId as noMappedResponseRuleId } from "./agent/no-mapped-response.mjs";
|
|
11
12
|
import noPromiseInstanceMethod, { ruleId as noPromiseInstanceMethodRuleId } from "./no-promise-instance-method.mjs";
|
|
12
13
|
import noServiceWrapper, { ruleId as noServiceWrapperRuleId } from "./agent/no-service-wrapper.mjs";
|
|
13
14
|
import noStatusCode, { ruleId as noStatusCodeRuleId } from "./agent/no-status-code.mjs";
|
|
@@ -44,6 +45,7 @@ var src_default = {
|
|
|
44
45
|
[fetchResponseHeaderGetterRuleId]: fetchResponseHeaderGetter,
|
|
45
46
|
[addUrlDomainRuleId]: addUrlDomain,
|
|
46
47
|
[noFullResponseRuleId]: noFullResponse,
|
|
48
|
+
[noMappedResponseRuleId]: noMappedResponse,
|
|
47
49
|
[requireResolveFullResponseRuleId]: requireResolveFullResponse
|
|
48
50
|
},
|
|
49
51
|
configs: {
|
|
@@ -86,13 +88,14 @@ var src_default = {
|
|
|
86
88
|
[`@checkdigit/${noPromiseInstanceMethodRuleId}`]: "error"
|
|
87
89
|
}
|
|
88
90
|
},
|
|
89
|
-
"agent-
|
|
90
|
-
|
|
91
|
+
"agent-phase-1-test": {
|
|
92
|
+
files: ["*.spec.ts", "*.test.ts", "src/api/v*/index.ts"],
|
|
91
93
|
rules: {
|
|
92
94
|
[`@checkdigit/${noFullResponseRuleId}`]: "error",
|
|
93
95
|
[`@checkdigit/${requireResolveFullResponseRuleId}`]: "error",
|
|
96
|
+
[`@checkdigit/${noMappedResponseRuleId}`]: "error",
|
|
94
97
|
[`@checkdigit/${addUrlDomainRuleId}`]: "error",
|
|
95
|
-
[`@checkdigit/${noFixtureRuleId}`]: "
|
|
98
|
+
[`@checkdigit/${noFixtureRuleId}`]: "error",
|
|
96
99
|
[`@checkdigit/${noServiceWrapperRuleId}`]: "error",
|
|
97
100
|
[`@checkdigit/${noStatusCodeRuleId}`]: "error",
|
|
98
101
|
[`@checkdigit/${fetchResponseBodyJsonRuleId}`]: "error",
|
|
@@ -100,12 +103,14 @@ var src_default = {
|
|
|
100
103
|
[`@checkdigit/${fetchThenRuleId}`]: "error"
|
|
101
104
|
}
|
|
102
105
|
},
|
|
103
|
-
"agent-
|
|
106
|
+
"agent-phase-2-production": {
|
|
107
|
+
ignorePatterns: ["*.spec.ts", "*.test.ts"],
|
|
104
108
|
rules: {
|
|
105
109
|
[`@checkdigit/${noFullResponseRuleId}`]: "error",
|
|
106
110
|
[`@checkdigit/${requireResolveFullResponseRuleId}`]: "error",
|
|
111
|
+
[`@checkdigit/${noMappedResponseRuleId}`]: "error",
|
|
107
112
|
[`@checkdigit/${addUrlDomainRuleId}`]: "error",
|
|
108
|
-
[`@checkdigit/${noFixtureRuleId}`]: "
|
|
113
|
+
[`@checkdigit/${noFixtureRuleId}`]: "off",
|
|
109
114
|
[`@checkdigit/${noServiceWrapperRuleId}`]: "error",
|
|
110
115
|
[`@checkdigit/${noStatusCodeRuleId}`]: "error",
|
|
111
116
|
[`@checkdigit/${fetchResponseBodyJsonRuleId}`]: "error",
|
|
@@ -118,4 +123,4 @@ var src_default = {
|
|
|
118
123
|
export {
|
|
119
124
|
src_default as default
|
|
120
125
|
};
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,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
|
package/dist-types/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ declare const _default: {
|
|
|
19
19
|
"fetch-response-header-getter-ts": import("@typescript-eslint/utils/ts-eslint").RuleModule<"unknownError" | "useGetter", never[], import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
20
20
|
"add-url-domain": import("@typescript-eslint/utils/ts-eslint").RuleModule<"addDomain" | "unknownError", never[], import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
21
21
|
"no-full-response": import("@typescript-eslint/utils/ts-eslint").RuleModule<"unknownError" | "removeFullResponse", never[], import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
22
|
+
"no-mapped-response": import("@typescript-eslint/utils/ts-eslint").RuleModule<"unknownError" | "replaceFullResponseWithFetchResponse", never[], import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
22
23
|
"require-resolve-full-response": import("@typescript-eslint/utils/ts-eslint").RuleModule<"unknownError" | "invalidOptions", never[], import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
23
24
|
};
|
|
24
25
|
configs: {
|
|
@@ -61,11 +62,12 @@ declare const _default: {
|
|
|
61
62
|
"@checkdigit/no-promise-instance-method": string;
|
|
62
63
|
};
|
|
63
64
|
};
|
|
64
|
-
'agent-
|
|
65
|
-
|
|
65
|
+
'agent-phase-1-test': {
|
|
66
|
+
files: string[];
|
|
66
67
|
rules: {
|
|
67
68
|
"@checkdigit/no-full-response": string;
|
|
68
69
|
"@checkdigit/require-resolve-full-response": string;
|
|
70
|
+
"@checkdigit/no-mapped-response": string;
|
|
69
71
|
"@checkdigit/add-url-domain": string;
|
|
70
72
|
"@checkdigit/no-fixture": string;
|
|
71
73
|
"@checkdigit/no-service-wrapper": string;
|
|
@@ -75,10 +77,12 @@ declare const _default: {
|
|
|
75
77
|
"@checkdigit/fetch-then": string;
|
|
76
78
|
};
|
|
77
79
|
};
|
|
78
|
-
'agent-
|
|
80
|
+
'agent-phase-2-production': {
|
|
81
|
+
ignorePatterns: string[];
|
|
79
82
|
rules: {
|
|
80
83
|
"@checkdigit/no-full-response": string;
|
|
81
84
|
"@checkdigit/require-resolve-full-response": string;
|
|
85
|
+
"@checkdigit/no-mapped-response": string;
|
|
82
86
|
"@checkdigit/add-url-domain": string;
|
|
83
87
|
"@checkdigit/no-fixture": string;
|
|
84
88
|
"@checkdigit/no-service-wrapper": string;
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@checkdigit/eslint-plugin","version":"6.6.0-PR.75-
|
|
1
|
+
{"name":"@checkdigit/eslint-plugin","version":"6.6.0-PR.75-1f73","description":"Check Digit eslint plugins","keywords":["eslint","eslintplugin"],"homepage":"https://github.com/checkdigit/eslint-plugin#readme","bugs":{"url":"https://github.com/checkdigit/eslint-plugin/issues"},"repository":{"type":"git","url":"https://github.com/checkdigit/eslint-plugin"},"license":"MIT","author":"Check Digit, LLC","sideEffects":false,"type":"module","exports":{".":{"types":"./dist-types/index.d.ts","require":"./dist-cjs/index.cjs","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-cjs","dist-mjs","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-cjs/**/*.test.cjs","!dist-cjs/**/*.spec.cjs","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build:dist-cjs":"rimraf dist-cjs && npx builder --type=commonjs --sourceMap --entryPoint=index.ts --outDir=dist-cjs --outFile=index.cjs --external=espree && echo \"module.exports = module.exports.default;\" >> dist-cjs/index.cjs","build:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","ci:compile":"tsc --noEmit","ci:coverage":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=true","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=false","lint":"eslint --max-warnings 0 --ignore-path .gitignore .","lint:fix":"eslint --ignore-path .gitignore . --fix","prepublishOnly":"npm run build:dist-types && npm run build:dist-cjs && npm run build:dist-mjs","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style"},"prettier":"@checkdigit/prettier-config","jest":{"preset":"@checkdigit/jest-config"},"dependencies":{"@typescript-eslint/type-utils":"7.18.0","@typescript-eslint/utils":"7.18.0","ts-api-utils":"^1.3.0"},"devDependencies":{"@checkdigit/jest-config":"^6.0.2","@checkdigit/prettier-config":"^5.5.0","@checkdigit/typescript-config":"6.0.0","@types/eslint":"8.56.10","@typescript-eslint/eslint-plugin":"7.18.0","@typescript-eslint/parser":"7.18.0","@typescript-eslint/rule-tester":"7.18.0","eslint-config-prettier":"^9.1.0","eslint-plugin-eslint-plugin":"^6.2.0","eslint-plugin-import":"^2.29.1","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-no-secrets":"^1.0.2","eslint-plugin-node":"^11.1.0","eslint-plugin-sonarjs":"0.24.0","http-status-codes":"^2.3.0"},"peerDependencies":{"eslint":">=8 <9"},"engines":{"node":">=20.14"}}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// fixture/no-mapped-response-type.ts
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2021-2024 Check Digit, LLC
|
|
5
|
+
*
|
|
6
|
+
* This code is licensed under the MIT license (see LICENSE.txt for details).
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { ESLintUtils, TSESTree } from '@typescript-eslint/utils';
|
|
10
|
+
import getDocumentationUrl from '../get-documentation-url';
|
|
11
|
+
|
|
12
|
+
export const ruleId = 'no-mapped-response';
|
|
13
|
+
|
|
14
|
+
const createRule = ESLintUtils.RuleCreator((name) => getDocumentationUrl(name));
|
|
15
|
+
|
|
16
|
+
const rule = createRule({
|
|
17
|
+
name: ruleId,
|
|
18
|
+
meta: {
|
|
19
|
+
type: 'suggestion',
|
|
20
|
+
docs: {
|
|
21
|
+
description: 'Replace the usage of MappedResponse type with FetchResponse.',
|
|
22
|
+
},
|
|
23
|
+
messages: {
|
|
24
|
+
replaceFullResponseWithFetchResponse: 'Replace the usage of FullResponse type with FetchResponse.',
|
|
25
|
+
unknownError: 'Unknown error occurred in file "{{fileName}}": {{ error }}.',
|
|
26
|
+
},
|
|
27
|
+
fixable: 'code',
|
|
28
|
+
schema: [],
|
|
29
|
+
},
|
|
30
|
+
defaultOptions: [],
|
|
31
|
+
create(context) {
|
|
32
|
+
const sourceCode = context.sourceCode;
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
'TSTypeReference[typeName.name="MappedResponse"]': (typeReference: TSESTree.TSTypeReference) => {
|
|
36
|
+
try {
|
|
37
|
+
context.report({
|
|
38
|
+
messageId: 'replaceFullResponseWithFetchResponse',
|
|
39
|
+
node: typeReference,
|
|
40
|
+
fix(fixer) {
|
|
41
|
+
const typeParams = sourceCode.getText(typeReference.typeArguments);
|
|
42
|
+
return fixer.replaceText(typeReference, `FetchResponse${typeParams || ''}`);
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
} catch (error) {
|
|
46
|
+
// eslint-disable-next-line no-console
|
|
47
|
+
console.error(`Failed to apply ${ruleId} rule for file "${context.filename}":`, error);
|
|
48
|
+
context.report({
|
|
49
|
+
node: typeReference,
|
|
50
|
+
messageId: 'unknownError',
|
|
51
|
+
data: {
|
|
52
|
+
fileName: context.filename,
|
|
53
|
+
error: error instanceof Error ? error.toString() : JSON.stringify(error),
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
'ImportSpecifier[imported.name="MappedResponse"]': (importSpecifier: TSESTree.ImportSpecifier) => {
|
|
59
|
+
try {
|
|
60
|
+
context.report({
|
|
61
|
+
messageId: 'replaceFullResponseWithFetchResponse',
|
|
62
|
+
node: importSpecifier.imported,
|
|
63
|
+
fix(fixer) {
|
|
64
|
+
return fixer.replaceText(importSpecifier.imported, 'FetchResponse');
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
} catch (error) {
|
|
68
|
+
// eslint-disable-next-line no-console
|
|
69
|
+
console.error(`Failed to apply ${ruleId} rule for file "${context.filename}":`, error);
|
|
70
|
+
context.report({
|
|
71
|
+
node: importSpecifier.imported,
|
|
72
|
+
messageId: 'unknownError',
|
|
73
|
+
data: {
|
|
74
|
+
fileName: context.filename,
|
|
75
|
+
error: error instanceof Error ? error.toString() : JSON.stringify(error),
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
export default rule;
|
package/src/index.ts
CHANGED
|
@@ -15,6 +15,7 @@ import fetchThen, { ruleId as fetchThenRuleId } from './agent/fetch-then';
|
|
|
15
15
|
import invalidJsonStringify, { ruleId as invalidJsonStringifyRuleId } from './invalid-json-stringify';
|
|
16
16
|
import noFixture, { ruleId as noFixtureRuleId } from './agent/no-fixture';
|
|
17
17
|
import noFullResponse, { ruleId as noFullResponseRuleId } from './agent/no-full-response';
|
|
18
|
+
import noMappedResponse, { ruleId as noMappedResponseRuleId } from './agent/no-mapped-response';
|
|
18
19
|
import noPromiseInstanceMethod, { ruleId as noPromiseInstanceMethodRuleId } from './no-promise-instance-method';
|
|
19
20
|
import noServiceWrapper, { ruleId as noServiceWrapperRuleId } from './agent/no-service-wrapper';
|
|
20
21
|
import noStatusCode, { ruleId as noStatusCodeRuleId } from './agent/no-status-code';
|
|
@@ -52,6 +53,7 @@ export default {
|
|
|
52
53
|
[fetchResponseHeaderGetterRuleId]: fetchResponseHeaderGetter,
|
|
53
54
|
[addUrlDomainRuleId]: addUrlDomain,
|
|
54
55
|
[noFullResponseRuleId]: noFullResponse,
|
|
56
|
+
[noMappedResponseRuleId]: noMappedResponse,
|
|
55
57
|
[requireResolveFullResponseRuleId]: requireResolveFullResponse,
|
|
56
58
|
},
|
|
57
59
|
configs: {
|
|
@@ -94,13 +96,14 @@ export default {
|
|
|
94
96
|
[`@checkdigit/${noPromiseInstanceMethodRuleId}`]: 'error',
|
|
95
97
|
},
|
|
96
98
|
},
|
|
97
|
-
'agent-
|
|
98
|
-
|
|
99
|
+
'agent-phase-1-test': {
|
|
100
|
+
files: ['*.spec.ts', '*.test.ts', 'src/api/v*/index.ts'],
|
|
99
101
|
rules: {
|
|
100
102
|
[`@checkdigit/${noFullResponseRuleId}`]: 'error',
|
|
101
103
|
[`@checkdigit/${requireResolveFullResponseRuleId}`]: 'error',
|
|
104
|
+
[`@checkdigit/${noMappedResponseRuleId}`]: 'error',
|
|
102
105
|
[`@checkdigit/${addUrlDomainRuleId}`]: 'error',
|
|
103
|
-
[`@checkdigit/${noFixtureRuleId}`]: '
|
|
106
|
+
[`@checkdigit/${noFixtureRuleId}`]: 'error',
|
|
104
107
|
[`@checkdigit/${noServiceWrapperRuleId}`]: 'error',
|
|
105
108
|
[`@checkdigit/${noStatusCodeRuleId}`]: 'error',
|
|
106
109
|
[`@checkdigit/${fetchResponseBodyJsonRuleId}`]: 'error',
|
|
@@ -108,12 +111,14 @@ export default {
|
|
|
108
111
|
[`@checkdigit/${fetchThenRuleId}`]: 'error',
|
|
109
112
|
},
|
|
110
113
|
},
|
|
111
|
-
'agent-
|
|
114
|
+
'agent-phase-2-production': {
|
|
115
|
+
ignorePatterns: ['*.spec.ts', '*.test.ts'],
|
|
112
116
|
rules: {
|
|
113
117
|
[`@checkdigit/${noFullResponseRuleId}`]: 'error',
|
|
114
118
|
[`@checkdigit/${requireResolveFullResponseRuleId}`]: 'error',
|
|
119
|
+
[`@checkdigit/${noMappedResponseRuleId}`]: 'error',
|
|
115
120
|
[`@checkdigit/${addUrlDomainRuleId}`]: 'error',
|
|
116
|
-
[`@checkdigit/${noFixtureRuleId}`]: '
|
|
121
|
+
[`@checkdigit/${noFixtureRuleId}`]: 'off',
|
|
117
122
|
[`@checkdigit/${noServiceWrapperRuleId}`]: 'error',
|
|
118
123
|
[`@checkdigit/${noStatusCodeRuleId}`]: 'error',
|
|
119
124
|
[`@checkdigit/${fetchResponseBodyJsonRuleId}`]: 'error',
|