UNPKG

narrow-minded

Version:

Easy typeof validations with sophisticated TypeScript inference.

28 lines 1.35 kB
export type TraversalNode<V = unknown> = { property: string; value: V; level: number; parent: TraversalNode<V> | undefined; }; export type TraversalVisit<V = unknown, R = unknown> = (node: TraversalNode<V>) => R; export type TraversalDequeue<V = unknown> = (q: Array<TraversalNode<V>>) => TraversalNode<V>; export type TraversalEnqueue<V = unknown, R = unknown> = (node: TraversalNode<V>, q: Array<TraversalNode<V>>, visitResult: R) => void; export type TraversalOptions<V = unknown, R = unknown> = { visit: TraversalVisit<V, R>; dequeue: TraversalDequeue<V>; enqueue: TraversalEnqueue<V, R>; }; export declare const makeSubnodes: (node: TraversalNode) => TraversalNode[]; export declare const shouldContinue: (visitResult: unknown) => boolean; export type TraversalOrder = 'breadth' | 'depth'; export declare const DEFAULT_TRAVERSALS: Record<TraversalOrder, { dequeue: TraversalDequeue; enqueue: TraversalEnqueue; }>; /** * Generic tree traversal. */ export declare const traverse: <V = unknown, R = unknown>(root: V, { visit, dequeue, enqueue }: TraversalOptions<V, R>) => void; export declare const traverseObjectDepthFirst: (root: unknown, visit: TraversalVisit) => void; export declare const traverseObjectBreadthFirst: (root: unknown, visit: TraversalVisit) => void; //# sourceMappingURL=traverse.d.ts.map