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,

贡献者指南