@esfx/iter-hierarchy
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

@esfx/iter-hierarchy

A Symbol-based API for defining an Iterable with an inherent hierarchy.

Overview

Installation

npm i @esfx/iter-hierarchy

Usage

import { HierarchyIterable, Hierarchical, HierarchyProvider } from "@esfx/iter-hierarchy";

interface Node {
    parent?: Node;
    children?: Node[];
    ...
}

const hierarchyProvider: HierarchyProvider<Node> = {
    parent(node: Node) { return node.parent; },
    children(node: Node) { return node.children; },
};

class MyHierarchyIterable implements HierarchyIterable<Node> {
    private #nodes: Iterable<Node>;
    constructor(nodes: Iterable<Node>) {
        this.#nodes = nodes;
    }

    [Symbol.iterator]() {
        return this.#nodes[Symbol.iterator]();
    }

    [Hierarchical.hierarchy]() {
        return hierarhcyProvider;
    }
}

API

You can read more about the API here.

Readme

Keywords

none

Package Sidebar

Install

npm i @esfx/iter-hierarchy

Weekly Downloads

7

Version

1.0.2

License

Apache-2.0

Unpacked Size

163 kB

Total Files

28

Last publish

Collaborators

  • rbuckton