@typescript-eslint/eslint-plugin 8.29.2-alpha.1 → 8.29.2-alpha.10
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/configs/eslint-recommended-raw.d.ts +1 -1
- package/dist/configs/eslint-recommended-raw.d.ts.map +1 -1
- package/dist/configs/eslint-recommended-raw.js +3 -5
- package/dist/configs/{all.d.ts.map → eslintrc/all.d.ts.map} +1 -1
- package/dist/configs/eslintrc/base.d.ts.map +1 -0
- package/dist/configs/eslintrc/disable-type-checked.d.ts.map +1 -0
- package/dist/configs/{eslint-recommended.d.ts → eslintrc/eslint-recommended.d.ts} +1 -1
- package/dist/configs/eslintrc/eslint-recommended.d.ts.map +1 -0
- package/dist/configs/{eslint-recommended.js → eslintrc/eslint-recommended.js} +1 -1
- package/dist/configs/eslintrc/recommended-type-checked-only.d.ts.map +1 -0
- package/dist/configs/eslintrc/recommended-type-checked.d.ts.map +1 -0
- package/dist/configs/eslintrc/recommended.d.ts.map +1 -0
- package/dist/configs/eslintrc/strict-type-checked-only.d.ts.map +1 -0
- package/dist/configs/eslintrc/strict-type-checked.d.ts.map +1 -0
- package/dist/configs/eslintrc/strict.d.ts.map +1 -0
- package/dist/configs/eslintrc/stylistic-type-checked-only.d.ts.map +1 -0
- package/dist/configs/eslintrc/stylistic-type-checked.d.ts.map +1 -0
- package/dist/configs/eslintrc/stylistic.d.ts.map +1 -0
- package/dist/configs/flat/all.d.ts +8 -0
- package/dist/configs/flat/all.d.ts.map +1 -0
- package/dist/configs/flat/all.js +175 -0
- package/dist/configs/flat/base.d.ts +9 -0
- package/dist/configs/flat/base.d.ts.map +1 -0
- package/dist/configs/flat/base.js +17 -0
- package/dist/configs/flat/disable-type-checked.d.ts +8 -0
- package/dist/configs/flat/disable-type-checked.d.ts.map +1 -0
- package/dist/configs/flat/disable-type-checked.js +78 -0
- package/dist/configs/flat/eslint-recommended.d.ts +10 -0
- package/dist/configs/flat/eslint-recommended.d.ts.map +1 -0
- package/dist/configs/flat/eslint-recommended.js +16 -0
- package/dist/configs/flat/recommended-type-checked-only.d.ts +8 -0
- package/dist/configs/flat/recommended-type-checked-only.d.ts.map +1 -0
- package/dist/configs/flat/recommended-type-checked-only.js +53 -0
- package/dist/configs/flat/recommended-type-checked.d.ts +8 -0
- package/dist/configs/flat/recommended-type-checked.d.ts.map +1 -0
- package/dist/configs/flat/recommended-type-checked.js +76 -0
- package/dist/configs/flat/recommended.d.ts +8 -0
- package/dist/configs/flat/recommended.d.ts.map +1 -0
- package/dist/configs/flat/recommended.js +49 -0
- package/dist/configs/flat/strict-type-checked-only.d.ts +8 -0
- package/dist/configs/flat/strict-type-checked-only.d.ts.map +1 -0
- package/dist/configs/flat/strict-type-checked-only.js +91 -0
- package/dist/configs/flat/strict-type-checked.d.ts +8 -0
- package/dist/configs/flat/strict-type-checked.d.ts.map +1 -0
- package/dist/configs/flat/strict-type-checked.js +126 -0
- package/dist/configs/flat/strict.d.ts +8 -0
- package/dist/configs/flat/strict.d.ts.map +1 -0
- package/dist/configs/flat/strict.js +61 -0
- package/dist/configs/flat/stylistic-type-checked-only.d.ts +8 -0
- package/dist/configs/flat/stylistic-type-checked-only.d.ts.map +1 -0
- package/dist/configs/flat/stylistic-type-checked-only.js +35 -0
- package/dist/configs/flat/stylistic-type-checked.d.ts +8 -0
- package/dist/configs/flat/stylistic-type-checked.d.ts.map +1 -0
- package/dist/configs/flat/stylistic-type-checked.js +49 -0
- package/dist/configs/flat/stylistic.d.ts +8 -0
- package/dist/configs/flat/stylistic.d.ts.map +1 -0
- package/dist/configs/flat/stylistic.js +40 -0
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -42
- package/dist/raw-plugin.d.ts +865 -0
- package/dist/raw-plugin.d.ts.map +1 -0
- package/dist/raw-plugin.js +121 -0
- package/dist/rules/index.d.ts +1 -1
- package/dist/rules/no-explicit-any.d.ts +1 -1
- package/dist/rules/no-explicit-any.d.ts.map +1 -1
- package/dist/rules/no-explicit-any.js +41 -13
- package/dist/rules/promise-function-async.d.ts +2 -2
- package/dist/rules/promise-function-async.d.ts.map +1 -1
- package/dist/rules/promise-function-async.js +6 -1
- package/package.json +11 -11
- package/raw-plugin.d.ts +25 -0
- package/dist/configs/base.d.ts.map +0 -1
- package/dist/configs/disable-type-checked.d.ts.map +0 -1
- package/dist/configs/eslint-recommended.d.ts.map +0 -1
- package/dist/configs/recommended-type-checked-only.d.ts.map +0 -1
- package/dist/configs/recommended-type-checked.d.ts.map +0 -1
- package/dist/configs/recommended.d.ts.map +0 -1
- package/dist/configs/strict-type-checked-only.d.ts.map +0 -1
- package/dist/configs/strict-type-checked.d.ts.map +0 -1
- package/dist/configs/strict.d.ts.map +0 -1
- package/dist/configs/stylistic-type-checked-only.d.ts.map +0 -1
- package/dist/configs/stylistic-type-checked.d.ts.map +0 -1
- package/dist/configs/stylistic.d.ts.map +0 -1
- package/eslint-recommended-raw.d.ts +0 -5
- /package/dist/configs/{all.d.ts → eslintrc/all.d.ts} +0 -0
- /package/dist/configs/{all.js → eslintrc/all.js} +0 -0
- /package/dist/configs/{base.d.ts → eslintrc/base.d.ts} +0 -0
- /package/dist/configs/{base.js → eslintrc/base.js} +0 -0
- /package/dist/configs/{disable-type-checked.d.ts → eslintrc/disable-type-checked.d.ts} +0 -0
- /package/dist/configs/{disable-type-checked.js → eslintrc/disable-type-checked.js} +0 -0
- /package/dist/configs/{recommended-type-checked-only.d.ts → eslintrc/recommended-type-checked-only.d.ts} +0 -0
- /package/dist/configs/{recommended-type-checked-only.js → eslintrc/recommended-type-checked-only.js} +0 -0
- /package/dist/configs/{recommended-type-checked.d.ts → eslintrc/recommended-type-checked.d.ts} +0 -0
- /package/dist/configs/{recommended-type-checked.js → eslintrc/recommended-type-checked.js} +0 -0
- /package/dist/configs/{recommended.d.ts → eslintrc/recommended.d.ts} +0 -0
- /package/dist/configs/{recommended.js → eslintrc/recommended.js} +0 -0
- /package/dist/configs/{strict-type-checked-only.d.ts → eslintrc/strict-type-checked-only.d.ts} +0 -0
- /package/dist/configs/{strict-type-checked-only.js → eslintrc/strict-type-checked-only.js} +0 -0
- /package/dist/configs/{strict-type-checked.d.ts → eslintrc/strict-type-checked.d.ts} +0 -0
- /package/dist/configs/{strict-type-checked.js → eslintrc/strict-type-checked.js} +0 -0
- /package/dist/configs/{strict.d.ts → eslintrc/strict.d.ts} +0 -0
- /package/dist/configs/{strict.js → eslintrc/strict.js} +0 -0
- /package/dist/configs/{stylistic-type-checked-only.d.ts → eslintrc/stylistic-type-checked-only.d.ts} +0 -0
- /package/dist/configs/{stylistic-type-checked-only.js → eslintrc/stylistic-type-checked-only.js} +0 -0
- /package/dist/configs/{stylistic-type-checked.d.ts → eslintrc/stylistic-type-checked.d.ts} +0 -0
- /package/dist/configs/{stylistic-type-checked.js → eslintrc/stylistic-type-checked.js} +0 -0
- /package/dist/configs/{stylistic.d.ts → eslintrc/stylistic.d.ts} +0 -0
- /package/dist/configs/{stylistic.js → eslintrc/stylistic.js} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"raw-plugin.d.ts","sourceRoot":"","sources":["../src/raw-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,oCAAoC,CAAC;;;;;;;;;;;;;;;;;;wDAetD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAqCpB,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDvE,kBAIE"}
|
@@ -0,0 +1,121 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
37
|
+
};
|
38
|
+
const parserBase = __importStar(require("@typescript-eslint/parser"));
|
39
|
+
const all_1 = __importDefault(require("./configs/eslintrc/all"));
|
40
|
+
const base_1 = __importDefault(require("./configs/eslintrc/base"));
|
41
|
+
const disable_type_checked_1 = __importDefault(require("./configs/eslintrc/disable-type-checked"));
|
42
|
+
const eslint_recommended_1 = __importDefault(require("./configs/eslintrc/eslint-recommended"));
|
43
|
+
const recommended_1 = __importDefault(require("./configs/eslintrc/recommended"));
|
44
|
+
const recommended_type_checked_1 = __importDefault(require("./configs/eslintrc/recommended-type-checked"));
|
45
|
+
const recommended_type_checked_only_1 = __importDefault(require("./configs/eslintrc/recommended-type-checked-only"));
|
46
|
+
const strict_1 = __importDefault(require("./configs/eslintrc/strict"));
|
47
|
+
const strict_type_checked_1 = __importDefault(require("./configs/eslintrc/strict-type-checked"));
|
48
|
+
const strict_type_checked_only_1 = __importDefault(require("./configs/eslintrc/strict-type-checked-only"));
|
49
|
+
const stylistic_1 = __importDefault(require("./configs/eslintrc/stylistic"));
|
50
|
+
const stylistic_type_checked_1 = __importDefault(require("./configs/eslintrc/stylistic-type-checked"));
|
51
|
+
const stylistic_type_checked_only_1 = __importDefault(require("./configs/eslintrc/stylistic-type-checked-only"));
|
52
|
+
const all_2 = __importDefault(require("./configs/flat/all"));
|
53
|
+
const base_2 = __importDefault(require("./configs/flat/base"));
|
54
|
+
const disable_type_checked_2 = __importDefault(require("./configs/flat/disable-type-checked"));
|
55
|
+
const eslint_recommended_2 = __importDefault(require("./configs/flat/eslint-recommended"));
|
56
|
+
const recommended_2 = __importDefault(require("./configs/flat/recommended"));
|
57
|
+
const recommended_type_checked_2 = __importDefault(require("./configs/flat/recommended-type-checked"));
|
58
|
+
const recommended_type_checked_only_2 = __importDefault(require("./configs/flat/recommended-type-checked-only"));
|
59
|
+
const strict_2 = __importDefault(require("./configs/flat/strict"));
|
60
|
+
const strict_type_checked_2 = __importDefault(require("./configs/flat/strict-type-checked"));
|
61
|
+
const strict_type_checked_only_2 = __importDefault(require("./configs/flat/strict-type-checked-only"));
|
62
|
+
const stylistic_2 = __importDefault(require("./configs/flat/stylistic"));
|
63
|
+
const stylistic_type_checked_2 = __importDefault(require("./configs/flat/stylistic-type-checked"));
|
64
|
+
const stylistic_type_checked_only_2 = __importDefault(require("./configs/flat/stylistic-type-checked-only"));
|
65
|
+
const rules_1 = __importDefault(require("./rules"));
|
66
|
+
const parser = {
|
67
|
+
meta: parserBase.meta,
|
68
|
+
parseForESLint: parserBase.parseForESLint,
|
69
|
+
};
|
70
|
+
// note - cannot migrate this to an import statement because it will make TSC copy the package.json to the dist folder
|
71
|
+
const { name, version } = require('../package.json');
|
72
|
+
const plugin = {
|
73
|
+
// not fully initialized yet.
|
74
|
+
// See https://eslint.org/docs/latest/extend/plugins#configs-in-plugins
|
75
|
+
configs: {
|
76
|
+
all: all_1.default,
|
77
|
+
base: base_1.default,
|
78
|
+
'disable-type-checked': disable_type_checked_1.default,
|
79
|
+
'eslint-recommended': eslint_recommended_1.default,
|
80
|
+
recommended: recommended_1.default,
|
81
|
+
/** @deprecated - please use "recommended-type-checked" instead. */
|
82
|
+
'recommended-requiring-type-checking': recommended_type_checked_1.default,
|
83
|
+
'recommended-type-checked': recommended_type_checked_1.default,
|
84
|
+
'recommended-type-checked-only': recommended_type_checked_only_1.default,
|
85
|
+
strict: strict_1.default,
|
86
|
+
'strict-type-checked': strict_type_checked_1.default,
|
87
|
+
'strict-type-checked-only': strict_type_checked_only_1.default,
|
88
|
+
stylistic: stylistic_1.default,
|
89
|
+
'stylistic-type-checked': stylistic_type_checked_1.default,
|
90
|
+
'stylistic-type-checked-only': stylistic_type_checked_only_1.default,
|
91
|
+
},
|
92
|
+
meta: {
|
93
|
+
name,
|
94
|
+
version,
|
95
|
+
},
|
96
|
+
rules: rules_1.default,
|
97
|
+
};
|
98
|
+
// @ts-expect-error -- upstream type incompatibility stuff
|
99
|
+
const flatPlugin = plugin;
|
100
|
+
// included due to https://github.com/eslint/eslint/issues/19513
|
101
|
+
const flatConfigs = {
|
102
|
+
'flat/all': (0, all_2.default)(flatPlugin, parser),
|
103
|
+
'flat/base': (0, base_2.default)(flatPlugin, parser),
|
104
|
+
'flat/disable-type-checked': (0, disable_type_checked_2.default)(flatPlugin, parser),
|
105
|
+
'flat/eslint-recommended': (0, eslint_recommended_2.default)(flatPlugin, parser),
|
106
|
+
'flat/recommended': (0, recommended_2.default)(flatPlugin, parser),
|
107
|
+
'flat/recommended-type-checked': (0, recommended_type_checked_2.default)(flatPlugin, parser),
|
108
|
+
'flat/recommended-type-checked-only': (0, recommended_type_checked_only_2.default)(flatPlugin, parser),
|
109
|
+
'flat/strict': (0, strict_2.default)(flatPlugin, parser),
|
110
|
+
'flat/strict-type-checked': (0, strict_type_checked_2.default)(flatPlugin, parser),
|
111
|
+
'flat/strict-type-checked-only': (0, strict_type_checked_only_2.default)(flatPlugin, parser),
|
112
|
+
'flat/stylistic': (0, stylistic_2.default)(flatPlugin, parser),
|
113
|
+
'flat/stylistic-type-checked': (0, stylistic_type_checked_2.default)(flatPlugin, parser),
|
114
|
+
'flat/stylistic-type-checked-only': (0, stylistic_type_checked_only_2.default)(flatPlugin, parser),
|
115
|
+
};
|
116
|
+
Object.assign(plugin.configs, flatConfigs);
|
117
|
+
module.exports = {
|
118
|
+
flatConfigs,
|
119
|
+
parser,
|
120
|
+
plugin,
|
121
|
+
};
|
package/dist/rules/index.d.ts
CHANGED
@@ -153,7 +153,7 @@ declare const rules: {
|
|
153
153
|
'prefer-return-this-type': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useThisType", [], import("../../rules").ESLintPluginDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
154
154
|
'prefer-string-starts-ends-with': import("@typescript-eslint/utils/ts-eslint").RuleModule<import("./prefer-string-starts-ends-with").MessageIds, import("./prefer-string-starts-ends-with").Options, import("../../rules").ESLintPluginDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
155
155
|
'prefer-ts-expect-error': import("@typescript-eslint/utils/ts-eslint").RuleModule<"preferExpectErrorComment", [], import("../../rules").ESLintPluginDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
156
|
-
'promise-function-async': import("@typescript-eslint/utils/ts-eslint").RuleModule<"
|
156
|
+
'promise-function-async': import("@typescript-eslint/utils/ts-eslint").RuleModule<import("./promise-function-async").MessageIds, import("./promise-function-async").Options, import("../../rules").ESLintPluginDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
157
157
|
'related-getter-setter-pairs': import("@typescript-eslint/utils/ts-eslint").RuleModule<"mismatch", [], import("../../rules").ESLintPluginDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
158
158
|
'require-array-sort-compare': import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireCompare", import("./require-array-sort-compare").Options, import("../../rules").ESLintPluginDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
159
159
|
'require-await': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingAwait" | "removeAsync", [], import("../../rules").ESLintPluginDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
@@ -5,7 +5,7 @@ export type Options = [
|
|
5
5
|
ignoreRestArgs?: boolean;
|
6
6
|
}
|
7
7
|
];
|
8
|
-
export type MessageIds = 'suggestNever' | 'suggestUnknown' | 'unexpectedAny';
|
8
|
+
export type MessageIds = 'suggestNever' | 'suggestPropertyKey' | 'suggestUnknown' | 'unexpectedAny';
|
9
9
|
declare const _default: TSESLint.RuleModule<MessageIds, Options, import("../../rules").ESLintPluginDocs, TSESLint.RuleListener>;
|
10
10
|
export default _default;
|
11
11
|
//# sourceMappingURL=no-explicit-any.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"no-explicit-any.d.ts","sourceRoot":"","sources":["../../src/rules/no-explicit-any.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAMnE,MAAM,MAAM,OAAO,GAAG;IACpB;QACE,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B;CACF,CAAC;AACF,MAAM,MAAM,UAAU,
|
1
|
+
{"version":3,"file":"no-explicit-any.d.ts","sourceRoot":"","sources":["../../src/rules/no-explicit-any.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAMnE,MAAM,MAAM,OAAO,GAAG;IACpB;QACE,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B;CACF,CAAC;AACF,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,oBAAoB,GACpB,gBAAgB,GAChB,eAAe,CAAC;;AAEpB,wBAuOG"}
|
@@ -14,6 +14,7 @@ exports.default = (0, util_1.createRule)({
|
|
14
14
|
hasSuggestions: true,
|
15
15
|
messages: {
|
16
16
|
suggestNever: "Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of.",
|
17
|
+
suggestPropertyKey: 'Use `PropertyKey` instead, this is more explicit than `keyof any`.',
|
17
18
|
suggestUnknown: 'Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct.',
|
18
19
|
unexpectedAny: 'Unexpected any. Specify a different type.',
|
19
20
|
},
|
@@ -133,30 +134,57 @@ exports.default = (0, util_1.createRule)({
|
|
133
134
|
return (isGreatGrandparentRestElement(node) ||
|
134
135
|
isGreatGreatGrandparentRestElement(node));
|
135
136
|
}
|
137
|
+
/**
|
138
|
+
* Checks if the node is within a keyof any expression
|
139
|
+
* @param node the node to be validated.
|
140
|
+
* @returns true if the node is within a keyof any expression, false otherwise
|
141
|
+
* @private
|
142
|
+
*/
|
143
|
+
function isNodeWithinKeyofAny(node) {
|
144
|
+
return (node.parent.type === utils_1.AST_NODE_TYPES.TSTypeOperator &&
|
145
|
+
node.parent.operator === 'keyof');
|
146
|
+
}
|
147
|
+
/**
|
148
|
+
* Creates a fixer that replaces a keyof any with PropertyKey
|
149
|
+
* @param node the node to be fixed.
|
150
|
+
* @returns a function that will fix the node.
|
151
|
+
* @private
|
152
|
+
*/
|
153
|
+
function createPropertyKeyFixer(node) {
|
154
|
+
return (fixer) => {
|
155
|
+
return fixer.replaceText(node.parent, 'PropertyKey');
|
156
|
+
};
|
157
|
+
}
|
136
158
|
return {
|
137
159
|
TSAnyKeyword(node) {
|
160
|
+
const isKeyofAny = isNodeWithinKeyofAny(node);
|
138
161
|
if (ignoreRestArgs && isNodeDescendantOfRestElementInFunction(node)) {
|
139
162
|
return;
|
140
163
|
}
|
141
164
|
const fixOrSuggest = {
|
142
165
|
fix: null,
|
143
|
-
suggest:
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
166
|
+
suggest: isKeyofAny
|
167
|
+
? [
|
168
|
+
{
|
169
|
+
messageId: 'suggestPropertyKey',
|
170
|
+
fix: createPropertyKeyFixer(node),
|
171
|
+
},
|
172
|
+
]
|
173
|
+
: [
|
174
|
+
{
|
175
|
+
messageId: 'suggestUnknown',
|
176
|
+
fix: fixer => fixer.replaceText(node, 'unknown'),
|
148
177
|
},
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
fix(fixer) {
|
153
|
-
return fixer.replaceText(node, 'never');
|
178
|
+
{
|
179
|
+
messageId: 'suggestNever',
|
180
|
+
fix: fixer => fixer.replaceText(node, 'never'),
|
154
181
|
},
|
155
|
-
|
156
|
-
],
|
182
|
+
],
|
157
183
|
};
|
158
184
|
if (fixToUnknown) {
|
159
|
-
fixOrSuggest.fix =
|
185
|
+
fixOrSuggest.fix = isKeyofAny
|
186
|
+
? createPropertyKeyFixer(node)
|
187
|
+
: fixer => fixer.replaceText(node, 'unknown');
|
160
188
|
}
|
161
189
|
context.report({
|
162
190
|
node,
|
@@ -8,7 +8,7 @@ export type Options = [
|
|
8
8
|
checkMethodDeclarations?: boolean;
|
9
9
|
}
|
10
10
|
];
|
11
|
-
export type MessageIds = 'missingAsync';
|
12
|
-
declare const _default: import("@typescript-eslint/utils/ts-eslint").RuleModule<
|
11
|
+
export type MessageIds = 'missingAsync' | 'missingAsyncHybridReturn';
|
12
|
+
declare const _default: import("@typescript-eslint/utils/ts-eslint").RuleModule<MessageIds, Options, import("../../rules").ESLintPluginDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
13
13
|
export default _default;
|
14
14
|
//# sourceMappingURL=promise-function-async.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"promise-function-async.d.ts","sourceRoot":"","sources":["../../src/rules/promise-function-async.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,OAAO,GAAG;IACpB;QACE,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;KACnC;CACF,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC;;
|
1
|
+
{"version":3,"file":"promise-function-async.d.ts","sourceRoot":"","sources":["../../src/rules/promise-function-async.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,OAAO,GAAG;IACpB;QACE,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;KACnC;CACF,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,0BAA0B,CAAC;;AAErE,wBAyPG"}
|
@@ -47,6 +47,7 @@ exports.default = (0, util_1.createRule)({
|
|
47
47
|
fixable: 'code',
|
48
48
|
messages: {
|
49
49
|
missingAsync: 'Functions that return promises must be async.',
|
50
|
+
missingAsyncHybridReturn: 'Functions that return promises must be async. Consider adding an explicit return type annotation if the function is intended to return a union of promise and non-promise types.',
|
50
51
|
},
|
51
52
|
schema: [
|
52
53
|
{
|
@@ -133,10 +134,14 @@ exports.default = (0, util_1.createRule)({
|
|
133
134
|
returnTypes.every(type => (0, util_1.containsAllTypesByName)(type, true, allAllowedPromiseNames,
|
134
135
|
// If no return type is explicitly set, we check if any parts of the return type match a Promise (instead of requiring all to match).
|
135
136
|
node.returnType == null))) {
|
137
|
+
const isHybridReturnType = returnTypes.some(type => type.isUnion() &&
|
138
|
+
!type.types.every(part => (0, util_1.containsAllTypesByName)(part, true, allAllowedPromiseNames)));
|
136
139
|
context.report({
|
137
140
|
loc: (0, util_1.getFunctionHeadLoc)(node, context.sourceCode),
|
138
141
|
node,
|
139
|
-
messageId:
|
142
|
+
messageId: isHybridReturnType
|
143
|
+
? 'missingAsyncHybridReturn'
|
144
|
+
: 'missingAsync',
|
140
145
|
fix: fixer => {
|
141
146
|
if (node.parent.type === utils_1.AST_NODE_TYPES.MethodDefinition ||
|
142
147
|
(node.parent.type === utils_1.AST_NODE_TYPES.Property &&
|
package/package.json
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
{
|
2
2
|
"name": "@typescript-eslint/eslint-plugin",
|
3
|
-
"version": "8.29.2-alpha.
|
3
|
+
"version": "8.29.2-alpha.10",
|
4
4
|
"description": "TypeScript plugin for ESLint",
|
5
5
|
"files": [
|
6
6
|
"dist",
|
7
7
|
"!*.tsbuildinfo",
|
8
8
|
"docs",
|
9
|
-
"eslint-recommended-raw.d.ts",
|
10
9
|
"index.d.ts",
|
10
|
+
"raw-plugin.d.ts",
|
11
11
|
"rules.d.ts",
|
12
12
|
"package.json",
|
13
13
|
"README.md",
|
@@ -24,9 +24,9 @@
|
|
24
24
|
"types": "./rules.d.ts",
|
25
25
|
"default": "./dist/rules/index.js"
|
26
26
|
},
|
27
|
-
"./use-at-your-own-risk/
|
28
|
-
"types": "./
|
29
|
-
"default": "./dist/
|
27
|
+
"./use-at-your-own-risk/raw-plugin": {
|
28
|
+
"types": "./raw-plugin.d.ts",
|
29
|
+
"default": "./dist/raw-plugin.js"
|
30
30
|
}
|
31
31
|
},
|
32
32
|
"engines": {
|
@@ -62,10 +62,10 @@
|
|
62
62
|
},
|
63
63
|
"dependencies": {
|
64
64
|
"@eslint-community/regexpp": "^4.10.0",
|
65
|
-
"@typescript-eslint/scope-manager": "8.29.2-alpha.
|
66
|
-
"@typescript-eslint/type-utils": "8.29.2-alpha.
|
67
|
-
"@typescript-eslint/utils": "8.29.2-alpha.
|
68
|
-
"@typescript-eslint/visitor-keys": "8.29.2-alpha.
|
65
|
+
"@typescript-eslint/scope-manager": "8.29.2-alpha.10",
|
66
|
+
"@typescript-eslint/type-utils": "8.29.2-alpha.10",
|
67
|
+
"@typescript-eslint/utils": "8.29.2-alpha.10",
|
68
|
+
"@typescript-eslint/visitor-keys": "8.29.2-alpha.10",
|
69
69
|
"graphemer": "^1.4.0",
|
70
70
|
"ignore": "^5.3.1",
|
71
71
|
"natural-compare": "^1.4.0",
|
@@ -76,8 +76,8 @@
|
|
76
76
|
"@types/marked": "^5.0.2",
|
77
77
|
"@types/mdast": "^4.0.3",
|
78
78
|
"@types/natural-compare": "*",
|
79
|
-
"@typescript-eslint/rule-schema-to-typescript-types": "8.29.2-alpha.
|
80
|
-
"@typescript-eslint/rule-tester": "8.29.2-alpha.
|
79
|
+
"@typescript-eslint/rule-schema-to-typescript-types": "8.29.2-alpha.10",
|
80
|
+
"@typescript-eslint/rule-tester": "8.29.2-alpha.10",
|
81
81
|
"ajv": "^6.12.6",
|
82
82
|
"cross-env": "^7.0.3",
|
83
83
|
"cross-fetch": "*",
|
package/raw-plugin.d.ts
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
import type { FlatConfig } from '@typescript-eslint/utils/ts-eslint';
|
2
|
+
|
3
|
+
import type plugin from './index';
|
4
|
+
|
5
|
+
declare const cjsExport: {
|
6
|
+
flatConfigs: {
|
7
|
+
'flat/all': FlatConfig.ConfigArray;
|
8
|
+
'flat/base': FlatConfig.Config;
|
9
|
+
'flat/disable-type-checked': FlatConfig.Config;
|
10
|
+
'flat/eslint-recommended': FlatConfig.Config;
|
11
|
+
'flat/recommended': FlatConfig.ConfigArray;
|
12
|
+
'flat/recommended-type-checked': FlatConfig.ConfigArray;
|
13
|
+
'flat/recommended-type-checked-only': FlatConfig.ConfigArray;
|
14
|
+
'flat/strict': FlatConfig.ConfigArray;
|
15
|
+
'flat/strict-type-checked': FlatConfig.ConfigArray;
|
16
|
+
'flat/strict-type-checked-only': FlatConfig.ConfigArray;
|
17
|
+
'flat/stylistic': FlatConfig.ConfigArray;
|
18
|
+
'flat/stylistic-type-checked': FlatConfig.ConfigArray;
|
19
|
+
'flat/stylistic-type-checked-only': FlatConfig.ConfigArray;
|
20
|
+
};
|
21
|
+
parser: FlatConfig.Parser;
|
22
|
+
plugin: typeof plugin;
|
23
|
+
};
|
24
|
+
|
25
|
+
export = cjsExport;
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":";;;;;;;AAEA,kBAIiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"disable-type-checked.d.ts","sourceRoot":"","sources":["../../src/configs/disable-type-checked.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,kBA8DiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"eslint-recommended.d.ts","sourceRoot":"","sources":["../../src/configs/eslint-recommended.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;AAMH,kBAEiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"recommended-type-checked-only.d.ts","sourceRoot":"","sources":["../../src/configs/recommended-type-checked-only.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,kBA+BiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"recommended-type-checked.d.ts","sourceRoot":"","sources":["../../src/configs/recommended-type-checked.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,kBAsDiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"recommended.d.ts","sourceRoot":"","sources":["../../src/configs/recommended.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,kBA2BiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"strict-type-checked-only.d.ts","sourceRoot":"","sources":["../../src/configs/strict-type-checked-only.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,kBAqEiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"strict-type-checked.d.ts","sourceRoot":"","sources":["../../src/configs/strict-type-checked.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,kBAwGiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"strict.d.ts","sourceRoot":"","sources":["../../src/configs/strict.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,kBAuCiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"stylistic-type-checked-only.d.ts","sourceRoot":"","sources":["../../src/configs/stylistic-type-checked-only.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AASA,kBAaiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"stylistic-type-checked.d.ts","sourceRoot":"","sources":["../../src/configs/stylistic-type-checked.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,kBA2BiC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"stylistic.d.ts","sourceRoot":"","sources":["../../src/configs/stylistic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AASA,kBAkBiC"}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
/package/dist/configs/{recommended-type-checked-only.js → eslintrc/recommended-type-checked-only.js}
RENAMED
File without changes
|
/package/dist/configs/{recommended-type-checked.d.ts → eslintrc/recommended-type-checked.d.ts}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
/package/dist/configs/{strict-type-checked-only.d.ts → eslintrc/strict-type-checked-only.d.ts}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
/package/dist/configs/{stylistic-type-checked-only.d.ts → eslintrc/stylistic-type-checked-only.d.ts}
RENAMED
File without changes
|
/package/dist/configs/{stylistic-type-checked-only.js → eslintrc/stylistic-type-checked-only.js}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|