UNPKG

jasc

Version:

Jasc Another Service Container

21 lines (20 loc) 818 B
declare type TraverserCallback = (node: Node, depth?: number) => boolean | void; export interface Node<T = unknown> { key: string; value?: T; parents: Set<Node>; children: Set<Node>; traverseChildren: (cb: TraverserCallback, depth?: number) => boolean; traverseParents: (cb: TraverserCallback) => boolean; } export declare const createNode: <T = unknown>(key: string, parents: Array<Node>, value?: T | undefined) => Node<T>; export interface Tree { add: <T>(key: string, parent: Node | Node[] | null, value?: T) => Node<T>; get: <T = unknown>(key: string) => Node<T>; has: (key: string) => boolean; getRoots: () => Node[]; traverseRoots: (cb: TraverserCallback) => boolean; dump: () => Tree; } export declare const createTree: () => Tree; export {};