Path: blob/main/src/rules/no-named-as-default.js
829 views
import Exports from '../ExportMap';1import importDeclaration from '../importDeclaration';2import docsUrl from '../docsUrl';34module.exports = {5meta: {6type: 'problem',7docs: {8url: docsUrl('no-named-as-default'),9},10schema: [],11},1213create(context) {14function checkDefault(nameKey, defaultSpecifier) {15// #566: default is a valid specifier16if (defaultSpecifier[nameKey].name === 'default') return;1718const declaration = importDeclaration(context);1920const imports = Exports.get(declaration.source.value, context);21if (imports == null) return;2223if (imports.errors.length) {24imports.reportErrors(context, declaration);25return;26}2728if (imports.has('default') &&29imports.has(defaultSpecifier[nameKey].name)) {3031context.report(defaultSpecifier,32'Using exported name \'' + defaultSpecifier[nameKey].name +33'\' as identifier for default export.');3435}36}37return {38'ImportDefaultSpecifier': checkDefault.bind(null, 'local'),39'ExportDefaultSpecifier': checkDefault.bind(null, 'exported'),40};41},42};434445