From bff79e198a040686e4805f0d84130296cd2bb834 Mon Sep 17 00:00:00 2001 From: Wesley Wolfe Date: Fri, 5 Jul 2019 13:47:55 -0500 Subject: [PATCH] Retain typescript export-from-source (#10167) --- packages/babel-plugin-transform-typescript/src/index.js | 6 +++++- .../test/fixtures/exports/default-literal/input.mjs | 1 + .../test/fixtures/exports/default-literal/output.mjs | 1 + .../test/fixtures/exports/export-from/input.mjs | 1 + .../test/fixtures/exports/export-from/output.mjs | 1 + 5 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/input.mjs create mode 100644 packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/output.mjs create mode 100644 packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/input.mjs create mode 100644 packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/output.mjs diff --git a/packages/babel-plugin-transform-typescript/src/index.js b/packages/babel-plugin-transform-typescript/src/index.js index a768907a527b..8498da7afa30 100644 --- a/packages/babel-plugin-transform-typescript/src/index.js +++ b/packages/babel-plugin-transform-typescript/src/index.js @@ -98,6 +98,7 @@ export default declare( ExportNamedDeclaration(path) { // remove export declaration if it's exporting only types if ( + !path.node.source && path.node.specifiers.length > 0 && !path.node.specifiers.find(exportSpecifier => path.scope.hasOwnBinding(exportSpecifier.local.name), @@ -109,7 +110,10 @@ export default declare( ExportSpecifier(path) { // remove type exports - if (!path.scope.hasOwnBinding(path.node.local.name)) { + if ( + !path.parent.source && + !path.scope.hasOwnBinding(path.node.local.name) + ) { path.remove(); } }, diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/input.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/input.mjs new file mode 100644 index 000000000000..60c6c8d8b04f --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/input.mjs @@ -0,0 +1 @@ +export default "foo"; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/output.mjs new file mode 100644 index 000000000000..60c6c8d8b04f --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/output.mjs @@ -0,0 +1 @@ +export default "foo"; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/input.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/input.mjs new file mode 100644 index 000000000000..d376df966a38 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/input.mjs @@ -0,0 +1 @@ +export { bar } from './bar'; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/output.mjs new file mode 100644 index 000000000000..d376df966a38 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/output.mjs @@ -0,0 +1 @@ +export { bar } from './bar';