siphon-cli
Version:
Simple bundler for web applications. 📦🔧🧡
29 lines (28 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = require("../../../../../types");
var creator_1 = require("../helpers/creator");
function resolve_optional_chaining(node, path) {
if (!node.optional)
return;
var condition = new types_1.ConditionalExpression(node.loc.start);
var test = new types_1.LogicalExpression(node.loc.start);
var left = new types_1.BinaryExpression(0);
var right = new types_1.BinaryExpression(0);
var void0 = new types_1.UnaryExpression(0);
void0.operator = "void";
void0.argument = (0, creator_1.numberLiteral)(0);
left.operator = right.operator = "===";
left.left = right.left = node.object;
left.right = creator_1.null_;
right.right = void0;
test.operator = "||";
test.left = left;
test.right = right;
condition.test = test;
condition.consequent = void0;
condition.alternate = node;
node.optional = false;
return condition;
}
exports.default = resolve_optional_chaining;