siphon-cli
Version:
Simple bundler for web applications. 📦🔧🧡
29 lines (28 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = require("../../../../../types");
var creator_1 = require("../helpers/creator");
function resolve_nullish_coalescing(node, path) {
if (node.operator !== "??")
return;
var condition = new types_1.ConditionalExpression(node.loc.start);
var test = new types_1.UnaryExpression(node.loc.start);
var testInner = new types_1.LogicalExpression(node.loc.start);
var innerL = new types_1.BinaryExpression(node.loc.start);
var innerR = new types_1.BinaryExpression(node.loc.start);
innerL.left = innerR.left = node.left;
innerL.operator = innerR.operator = "===";
innerL.right = creator_1.null_;
innerR.right = creator_1.undefined_;
testInner.left = innerL;
testInner.right = innerR;
testInner.operator = "||";
test.operator = "!";
test.prefix = true;
test.argument = testInner;
condition.test = test;
condition.consequent = node.left;
condition.alternate = node.right;
return condition;
}
exports.default = resolve_nullish_coalescing;