From f9fbc25b5284d7ad87961128ea883e1d01a0b768 Mon Sep 17 00:00:00 2001 From: liuxingbaoyu <30521560+liuxingbaoyu@users.noreply.github.com> Date: Sun, 15 Jan 2023 23:26:19 +0800 Subject: [PATCH] fix: Preserve `import {type T} from 'x'` when `onlyRemoveTypeImports:true` (#15349) fix --- packages/babel-plugin-transform-typescript/src/index.ts | 2 +- .../test/fixtures/imports/only-remove-type-imports/output.mjs | 1 + .../fixtures/imports/type-only-import-specifier-4/output.mjs | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/babel-plugin-transform-typescript/src/index.ts b/packages/babel-plugin-transform-typescript/src/index.ts index 4fbf83a167c1..b8e0b1b3dee9 100644 --- a/packages/babel-plugin-transform-typescript/src/index.ts +++ b/packages/babel-plugin-transform-typescript/src/index.ts @@ -348,7 +348,7 @@ export default declare((api, opts: Options) => { } } - if (isAllSpecifiersElided()) { + if (isAllSpecifiersElided() && !onlyRemoveTypeImports) { stmt.remove(); } else { for (const importPath of importsToRemove) { diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/imports/only-remove-type-imports/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/imports/only-remove-type-imports/output.mjs index 78a426b356b2..169883383851 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/imports/only-remove-type-imports/output.mjs +++ b/packages/babel-plugin-transform-typescript/test/fixtures/imports/only-remove-type-imports/output.mjs @@ -5,5 +5,6 @@ import d, { d2 } from "d"; import e, { e3 as e4 } from "e"; import "f"; import "g"; +import "k"; import { L2 } from "l"; ; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/imports/type-only-import-specifier-4/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/imports/type-only-import-specifier-4/output.mjs index e69de29bb2d1..856f26b34c30 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/imports/type-only-import-specifier-4/output.mjs +++ b/packages/babel-plugin-transform-typescript/test/fixtures/imports/type-only-import-specifier-4/output.mjs @@ -0,0 +1 @@ +import "x";