pipeline ('|>') operator support syntax: param |> func param |> func:arg1:arg2:arg3 param |> func:arg1:?:arg3 param |> func:arg1:?:arg3:?:arg5 param |> func:arg1:...?:arg3

param |> func(arg1, arg2, arg3) param |> func(arg1, ?, arg3) param |> func(arg1, ?, arg3, arg4, ?, arg6)

Hierarchy (View Summary)

Constructors

Properties

The loc field represents the source location information of the node. If the node contains no information about the source location, the field is null or undefined; otherwise it is an object consisting of a start position (the position of the first character of the parsed source region) and an end position (the position of the first character after the parsed source region): and offset index (the position of the first character)

range?: [number, number]

start and end position offset

type: string

The type field is a string representing the AST variant type. Each subtype of Node is documented below with the specific string of its type field. You can use this field to determine which interface a node implements.

Methods

  • get all dependencies form an expression node

    the return from this method, is represent an answer for what identifiers this expression depends-on.

    ex:

    x + y;
    
    • for + operator : the answer should be lhs and rhs,
    • for x identifier: the answer should be node x,
    • for y identifier: the answer should be node y.

    so, the return from + will be [ node 'x', node 'y']

    and:

    • x.y.z * a ==> [ member node x.y.z, identifier 'a']

    Parameters

    • Optionalcomputed: true

    Returns ExpressionNode[]

  • get all the events form this expression

    the return from this method, is represent an answer for what is this expression depends-on as identifier name

    ex:

    x + y;
    
    • for + operator : the answer should be lhs and rhs,
    • for x identifier: the answer should be x
    • for y identifier: the answer should be y the final output will be

    so, the return from + will be { x: undefined, y: undefined }

    and:

    • x.y.z * a ==> { x: { y: { z: undefined }, a: undefined } }
    • x.y.z > x.y.h.g ==> { x: { y: { z: undefined, h: { g: undefined} } } }
    • x[Symbol.toStringTag] + 'Class' + classType + array[3] ==> { x: { 'Symbol.toStringTag': undefined }, classType: undefined, array: { 3: undefined } }
    • 'name' ==> {}
    • 
      

    user[firstName + son of ${fatherName}] ``` ==> { user: { 'firstName:fatherName': undefined }, firstName: undefined, fatherName: undefined }

    Returns ExpressionEventMap