Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
epidemian
GitHub Repository: epidemian/eslint-plugin-import
Path: blob/main/src/rules/no-named-as-default.js
829 views
1
import Exports from '../ExportMap';
2
import importDeclaration from '../importDeclaration';
3
import docsUrl from '../docsUrl';
4
5
module.exports = {
6
meta: {
7
type: 'problem',
8
docs: {
9
url: docsUrl('no-named-as-default'),
10
},
11
schema: [],
12
},
13
14
create(context) {
15
function checkDefault(nameKey, defaultSpecifier) {
16
// #566: default is a valid specifier
17
if (defaultSpecifier[nameKey].name === 'default') return;
18
19
const declaration = importDeclaration(context);
20
21
const imports = Exports.get(declaration.source.value, context);
22
if (imports == null) return;
23
24
if (imports.errors.length) {
25
imports.reportErrors(context, declaration);
26
return;
27
}
28
29
if (imports.has('default') &&
30
imports.has(defaultSpecifier[nameKey].name)) {
31
32
context.report(defaultSpecifier,
33
'Using exported name \'' + defaultSpecifier[nameKey].name +
34
'\' as identifier for default export.');
35
36
}
37
}
38
return {
39
'ImportDefaultSpecifier': checkDefault.bind(null, 'local'),
40
'ExportDefaultSpecifier': checkDefault.bind(null, 'exported'),
41
};
42
},
43
};
44
45