kentcdodds/babel-plugin-macros

Namespace import crashes the plugin

Open

#111 建立於 2019年5月16日

在 GitHub 查看
 (9 留言) (0 反應) (0 負責人)JavaScript (138 fork)github user discovery
enhancementhelp wanted

倉庫指標

Star
 (2,635 star)
PR 合併指標
 (PR 指標待抓取)

描述

  • 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,

貢獻者指南