diff --git a/packages/babel-plugin-transform-flow-comments/src/index.js b/packages/babel-plugin-transform-flow-comments/src/index.js index 05676fc825..f2eeb2710a 100644 --- a/packages/babel-plugin-transform-flow-comments/src/index.js +++ b/packages/babel-plugin-transform-flow-comments/src/index.js @@ -54,7 +54,7 @@ export default function ({ types: t }) { // support `export type a = {}` - #8 Error: You passed path.replaceWith() a falsy node "ExportNamedDeclaration|Flow"(path) { const { node, parent } = path; - if (t.isExportNamedDeclaration(node) && !t.isFlow(node.declaration)) { + if (t.isExportNamedDeclaration(node) && node.exportKind !== "type" && !t.isFlow(node.declaration)) { return; } wrapInFlowComment(path, parent); diff --git a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/import-export/actual.js b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/import-export/actual.js new file mode 100644 index 0000000000..8da713ff61 --- /dev/null +++ b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/import-export/actual.js @@ -0,0 +1,4 @@ +import lib from 'library'; +export { foo } from 'foo'; +export type { B, C } from './types'; + diff --git a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/import-export/expected.js b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/import-export/expected.js new file mode 100644 index 0000000000..e6237e9bad --- /dev/null +++ b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/import-export/expected.js @@ -0,0 +1,4 @@ +import lib from 'library'; +export { foo } from 'foo'; +/*:: export type { B, C } from './types';*/ +