UNPKG

twing

Version:

First-class Twig engine for Node.js

21 lines (20 loc) 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createNullishCoalescingNode = void 0; const conditional_1 = require("./conditional"); const not_1 = require("./unary/not"); const and_1 = require("./binary/and"); const test_1 = require("./call/test"); const array_1 = require("./array"); const createNullishCoalescingNode = (operands, line, column) => { const [left, right] = operands; if (left.type === "name") { left.attributes.isAlwaysDefined = true; } const testNode = (0, and_1.createAndNode)([ (0, test_1.createTestNode)(left, "defined", (0, array_1.createArrayNode)([], line, column), line, column), (0, not_1.createNotNode)((0, test_1.createTestNode)(left, 'null', (0, array_1.createArrayNode)([], line, column), line, column), line, column) ], line, column); return (0, conditional_1.createBaseConditionalNode)("nullish_coalescing", testNode, left, right, line, column); }; exports.createNullishCoalescingNode = createNullishCoalescingNode;