eslint-rules/src/rules/no-import-dot.ts
2023-07-19 23:40:39 -04:00

40 lines
1.0 KiB
TypeScript

import type { Rule } from "eslint";
const rule: Rule.RuleModule = {
meta: {
type: "problem",
docs: {
description:
"Bans import from the specifier '.' and '..' and replaces it with '.+/index'",
category: "Best Practices",
recommended: true,
},
fixable: "code",
},
create: context => ({
ImportDeclaration(node) {
if (node.source.value === ".") {
context.report({
node: node.source,
message:
"Importing from the specifier '.' is not allowed. Use './index' instead.",
fix(fixer) {
return fixer.replaceText(node.source, '"./index"');
},
});
} else if (node.source.value === "..") {
context.report({
node: node.source,
message:
"Importing from the specifier '..' is not allowed. Use '../index' instead.",
fix(fixer) {
return fixer.replaceText(node.source, '"../index"');
},
});
}
},
}),
};
export default rule;