angular-estree-parser
Version:
A parser that converts Angular source code into an ESTree-compatible form
28 lines (27 loc) • 710 B
JavaScript
import { Binary } from "@angular/compiler";
//#region src/ast-transform/transforms/transform-binary-expression.ts
const isLogicalOperator = (operator) => operator === "&&" || operator === "||" || operator === "??";
const visitBinary = (node, transformer) => {
const { operation: operator } = node;
const [left, right] = transformer.transformChildren([node.left, node.right]);
if (isLogicalOperator(operator)) return {
type: "LogicalExpression",
operator,
left,
right
};
if (Binary.isAssignmentOperation(operator)) return {
type: "AssignmentExpression",
left,
right,
operator
};
return {
left,
right,
type: "BinaryExpression",
operator
};
};
//#endregion
export { visitBinary };