Tree Walking #

Schema-aware child traversal inspired by zimmerframe:

import { walk, buildVisitor } from "@here.build/plexus";

walk(root, initialState, {
  Project(node, ctx) {
    // visit Project nodes
    ctx.next(); // continue to children
  },
  Page(node, ctx) {
    ctx.stop(); // halt traversal
  }
});

walkChildren(node, state, visitors) walks only direct children. buildVisitor(visitors) creates a type-safe visitor for reuse.