From eac1b1cea9e3b2a3741fb9f557a833c48f00aa74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hua=CC=81ng=20Ju=CC=80nlia=CC=80ng?= Date: Fri, 5 Jul 2019 15:19:38 -0400 Subject: [PATCH] fix: export should not be erased when mixed with `proposal-export-default-from` --- packages/babel-plugin-transform-typescript/src/index.js | 6 +++--- .../test/fixtures/exports/export-default-from/input.mjs | 1 + .../test/fixtures/exports/export-default-from/options.json | 3 +++ .../test/fixtures/exports/export-default-from/output.mjs | 2 ++ 4 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/input.mjs create mode 100644 packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/options.json create mode 100644 packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/output.mjs diff --git a/packages/babel-plugin-transform-typescript/src/index.js b/packages/babel-plugin-transform-typescript/src/index.js index 8498da7afa30..79ca001029a4 100644 --- a/packages/babel-plugin-transform-typescript/src/index.js +++ b/packages/babel-plugin-transform-typescript/src/index.js @@ -101,7 +101,7 @@ export default declare( !path.node.source && path.node.specifiers.length > 0 && !path.node.specifiers.find(exportSpecifier => - path.scope.hasOwnBinding(exportSpecifier.local.name), + path.scope.hasBinding(exportSpecifier.local.name), ) ) { path.remove(); @@ -112,7 +112,7 @@ export default declare( // remove type exports if ( !path.parent.source && - !path.scope.hasOwnBinding(path.node.local.name) + !path.scope.hasBinding(path.node.local.name) ) { path.remove(); } @@ -122,7 +122,7 @@ export default declare( // remove whole declaration if it's exporting a TS type if ( t.isIdentifier(path.node.declaration) && - !path.scope.hasOwnBinding(path.node.declaration.name) + !path.scope.hasBinding(path.node.declaration.name) ) { path.remove(); } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/input.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/input.mjs new file mode 100644 index 000000000000..0ae857f77a46 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/input.mjs @@ -0,0 +1 @@ +export foo from "./foo"; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/options.json new file mode 100644 index 000000000000..56ccd6e58102 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["proposal-export-default-from", ["transform-typescript", { "allowNamespaces": true }]] +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/output.mjs new file mode 100644 index 000000000000..8a73f6ac4bbc --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/exports/export-default-from/output.mjs @@ -0,0 +1,2 @@ +import _foo from "./foo"; +export { _foo as foo };