Skip to content

Commit

Permalink
Fix optional-chaining with TS non-null operator (#10961)
Browse files Browse the repository at this point in the history
  • Loading branch information
macabeus committed May 24, 2020
1 parent 6ba1f0d commit 75a6530
Show file tree
Hide file tree
Showing 10 changed files with 69 additions and 0 deletions.
5 changes: 5 additions & 0 deletions packages/babel-plugin-proposal-optional-chaining/src/index.js
Expand Up @@ -44,6 +44,11 @@ export default declare((api, options) => {
optionalPath.node.type = "CallExpression";
optionalPath = optionalPath.get("callee");
}

// unwrap a TSNonNullExpression if need
if (optionalPath.isTSNonNullExpression()) {
optionalPath = optionalPath.get("expression");
}
}

let replacementPath = path;
Expand Down
@@ -0,0 +1,8 @@
a?.b!.c;
a?.b!.c.d;
a?.b.c!.d;
a!.b?.c;
a?.b!?.c;
a?.b!.c?.c;
(a?.b!).c;
(a?.b)!.c;
@@ -0,0 +1,6 @@
{
"plugins": [
"proposal-optional-chaining",
"syntax-typescript"
]
}
@@ -0,0 +1,10 @@
var _a, _a2, _a3, _b, _a4, _ref, _a5, _c, _a6, _a7;

(_a = a) === null || _a === void 0 ? void 0 : _a.b!.c;
(_a2 = a) === null || _a2 === void 0 ? void 0 : _a2.b!.c.d;
(_a3 = a) === null || _a3 === void 0 ? void 0 : _a3.b.c!.d;
(_b = a!.b) === null || _b === void 0 ? void 0 : _b.c;
(_a4 = a) === null || _a4 === void 0 ? void 0 : (_ref = _a4.b!) === null || _ref === void 0 ? void 0 : _ref.c;
(_a5 = a) === null || _a5 === void 0 ? void 0 : (_c = _a5.b!.c) === null || _c === void 0 ? void 0 : _c.c;
((_a6 = a) === null || _a6 === void 0 ? void 0 : _a6.b)!.c;
((_a7 = a) === null || _a7 === void 0 ? void 0 : _a7.b)!.c;
@@ -0,0 +1,8 @@
a?.b!.c;
a?.b!.c.d;
a?.b.c!.d;
a!.b?.c;
a?.b!?.c;
a?.b!.c?.c;
(a?.b!).c;
(a?.b)!.c;
@@ -0,0 +1,3 @@
{
"plugins": ["proposal-optional-chaining", "transform-typescript"]
}
@@ -0,0 +1,10 @@
var _a, _a2, _a3, _b, _a4, _ref, _a5, _c, _a6, _a7;

(_a = a) === null || _a === void 0 ? void 0 : _a.b.c;
(_a2 = a) === null || _a2 === void 0 ? void 0 : _a2.b.c.d;
(_a3 = a) === null || _a3 === void 0 ? void 0 : _a3.b.c.d;
(_b = a.b) === null || _b === void 0 ? void 0 : _b.c;
(_a4 = a) === null || _a4 === void 0 ? void 0 : (_ref = _a4.b) === null || _ref === void 0 ? void 0 : _ref.c;
(_a5 = a) === null || _a5 === void 0 ? void 0 : (_c = _a5.b.c) === null || _c === void 0 ? void 0 : _c.c;
((_a6 = a) === null || _a6 === void 0 ? void 0 : _a6.b).c;
((_a7 = a) === null || _a7 === void 0 ? void 0 : _a7.b).c;
@@ -0,0 +1,8 @@
a?.b!.c;
a?.b!.c.d;
a?.b.c!.d;
a!.b?.c;
a?.b!?.c;
a?.b!.c?.c;
(a?.b!).c;
(a?.b)!.c;
@@ -0,0 +1,3 @@
{
"plugins": ["transform-typescript"]
}
@@ -0,0 +1,8 @@
a?.b.c;
a?.b.c.d;
a?.b.c.d;
a.b?.c;
a?.b?.c;
a?.b.c?.c;
(a?.b).c;
(a?.b).c;

0 comments on commit 75a6530

Please sign in to comment.