jasc
Version:
Jasc Another Service Container
21 lines (20 loc) • 818 B
TypeScript
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 {};