Files
memecoin-botV2/.pnpm-store/v10/files/0e/a8978f09bcc5183ff97d1610bd139ee36c976c4e1833643c7581025b5af1aa2fadbf17e51740ccd10081d7d53a2d379ca380cd3eade7036eb5087ba40c920a

45 lines
1.7 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("@typescript-eslint/utils");
const util_1 = require("../util");
const classScopeAnalyzer_1 = require("../util/class-scope-analyzer/classScopeAnalyzer");
exports.default = (0, util_1.createRule)({
name: 'no-unused-private-class-members',
meta: {
type: 'problem',
docs: {
description: 'Disallow unused private class members',
extendsBaseRule: true,
requiresTypeChecking: false,
},
messages: {
unusedPrivateClassMember: "Private class member '{{classMemberName}}' is defined but never used.",
},
schema: [],
},
defaultOptions: [],
create(context) {
return {
'Program:exit'(node) {
const result = (0, classScopeAnalyzer_1.analyzeClassMemberUsage)(node, utils_1.ESLintUtils.nullThrows(context.sourceCode.scopeManager, 'Missing required scope manager'));
for (const classScope of result.values()) {
for (const member of [
...classScope.members.instance.values(),
...classScope.members.static.values(),
]) {
if ((!member.isPrivate() && !member.isHashPrivate()) ||
member.isUsed()) {
continue;
}
context.report({
node: member.nameNode,
messageId: 'unusedPrivateClassMember',
data: { classMemberName: member.name },
});
}
}
},
};
},
});