diff --git a/src/rules/noRestrictedImports.ts b/src/rules/noRestrictedImports.ts index 8f3c682..2837ebc 100644 --- a/src/rules/noRestrictedImports.ts +++ b/src/rules/noRestrictedImports.ts @@ -58,6 +58,24 @@ export default createRule({ } for (const importName of importNames) { + if (importName === 'default') { + for (const nodeSpecifier of node.specifiers) { + if ( + nodeSpecifier.type === AST_NODE_TYPES.ImportDefaultSpecifier + ) { + context.report({ + data: { + customMessage: importRule.message, + importName: 'default', + importSource, + }, + messageId: 'importName', + node: nodeSpecifier, + }); + } + } + } + if ( importName === '*' && node.specifiers[0].type === AST_NODE_TYPES.ImportNamespaceSpecifier diff --git a/tests/rules/noRestrictedImports.ts b/tests/rules/noRestrictedImports.ts index 27fff05..568c3ee 100644 --- a/tests/rules/noRestrictedImports.ts +++ b/tests/rules/noRestrictedImports.ts @@ -55,6 +55,52 @@ ruleTester.run('no-restricted-imports', rule, { }, ], }, + { + code: `import { default as bar } from 'bar'`, + errors: [ + { + data: { + customMessage: 'foo is restricted', + importName: 'default', + importSource: 'bar', + }, + messageId: 'importName', + }, + ], + options: [ + { + paths: [ + { + importNames: ['default'], + message: 'foo is restricted', + name: 'bar', + }, + ], + }, + ], + }, + { + code: `import bar from 'bar'`, + errors: [ + { + data: { + customMessage: 'foo is restricted', + importSource: 'bar', + }, + messageId: 'path', + }, + ], + options: [ + { + paths: [ + { + message: 'foo is restricted', + name: 'bar', + }, + ], + }, + ], + }, ], valid: [ {