![38% of CISOs Fear They’re Not Moving Fast Enough on AI](https://cdn.sanity.io/images/cgdhsj6q/production/faa0bc28df98f791e11263f8239b34207f84b86f-1024x1024.webp?w=400&fit=max&auto=format)
Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
@infinium/tree
Advanced tools
A simple class representing a Tree-like data structure in JavaScript.
yarn add @infinium/tree
or
npm install @infinium/tree
import Tree from '@infinium/tree';
// or
// const Tree = require('@infinium/tree');
const tree = new Tree();
tree.print(); // {"id":"root","data":{},"children":[]}
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.
The Tree
class exports a few methods to allow you to modify and traverse the tree as necessary. This section will document these methods.
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.
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"
stringify()
Returns a string value of the Tree.
console.log(tree.stringify());
print()
Logs the current Tree value to the console.
tree.print();
FAQs
Work with tree structures in JavaScript
We found that @infinium/tree demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.