From ec54229bc63586638cdb5ff9736c8a3dae83e20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 27 Jan 2022 23:30:58 +0100 Subject: [PATCH] Add to transform plugins --- .../src/index.ts | 3 +++ packages/babel-plugin-transform-typescript/src/index.ts | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/babel-helper-skip-transparent-expression-wrappers/src/index.ts b/packages/babel-helper-skip-transparent-expression-wrappers/src/index.ts index b3066dcc4c72..1f27280616f7 100644 --- a/packages/babel-helper-skip-transparent-expression-wrappers/src/index.ts +++ b/packages/babel-helper-skip-transparent-expression-wrappers/src/index.ts @@ -2,6 +2,7 @@ import { isParenthesizedExpression, isTSAsExpression, isTSNonNullExpression, + isTSSatisfiesExpression, isTSTypeAssertion, isTypeCastExpression, } from "@babel/types"; @@ -11,6 +12,7 @@ import type { NodePath } from "@babel/traverse"; export type TransparentExprWrapper = | t.TSAsExpression + | t.TSSatisfiesExpression | t.TSTypeAssertion | t.TSNonNullExpression | t.TypeCastExpression @@ -26,6 +28,7 @@ export function isTransparentExprWrapper( ): node is TransparentExprWrapper { return ( isTSAsExpression(node) || + isTSSatisfiesExpression(node) || isTSTypeAssertion(node) || isTSNonNullExpression(node) || isTypeCastExpression(node) || diff --git a/packages/babel-plugin-transform-typescript/src/index.ts b/packages/babel-plugin-transform-typescript/src/index.ts index 6e120675f064..57a636260bb3 100644 --- a/packages/babel-plugin-transform-typescript/src/index.ts +++ b/packages/babel-plugin-transform-typescript/src/index.ts @@ -572,11 +572,14 @@ export default declare((api, opts: Options) => { path.replaceWith(path.node.expression); }, - TSAsExpression(path) { + [`TSAsExpression${ + // Added in Babel 7.17.0 + t.tsSatisfiesExpression ? "|TSSatisfiesExpression" : "" + }`](path: NodePath) { let { node }: { node: t.Expression } = path; do { node = node.expression; - } while (t.isTSAsExpression(node)); + } while (t.isTSAsExpression(node) || t.isTSSatisfiesExpression?.(node)); path.replaceWith(node); },