kentcdodds/babel-plugin-macros

Namespace import crashes the plugin

Open

#111 aperta il 16 mag 2019

Vedi su GitHub
 (9 commenti) (0 reazioni) (0 assegnatari)JavaScript (138 fork)github user discovery
enhancementhelp wanted

Metriche repository

Star
 (2635 star)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

  • babel-plugin-macros version: 2.5.1

Relevant code or config

import * as foo from 'foo.macro'

What happened: Compiler fails with the following message

./src/App.jsx
TypeError: Cannot read property 'name' of undefined
    at Array.map (<anonymous>)

Problem description: ImportNamespaceSpecifier node is not handled properly here and the error message is not helpful. Offending code: https://github.com/kentcdodds/babel-plugin-macros/blob/e0ebca780856be76cbe1c5841d09a922fdde533b/src/index.js#L78-L80

Suggested solution: ImportNamespaceSpecifier should either be handled as default case or as a separate namespace case. Or maybe both variants are valid and there should be a config option akin to allowSyntheticDefaultImports in TypeScript

Quick fix:

(s.type === 'ImportDefaultSpecifier' || s.type === 'ImportNamespaceSpecifier')
  ? 'default'
  : s.imported.name,

Guida contributor