UNPKG

@addon24/eslint-config

Version:

ESLint configuration rules for WorldOfTextcraft projects - Centralized configuration for all project types

50 lines (43 loc) 1.06 kB
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(); }, }; }, };