Have ideas to improve npm?Join in the discussion! »

    hierarchy-js

    1.0.4 • Public • Published

    HierarchyJS

    Elegant and lightweight library for working with data structures

    npm version Build Status codecov

    Features

    • Creating a tree structure from a flat list
    • Creating a flat list from a tree structure
    • Flexible parametrization

    Install

    npm install hierarchy-js

    Methods

    • createTreeHierarchy (elements, options)
    • createFlatHierarchy (elements, options)
    • elements, [] - the array on which the passage is carried out.
    • options, {} - props for parametrization

    Default options

        {
          id: 'id', // find item by this key
          parentId: 'parentId', // find parent by this key
          children: 'children', // create or find children by this key
          excludeParent: false, // if `true`, not include root parents to result
          saveExtractedChildren: false, // if `true`, not delete children list from descendants
        }

    How to use

    Tree structure with default options
        import { createTreeHierarchy } from 'hierarchy-js'
     
        const flatList = [
           { id: 1 },
           { id: 2, parentId: 1 },
           { id: 3, parentId: 2 },
           { id: 4, parentId: 'any' },
        ]
     
        const tree = createTreeHierarchy(flatList)
     
        // tree
        [
          {
            "id": 1,
            "children": [
              {
                "id": 2,
                "parentId": 1,
                "children": [
                  {
                    "id": 3,
                    "parentId": 2
                  }
                ]
              }
            ]
          },
          {
            "id": 4,
            "parentId": "any"
          }
        ]

    Flat list with options

        import { createFlatHierarchy } from 'hierarchy-js'
     
        const options = {
          id: 'itemId',
          parentId: 'parentItemId',
          children: 'items',
        }
     
        const tree = [
          {
            itemId: 1,
            items: [
              {
                itemId: 2,
                parentItemId: 1,
                items: [
                  {
                    itemId: 3,
                    parentItemId: 2,
                  },
                ],
              },
            ],
          },
          {
            itemId: 4,
            parentItemId: 'any',
          },
        ]
     
        const faltList = createFlatHierarchy(tree, options)
     
        // faltList
        [
          { itemId: 1 },
          { itemId: 2, parentItemId: 1 },
          { itemId: 3, parentItemId: 2 },
          { itemId: 4, parentItemId: 'any' },
        ]

    Tests

    npm test

    Install

    npm i hierarchy-js

    DownloadsWeekly Downloads

    18

    Version

    1.0.4

    License

    MIT

    Unpacked Size

    27.2 kB

    Total Files

    33

    Last publish

    Collaborators

    • avatar