Skip to content

Commit

Permalink
fix(un-ts#123): uses exports of ExportMap
Browse files Browse the repository at this point in the history
  • Loading branch information
SukkaW committed Aug 29, 2024
1 parent b56f705 commit 452cb13
Showing 1 changed file with 32 additions and 28 deletions.
60 changes: 32 additions & 28 deletions src/rules/no-named-as-default.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,44 +21,48 @@ export = createRule<[], MessageId>({
},
defaultOptions: [],
create(context) {
function checkDefault(
function createCheckDefault(
nameKey: 'local' | 'exported',
defaultSpecifier: TSESTree.ImportDefaultSpecifier,
// | TSESTree.ExportDefaultSpecifier,
) {
// #566: default is a valid specifier
// @ts-expect-error - ExportDefaultSpecifier is unavailable yet
const nameValue = defaultSpecifier[nameKey].name as string
return function checkDefault(
defaultSpecifier: TSESTree.ImportDefaultSpecifier,
// | TSESTree.ExportDefaultSpecifier,
) {
// #566: default is a valid specifier
// @ts-expect-error - ExportDefaultSpecifier is unavailable yet
const nameValue = defaultSpecifier[nameKey].name as string

if (nameValue === 'default') {
return
}
if (nameValue === 'default') {
return
}

const declaration = importDeclaration(context, defaultSpecifier)
const declaration = importDeclaration(context, defaultSpecifier)

const imports = ExportMap.get(declaration.source.value, context)
if (imports == null) {
return
}
const exportMapOfImported = ExportMap.get(declaration.source.value, context)
if (exportMapOfImported == null) {
return
}

if (imports.errors.length > 0) {
imports.reportErrors(context, declaration)
return
}
if (exportMapOfImported.errors.length > 0) {
exportMapOfImported.reportErrors(context, declaration)
return
}

if (imports.has('default') && imports.has(nameValue)) {
context.report({
node: defaultSpecifier,
messageId: 'default',
data: {
name: nameValue,
},
})
if (exportMapOfImported.exports.has('default') && exportMapOfImported.exports.has(nameValue)) {
console.log(nameValue, exportMapOfImported)
context.report({
node: defaultSpecifier,
messageId: 'default',
data: {
name: nameValue,
},
})
}
}
}
return {
ImportDefaultSpecifier: checkDefault.bind(null, 'local'),
ExportDefaultSpecifier: checkDefault.bind(null, 'exported'),
ImportDefaultSpecifier: createCheckDefault('local'),
ExportDefaultSpecifier: createCheckDefault('exported'),
}
},
})

0 comments on commit 452cb13

Please sign in to comment.