Files
memecoin-botV2/.pnpm-store/v10/files/d2/58d2f159d21c04ad841d57b1dbd45e887f5ed7b9c7381ebd7602b4d65b035680a4cc7437378d9fc3bf4f6a99ef8da708e69b72b317899fd7c16114035e10b5

46 lines
1.5 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("@typescript-eslint/utils");
const util_1 = require("../util");
exports.default = (0, util_1.createRule)({
name: 'no-unsafe-function-type',
meta: {
type: 'problem',
docs: {
description: 'Disallow using the unsafe built-in Function type',
recommended: 'recommended',
},
messages: {
bannedFunctionType: [
'The `Function` type accepts any function-like value.',
'Prefer explicitly defining any function parameters and return type.',
].join('\n'),
},
schema: [],
},
defaultOptions: [],
create(context) {
function checkBannedTypes(node) {
if (node.type === utils_1.AST_NODE_TYPES.Identifier &&
node.name === 'Function' &&
(0, util_1.isReferenceToGlobalFunction)('Function', node, context.sourceCode)) {
context.report({
node,
messageId: 'bannedFunctionType',
});
}
}
return {
TSClassImplements(node) {
checkBannedTypes(node.expression);
},
TSInterfaceHeritage(node) {
checkBannedTypes(node.expression);
},
TSTypeReference(node) {
checkBannedTypes(node.typeName);
},
};
},
});