UNPKG

@push.rocks/lik

Version:

Provides a collection of lightweight helpers and utilities for Node.js projects.

49 lines (48 loc) 1.83 kB
export declare class Tree<T> { symbolTree: any; constructor(); /** * * @param objectArg */ initialize(objectArg: T): T; hasChildren(objectArg: T): boolean; firstChild(objectArg: T): T; lastChild(objectArg: T): T; previousSibling(objectArg: T): T; nextSibling(objectArg: T): T; parent(objectArg: T): T; lastInclusiveDescendant(objectArg: T): T; preceding(objectArg: T, optionsArg?: any): T; following(object: T, optionsArg: any): any; childrenToArray(parentArg: T, optionsArg: any): T[]; ancestorsToArray(objectArg: T, optionsArg: any): T[]; treeToArray(rootArg: T, optionsArg: any): T[]; childrenIterator(parentArg: T, optionsArg: any): T; previousSiblingsIterator(objectArg: T): T; nextSiblingsIterator(objectArg: T): any; ancestorsIterator(objectArg: T): Iterable<T>; treeIterator(rootArg: T, optionsArg?: any): Iterable<T>; index(childArg: T): number; childrenCount(parentArg: T): number; compareTreePosition(leftArg: T, rightArg: T): number; remove(removeObjectArg: T): T; insertBefore(referenceObjectArg: T, newObjectArg: T): T; insertAfter(referenceObject: T, newObjectArg: T): any; prependChild(referenceObjectArg: T, newObjectArg: T): T; appendChild(referenceObjectArg: T, newObjectArg: T): any; /** * returns a branch of the tree as a recursive JSON structure */ toJsonWithHierachy(rootElement: T): ITreeNode<T>; /** * builds a tree from a recursive JSON structure * @param jsonRoot the root node in ITreeNode format * @param reviver optional function to reconstruct T from serialized data */ fromJsonWithHierachy(jsonRoot: ITreeNode<T>, reviver?: (data: any) => T): T; } export interface ITreeNode<T> { data: T; children: ITreeNode<T>[]; }