diff --git a/lib/index.js b/lib/index.js index c6ab89c..5d112d0 100644 --- a/lib/index.js +++ b/lib/index.js @@ -126,8 +126,18 @@ function processNode (node, valueOnly = false) { case 'LogicalExpression': case 'BinaryExpression': { + const op = processOp(node.operator); + const leftOp = processOp(node.left.operator); + const rightOp = processOp(node.right.operator); + const left = processNode(node.left); + const right = processNode(node.right) + if (node.type === 'LogicalExpression') { + return { + [op]: [...(op === leftOp ? left[leftOp] : [left]), ...(op === rightOp ? right[rightOp] : [right])] + } + } return { - [processOp(node.operator)]: [processNode(node.left), processNode(node.right)] + [op]: [left, right] } }