@addon24/eslint-config
Version:
ESLint configuration rules for WorldOfTextcraft projects - Centralized configuration for all project types
46 lines (43 loc) • 1.38 kB
JavaScript
export default {
meta: {
type: "suggestion",
docs: {
description: "Enforce consistent Result pattern usage",
category: "Best Practices",
recommended: true,
},
fixable: null,
schema: [],
},
create(context) {
return {
ImportDeclaration(node) {
if (node.source.value === "@/dto/Result") {
const specifiers = node.specifiers;
const hasDefaultImport = specifiers.some(spec => spec.type === "ImportDefaultSpecifier");
const hasNamedImport = specifiers.some(spec => spec.type === "ImportSpecifier" && spec.imported.name === "Result");
if (hasDefaultImport && hasNamedImport) {
context.report({
node,
message: "Duplicate Result import detected. Use either default or named import, not both.",
fix(fixer) {
return fixer.replaceText(node, 'import { Result } from "@/dto/Result";');
}
});
}
}
},
CallExpression(node) {
if (node.callee.type === "Identifier" && node.callee.name === "Result") {
const args = node.arguments;
if (args.length === 0) {
context.report({
node,
message: "Result constructor requires at least one argument."
});
}
}
}
};
}
};