{"version":3,"file":"no_default_import.mjs","sources":["../../src/rules/no_default_import.ts"],"sourcesContent":["/**\n * @module @nhtio/eslint-config/rules/no_default_import\n */\n\nimport { createRule } from './common'\n\nimport type { TSESTree } from '@typescript-eslint/utils'\n\nconst noDefaultImportRule = createRule({\n  name: 'noDefaultImport',\n  meta: {\n    type: 'suggestion',\n    docs: {\n      description: 'Disallow default imports; enforce `import { default as X } from ...`',\n    },\n    fixable: 'code',\n    schema: [],\n    messages: {\n      noDefaultImport:\n        'Default imports are not allowed. Use `import { default as {{name}} } from ...` instead.',\n    },\n  },\n  create(context) {\n    const sourceCode = context.sourceCode\n    return {\n      ImportDeclaration(node: TSESTree.ImportDeclaration) {\n        const defaultSpec = node.specifiers.find(\n          (s): s is TSESTree.ImportDefaultSpecifier => s.type === 'ImportDefaultSpecifier'\n        )\n        if (!defaultSpec) return\n\n        const localName = defaultSpec.local.name\n        const otherNamed = node.specifiers.filter(\n          (s): s is TSESTree.ImportSpecifier => s.type === 'ImportSpecifier'\n        )\n\n        context.report({\n          node: defaultSpec,\n          messageId: 'noDefaultImport',\n          data: { name: localName },\n          fix(fixer) {\n            const namedSpecs = [\n              `default as ${localName}`,\n              ...otherNamed.map((s) => sourceCode.getText(s)),\n            ]\n            const newImport = `import { ${namedSpecs.join(\n              ', '\n            )} } from ${sourceCode.getText(node.source)};`\n            return fixer.replaceText(node, newImport)\n          },\n        })\n      },\n    }\n  },\n  defaultOptions: [],\n})\nexport default noDefaultImportRule\n"],"names":["noDefaultImportRule","createRule","context","sourceCode","node","defaultSpec","s","localName","otherNamed","fixer","newImport"],"mappings":";AAQA,MAAMA,IAAsBC,EAAW;AAAA,EACrC,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,aAAa;AAAA,IAAA;AAAA,IAEf,SAAS;AAAA,IACT,QAAQ,CAAA;AAAA,IACR,UAAU;AAAA,MACR,iBACE;AAAA,IAAA;AAAA,EACJ;AAAA,EAEF,OAAOC,GAAS;AACd,UAAMC,IAAaD,EAAQ;AAC3B,WAAO;AAAA,MACL,kBAAkBE,GAAkC;AAClD,cAAMC,IAAcD,EAAK,WAAW;AAAA,UAClC,CAACE,MAA4CA,EAAE,SAAS;AAAA,QAAA;AAE1D,YAAI,CAACD,EAAa;AAElB,cAAME,IAAYF,EAAY,MAAM,MAC9BG,IAAaJ,EAAK,WAAW;AAAA,UACjC,CAACE,MAAqCA,EAAE,SAAS;AAAA,QAAA;AAGnD,QAAAJ,EAAQ,OAAO;AAAA,UACb,MAAMG;AAAA,UACN,WAAW;AAAA,UACX,MAAM,EAAE,MAAME,EAAA;AAAA,UACd,IAAIE,GAAO;AAKT,kBAAMC,IAAY,YAJC;AAAA,cACjB,cAAcH,CAAS;AAAA,cACvB,GAAGC,EAAW,IAAI,CAACF,MAAMH,EAAW,QAAQG,CAAC,CAAC;AAAA,YAAA,EAEP;AAAA,cACvC;AAAA,YAAA,CACD,WAAWH,EAAW,QAAQC,EAAK,MAAM,CAAC;AAC3C,mBAAOK,EAAM,YAAYL,GAAMM,CAAS;AAAA,UAC1C;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IAAA;AAAA,EAEJ;AAAA,EACA,gBAAgB,CAAA;AAClB,CAAC;"}