Comunica
    Preparing search index...
    visitOperation: (
        startObject: object,
        nodeCallBacks: {
            add?: {
                preVisitor?: (op: Add) => VisitContext;
                visitor?: (op: Add) => void;
            };
            alt?: {
                preVisitor?: (op: Alt) => VisitContext;
                visitor?: (op: Alt) => void;
            };
            ask?: {
                preVisitor?: (op: Ask) => VisitContext;
                visitor?: (op: Ask) => void;
            };
            bgp?: {
                preVisitor?: (op: Bgp) => VisitContext;
                visitor?: (op: Bgp) => void;
            };
            clear?: {
                preVisitor?: (op: Clear) => VisitContext;
                visitor?: (op: Clear) => void;
            };
            compositeupdate?: {
                preVisitor?: (op: CompositeUpdate) => VisitContext;
                visitor?: (op: CompositeUpdate) => void;
            };
            construct?: {
                preVisitor?: (op: Construct) => VisitContext;
                visitor?: (op: Construct) => void;
            };
            copy?: {
                preVisitor?: (op: Copy) => VisitContext;
                visitor?: (op: Copy) => void;
            };
            create?: {
                preVisitor?: (op: Create) => VisitContext;
                visitor?: (op: Create) => void;
            };
            deleteinsert?: {
                preVisitor?: (op: DeleteInsert) => VisitContext;
                visitor?: (op: DeleteInsert) => void;
            };
            describe?: {
                preVisitor?: (op: Algebra.Describe) => VisitContext;
                visitor?: (op: Algebra.Describe) => void;
            };
            distinct?: {
                preVisitor?: (op: Distinct) => VisitContext;
                visitor?: (op: Distinct) => void;
            };
            drop?: {
                preVisitor?: (op: Drop) => VisitContext;
                visitor?: (op: Drop) => void;
            };
            expression?: {
                preVisitor?: (op: KnownExpression) => VisitContext;
                visitor?: (op: KnownExpression) => void;
            };
            extend?: {
                preVisitor?: (op: Extend) => VisitContext;
                visitor?: (op: Extend) => void;
            };
            filter?: {
                preVisitor?: (op: Filter) => VisitContext;
                visitor?: (op: Filter) => void;
            };
            from?: {
                preVisitor?: (op: From) => VisitContext;
                visitor?: (op: From) => void;
            };
            graph?: {
                preVisitor?: (op: Graph) => VisitContext;
                visitor?: (op: Graph) => void;
            };
            group?: {
                preVisitor?: (op: Extract<Nodes, Typed<T>>) => VisitContext;
                visitor?: (op: Extract<Nodes, Typed<T>>) => void;
            };
            inv?: {
                preVisitor?: (op: Inv) => VisitContext;
                visitor?: (op: Inv) => void;
            };
            join?: {
                preVisitor?: (op: Join) => VisitContext;
                visitor?: (op: Join) => void;
            };
            leftjoin?: {
                preVisitor?: (op: LeftJoin) => VisitContext;
                visitor?: (op: LeftJoin) => void;
            };
            link?: {
                preVisitor?: (op: Link) => VisitContext;
                visitor?: (op: Link) => void;
            };
            load?: {
                preVisitor?: (op: Load) => VisitContext;
                visitor?: (op: Load) => void;
            };
            minus?: {
                preVisitor?: (op: Minus) => VisitContext;
                visitor?: (op: Minus) => void;
            };
            move?: {
                preVisitor?: (op: Move) => VisitContext;
                visitor?: (op: Move) => void;
            };
            nop?: {
                preVisitor?: (op: Nop) => VisitContext;
                visitor?: (op: Nop) => void;
            };
            nps?: {
                preVisitor?: (op: Nps) => VisitContext;
                visitor?: (op: Nps) => void;
            };
            OneOrMorePath?: {
                preVisitor?: (op: OneOrMorePath) => VisitContext;
                visitor?: (op: OneOrMorePath) => void;
            };
            orderby?: {
                preVisitor?: (op: OrderBy) => VisitContext;
                visitor?: (op: OrderBy) => void;
            };
            path?: {
                preVisitor?: (op: Path) => VisitContext;
                visitor?: (op: Path) => void;
            };
            pattern?: {
                preVisitor?: (op: Pattern) => VisitContext;
                visitor?: (op: Pattern) => void;
            };
            project?: {
                preVisitor?: (op: Project) => VisitContext;
                visitor?: (op: Project) => void;
            };
            reduced?: {
                preVisitor?: (op: Reduced) => VisitContext;
                visitor?: (op: Reduced) => void;
            };
            seq?: {
                preVisitor?: (op: Seq) => VisitContext;
                visitor?: (op: Seq) => void;
            };
            service?: {
                preVisitor?: (op: Service) => VisitContext;
                visitor?: (op: Service) => void;
            };
            slice?: {
                preVisitor?: (op: Slice) => VisitContext;
                visitor?: (op: Slice) => void;
            };
            union?: {
                preVisitor?: (op: Union) => VisitContext;
                visitor?: (op: Union) => void;
            };
            values?: {
                preVisitor?: (op: Values) => VisitContext;
                visitor?: (op: Values) => void;
            };
            ZeroOrMorePath?: {
                preVisitor?: (op: ZeroOrMorePath) => VisitContext;
                visitor?: (op: ZeroOrMorePath) => void;
            };
            ZeroOrOnePath?: {
                preVisitor?: (op: ZeroOrOnePath) => VisitContext;
                visitor?: (op: ZeroOrOnePath) => void;
            };
        },
    ) => void = ...

    Similar to mapOperation, but only visiting instead of copying and transforming explicitly. e.g.:

    visitOperation({
    type: Algebra.Types.DISTINCT,
    input: {
    type: Algebra.Types.PROJECT,
    input: { type: Algebra.Types.DISTINCT },
    },
    }, {
    [Algebra.Types.DISTINCT]: { visitor: () => console.log('1') },
    [Algebra.Types.PROJECT]: {
    preVisitor: () => ({ continue: false }),
    visitor: () => console.log('2'),
    },
    });

    Will first call the preVisitor on the project and notice it should not iterate on its descendants. It then visits the project, and the outermost distinct, printing '21'. The pre-visitor visits starting from the root, going deeper, while the actual visitor goes in reverse.

    Type Declaration

      • (
            startObject: object,
            nodeCallBacks: {
                add?: {
                    preVisitor?: (op: Add) => VisitContext;
                    visitor?: (op: Add) => void;
                };
                alt?: {
                    preVisitor?: (op: Alt) => VisitContext;
                    visitor?: (op: Alt) => void;
                };
                ask?: {
                    preVisitor?: (op: Ask) => VisitContext;
                    visitor?: (op: Ask) => void;
                };
                bgp?: {
                    preVisitor?: (op: Bgp) => VisitContext;
                    visitor?: (op: Bgp) => void;
                };
                clear?: {
                    preVisitor?: (op: Clear) => VisitContext;
                    visitor?: (op: Clear) => void;
                };
                compositeupdate?: {
                    preVisitor?: (op: CompositeUpdate) => VisitContext;
                    visitor?: (op: CompositeUpdate) => void;
                };
                construct?: {
                    preVisitor?: (op: Construct) => VisitContext;
                    visitor?: (op: Construct) => void;
                };
                copy?: {
                    preVisitor?: (op: Copy) => VisitContext;
                    visitor?: (op: Copy) => void;
                };
                create?: {
                    preVisitor?: (op: Create) => VisitContext;
                    visitor?: (op: Create) => void;
                };
                deleteinsert?: {
                    preVisitor?: (op: DeleteInsert) => VisitContext;
                    visitor?: (op: DeleteInsert) => void;
                };
                describe?: {
                    preVisitor?: (op: Algebra.Describe) => VisitContext;
                    visitor?: (op: Algebra.Describe) => void;
                };
                distinct?: {
                    preVisitor?: (op: Distinct) => VisitContext;
                    visitor?: (op: Distinct) => void;
                };
                drop?: {
                    preVisitor?: (op: Drop) => VisitContext;
                    visitor?: (op: Drop) => void;
                };
                expression?: {
                    preVisitor?: (op: KnownExpression) => VisitContext;
                    visitor?: (op: KnownExpression) => void;
                };
                extend?: {
                    preVisitor?: (op: Extend) => VisitContext;
                    visitor?: (op: Extend) => void;
                };
                filter?: {
                    preVisitor?: (op: Filter) => VisitContext;
                    visitor?: (op: Filter) => void;
                };
                from?: {
                    preVisitor?: (op: From) => VisitContext;
                    visitor?: (op: From) => void;
                };
                graph?: {
                    preVisitor?: (op: Graph) => VisitContext;
                    visitor?: (op: Graph) => void;
                };
                group?: {
                    preVisitor?: (op: Extract<Nodes, Typed<T>>) => VisitContext;
                    visitor?: (op: Extract<Nodes, Typed<T>>) => void;
                };
                inv?: {
                    preVisitor?: (op: Inv) => VisitContext;
                    visitor?: (op: Inv) => void;
                };
                join?: {
                    preVisitor?: (op: Join) => VisitContext;
                    visitor?: (op: Join) => void;
                };
                leftjoin?: {
                    preVisitor?: (op: LeftJoin) => VisitContext;
                    visitor?: (op: LeftJoin) => void;
                };
                link?: {
                    preVisitor?: (op: Link) => VisitContext;
                    visitor?: (op: Link) => void;
                };
                load?: {
                    preVisitor?: (op: Load) => VisitContext;
                    visitor?: (op: Load) => void;
                };
                minus?: {
                    preVisitor?: (op: Minus) => VisitContext;
                    visitor?: (op: Minus) => void;
                };
                move?: {
                    preVisitor?: (op: Move) => VisitContext;
                    visitor?: (op: Move) => void;
                };
                nop?: {
                    preVisitor?: (op: Nop) => VisitContext;
                    visitor?: (op: Nop) => void;
                };
                nps?: {
                    preVisitor?: (op: Nps) => VisitContext;
                    visitor?: (op: Nps) => void;
                };
                OneOrMorePath?: {
                    preVisitor?: (op: OneOrMorePath) => VisitContext;
                    visitor?: (op: OneOrMorePath) => void;
                };
                orderby?: {
                    preVisitor?: (op: OrderBy) => VisitContext;
                    visitor?: (op: OrderBy) => void;
                };
                path?: {
                    preVisitor?: (op: Path) => VisitContext;
                    visitor?: (op: Path) => void;
                };
                pattern?: {
                    preVisitor?: (op: Pattern) => VisitContext;
                    visitor?: (op: Pattern) => void;
                };
                project?: {
                    preVisitor?: (op: Project) => VisitContext;
                    visitor?: (op: Project) => void;
                };
                reduced?: {
                    preVisitor?: (op: Reduced) => VisitContext;
                    visitor?: (op: Reduced) => void;
                };
                seq?: {
                    preVisitor?: (op: Seq) => VisitContext;
                    visitor?: (op: Seq) => void;
                };
                service?: {
                    preVisitor?: (op: Service) => VisitContext;
                    visitor?: (op: Service) => void;
                };
                slice?: {
                    preVisitor?: (op: Slice) => VisitContext;
                    visitor?: (op: Slice) => void;
                };
                union?: {
                    preVisitor?: (op: Union) => VisitContext;
                    visitor?: (op: Union) => void;
                };
                values?: {
                    preVisitor?: (op: Values) => VisitContext;
                    visitor?: (op: Values) => void;
                };
                ZeroOrMorePath?: {
                    preVisitor?: (op: ZeroOrMorePath) => VisitContext;
                    visitor?: (op: ZeroOrMorePath) => void;
                };
                ZeroOrOnePath?: {
                    preVisitor?: (op: ZeroOrOnePath) => VisitContext;
                    visitor?: (op: ZeroOrOnePath) => void;
                };
            },
        ): void
      • Visit a selected subTree given a startObject, steering the visits based on Typed nodes. Will first call the preVisitor on the project and notice it should not iterate on its descendants. It then visits the project, and the outermost distinct, printing '21'. The pre-visitor visits starting from the root, going deeper, while the actual visitor goes in reverse.

        Parameters

        • startObject: object

          the object from which we will start visiting, potentially visiting its descendants along the way.

        • nodeCallBacks: {
              add?: {
                  preVisitor?: (op: Add) => VisitContext;
                  visitor?: (op: Add) => void;
              };
              alt?: {
                  preVisitor?: (op: Alt) => VisitContext;
                  visitor?: (op: Alt) => void;
              };
              ask?: {
                  preVisitor?: (op: Ask) => VisitContext;
                  visitor?: (op: Ask) => void;
              };
              bgp?: {
                  preVisitor?: (op: Bgp) => VisitContext;
                  visitor?: (op: Bgp) => void;
              };
              clear?: {
                  preVisitor?: (op: Clear) => VisitContext;
                  visitor?: (op: Clear) => void;
              };
              compositeupdate?: {
                  preVisitor?: (op: CompositeUpdate) => VisitContext;
                  visitor?: (op: CompositeUpdate) => void;
              };
              construct?: {
                  preVisitor?: (op: Construct) => VisitContext;
                  visitor?: (op: Construct) => void;
              };
              copy?: {
                  preVisitor?: (op: Copy) => VisitContext;
                  visitor?: (op: Copy) => void;
              };
              create?: {
                  preVisitor?: (op: Create) => VisitContext;
                  visitor?: (op: Create) => void;
              };
              deleteinsert?: {
                  preVisitor?: (op: DeleteInsert) => VisitContext;
                  visitor?: (op: DeleteInsert) => void;
              };
              describe?: {
                  preVisitor?: (op: Algebra.Describe) => VisitContext;
                  visitor?: (op: Algebra.Describe) => void;
              };
              distinct?: {
                  preVisitor?: (op: Distinct) => VisitContext;
                  visitor?: (op: Distinct) => void;
              };
              drop?: {
                  preVisitor?: (op: Drop) => VisitContext;
                  visitor?: (op: Drop) => void;
              };
              expression?: {
                  preVisitor?: (op: KnownExpression) => VisitContext;
                  visitor?: (op: KnownExpression) => void;
              };
              extend?: {
                  preVisitor?: (op: Extend) => VisitContext;
                  visitor?: (op: Extend) => void;
              };
              filter?: {
                  preVisitor?: (op: Filter) => VisitContext;
                  visitor?: (op: Filter) => void;
              };
              from?: {
                  preVisitor?: (op: From) => VisitContext;
                  visitor?: (op: From) => void;
              };
              graph?: {
                  preVisitor?: (op: Graph) => VisitContext;
                  visitor?: (op: Graph) => void;
              };
              group?: {
                  preVisitor?: (op: Extract<Nodes, Typed<T>>) => VisitContext;
                  visitor?: (op: Extract<Nodes, Typed<T>>) => void;
              };
              inv?: {
                  preVisitor?: (op: Inv) => VisitContext;
                  visitor?: (op: Inv) => void;
              };
              join?: {
                  preVisitor?: (op: Join) => VisitContext;
                  visitor?: (op: Join) => void;
              };
              leftjoin?: {
                  preVisitor?: (op: LeftJoin) => VisitContext;
                  visitor?: (op: LeftJoin) => void;
              };
              link?: {
                  preVisitor?: (op: Link) => VisitContext;
                  visitor?: (op: Link) => void;
              };
              load?: {
                  preVisitor?: (op: Load) => VisitContext;
                  visitor?: (op: Load) => void;
              };
              minus?: {
                  preVisitor?: (op: Minus) => VisitContext;
                  visitor?: (op: Minus) => void;
              };
              move?: {
                  preVisitor?: (op: Move) => VisitContext;
                  visitor?: (op: Move) => void;
              };
              nop?: {
                  preVisitor?: (op: Nop) => VisitContext;
                  visitor?: (op: Nop) => void;
              };
              nps?: {
                  preVisitor?: (op: Nps) => VisitContext;
                  visitor?: (op: Nps) => void;
              };
              OneOrMorePath?: {
                  preVisitor?: (op: OneOrMorePath) => VisitContext;
                  visitor?: (op: OneOrMorePath) => void;
              };
              orderby?: {
                  preVisitor?: (op: OrderBy) => VisitContext;
                  visitor?: (op: OrderBy) => void;
              };
              path?: {
                  preVisitor?: (op: Path) => VisitContext;
                  visitor?: (op: Path) => void;
              };
              pattern?: {
                  preVisitor?: (op: Pattern) => VisitContext;
                  visitor?: (op: Pattern) => void;
              };
              project?: {
                  preVisitor?: (op: Project) => VisitContext;
                  visitor?: (op: Project) => void;
              };
              reduced?: {
                  preVisitor?: (op: Reduced) => VisitContext;
                  visitor?: (op: Reduced) => void;
              };
              seq?: {
                  preVisitor?: (op: Seq) => VisitContext;
                  visitor?: (op: Seq) => void;
              };
              service?: {
                  preVisitor?: (op: Service) => VisitContext;
                  visitor?: (op: Service) => void;
              };
              slice?: {
                  preVisitor?: (op: Slice) => VisitContext;
                  visitor?: (op: Slice) => void;
              };
              union?: {
                  preVisitor?: (op: Union) => VisitContext;
                  visitor?: (op: Union) => void;
              };
              values?: {
                  preVisitor?: (op: Values) => VisitContext;
                  visitor?: (op: Values) => void;
              };
              ZeroOrMorePath?: {
                  preVisitor?: (op: ZeroOrMorePath) => VisitContext;
                  visitor?: (op: ZeroOrMorePath) => void;
              };
              ZeroOrOnePath?: {
                  preVisitor?: (op: ZeroOrOnePath) => VisitContext;
                  visitor?: (op: ZeroOrOnePath) => void;
              };
          }

          a dictionary mapping the various operation types to objects optionally containing preVisitor and visitor. The preVisitor allows you to provide VisitContext for the current object, altering how it will be visited. The visitor allows you to visit the object from deepest to the outermost object. This is useful if you for example want to manipulate the objects you visit during your visits, similar to this.transformNode.

        Returns void

    the object from which we will start visiting, potentially visiting its descendants along the way.

    a dictionary mapping the various operation types to objects optionally containing preVisitor and visitor. The preVisitor allows you to provide VisitContext for the current object, altering how it will be visited. The visitor allows you to visit the object from deepest to the outermost object. This is useful if you for example want to manipulate the objects you visit during your visits, similar to mapOperation.