mirror of
https://github.com/chenasraf/DefinitelyTyped-tools.git
synced 2026-05-17 17:48:07 +00:00
fix no-import-of-default-export (#659)
* fix message of no-import-of-default-export * run prettier * only check .d.ts files
This commit is contained in:
committed by
GitHub
parent
6380f4681c
commit
35746f1c63
@@ -19,27 +19,32 @@ const rule = createRule({
|
||||
create(context) {
|
||||
const parserServices = ESLintUtils.getParserServices(context);
|
||||
const checker = parserServices.program.getTypeChecker();
|
||||
return {
|
||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||
ImportDeclaration(node) {
|
||||
const defaultName = node.specifiers.find((spec) => spec.type === "ImportDefaultSpecifier")?.local;
|
||||
if (!defaultName) {
|
||||
return;
|
||||
}
|
||||
const importName = defaultName.name;
|
||||
const source = parserServices.esTreeNodeToTSNodeMap.get(node.source);
|
||||
const sym = checker.getSymbolAtLocation(source);
|
||||
if (
|
||||
sym?.declarations?.some((d) => getStatements(d)?.some((s) => ts.isExportAssignment(s) && !!s.isExportEquals))
|
||||
) {
|
||||
context.report({
|
||||
messageId: "noImportDefaultOfExportEquals",
|
||||
data: { moduleName: node.source, importName },
|
||||
node: defaultName,
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
if (context.getFilename().endsWith(".d.ts")) {
|
||||
return {
|
||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||
ImportDeclaration(node) {
|
||||
const defaultName = node.specifiers.find((spec) => spec.type === "ImportDefaultSpecifier")?.local;
|
||||
if (!defaultName) {
|
||||
return;
|
||||
}
|
||||
const importName = defaultName.name;
|
||||
const source = parserServices.esTreeNodeToTSNodeMap.get(node.source);
|
||||
const sym = checker.getSymbolAtLocation(source);
|
||||
if (
|
||||
sym?.declarations?.some((d) => getStatements(d)?.some((s) => ts.isExportAssignment(s) && !!s.isExportEquals))
|
||||
) {
|
||||
context.report({
|
||||
messageId: "noImportDefaultOfExportEquals",
|
||||
data: { moduleName: node.source.value, importName },
|
||||
node: defaultName,
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
else {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import a from "a";
|
||||
{
|
||||
line: 7,
|
||||
messageId: "noImportDefaultOfExportEquals",
|
||||
data: { moduleName: "a", importName: "a" },
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user