Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@infinium/tree

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@infinium/tree

Work with tree structures in JavaScript

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

Tree

A simple class representing a Tree-like data structure in JavaScript.

Installation

yarn add @infinium/tree

or

npm install @infinium/tree

Basic initialization

import Tree from '@infinium/tree';

// or
// const Tree = require('@infinium/tree');

const tree = new Tree();

tree.print(); // {"id":"root","data":{},"children":[]}

Basic Tree Structure

The default tree, as you saw above, looks like this:

{
    "id": "root",
    "data": {},
    "children": []
}

That is, there are no siblings for the base node, root. You can only ever create children.

To get the current tree in its entirety, simply access the root value on the current instance: tree.root.

The object you see above is a Node. It has three properties: id: string, data: any, children: Node[]

You can put anything you need into the data property.

Usage

The Tree class exports a few methods to allow you to modify and traverse the tree as necessary. This section will document these methods.

Generators

These methods recursively traverse the tree.

Use this guide for understanding which function you should use.

preTraversal(root: string)

Returns a Generator that loops over each child node recursviely from starting point root. It defaults to the namesake. That is, if you want to traverse the entire tree, leave this argument empty.

Usage:

for (let node of tree.traverse()) {
    console.log(node);
}
postTraversal(root: string)

Similar to above, but a Post-Order Traversal approach.

Instance methods

insert(parent: string, id: string, data: TNode : undefined)

Create a new node at a specific position, parent.

That is, to insert directly to the top-level:

tree.insert('root', 'new_node', { name: 'This is a new node.' });
tree.print()

This results in:

{
    "id": "root",
    "data": {},
    "children":[
        {
            "id": "new_node",
            "data": {},
            "parent": "root",
            "children": []
        }
    ]
}
find(id: string)

Returns a Node with the specified id, if found.

Usage:

console.log(tree.find('root').id) // "root"
remove(id: string)

Removes a Node with the specified id.

Usage:

console.log(tree.remove('root')) // "false"

Note: You can't remove root because it is the base object for which all traversals operate in.

console.log(tree.remove('new_node')) // "true"

Other methods

stringify()

Returns a string value of the Tree.

console.log(tree.stringify());
print()

Logs the current Tree value to the console.

tree.print();

FAQs

Package last updated on 05 Jan 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc