interface IFlatten<T> {
  children: T[] | null;
}

export abstract class treeViewUtility {
  static flatten<T extends IFlatten<T>>(items: T[] | null): T[] {
    return items
      ? items.reduce((result: T[], item: T) => {
        return [...result, item, ...this.flatten(item.children)];
      }, [])
      : [];
  }
}
