Files
eslint-rules/src/custom/no-import-dot.ts
2024-08-11 17:32:54 -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;