@addon24/eslint-config
Version:
ESLint configuration rules for WorldOfTextcraft projects - Centralized configuration for all project types
50 lines (43 loc) • 1.06 kB
JavaScript
export default {
meta: {
type: "problem",
docs: {
description: "Enforce only one class per file",
category: "Best Practices",
},
fixable: null,
schema: [],
messages: {
tooManyClasses: "Only one class per file is allowed. Found {{count}} classes: {{names}}. Please split into separate files.",
},
},
create(context) {
const classes = [];
function checkClasses() {
if (classes.length > 1) {
const classNames = classes.map(d => d.name);
// Report on the first class found
const firstClass = classes[0];
context.report({
node: firstClass.node,
messageId: "tooManyClasses",
data: {
count: classes.length,
names: classNames.join(", "),
},
});
}
}
return {
ClassDeclaration(node) {
classes.push({
node,
name: node.id ? node.id.name : "Anonymous",
});
},
"Program:exit"() {
checkClasses();
},
};
},
};