npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tree-handle-lib

v1.0.19

Published

a javascript library for tree data

Downloads

29

Readme

tree-handle-lib

A small JavaScript utility library for tree data.

Package with rollup.js, exported as esmcjs module.

Install

npm install tree-handle-lib
// or
yarn add tree-handle-lib
// or
pnpm install tree-handle-lib

API

examples:

check:
  checkNode
  unCheckNode
  changeAllCheck

equal:
  isEqualTreeNode

filter:
  filterTreeByName

find:
  findNodeByKey
  findAllKeys
  findLeafNodes
  findChildKeysByKey
  findParentKeysByKey
  findNodesByKeys

insert:
  insertChild
  insertAfter
  insertBefore

list:
  list2Tree
  tree2List

remove:
  removeNodeByKey

sort:
  sortNodeByName
split:
  splitStrings2Tree

update:
  updateNodes

Usage

import { findNodeByKey } from "tree-handle-lib";
// or use `const { findNodeByKey } = require('tree-handle-lib/dist/index.cjs.js')` as commonjs
const tree = [
      {
        id: '1',
        name: 'www',
        children: [],
      },
    ];
const node = findNodeByKey(tree, '1', "children", 'id');

Can also import like

import treeHandleLib from "tree-handle-lib";

console.log(treeHandleLib.findNodeByKey); // Function

or like this, import from a child package

import {findNodeByKey} from "tree-handle-lib/dist/find.js";

console.log(findNodeByKey); // Function

Developer Compatibility

  • node >=v14.6(pnpm requires at least Node.js v14.6)
  • pnpm v7.18.2

BUGS

Developer Guide

  1. create a module and file under src/lib directory.
  2. create a tree handle function and export it by default.
  3. add test unit in ./test directory.
  4. pnpm run build or pnpm run test. so that you can see there is an additional file has been added to the tmp directory and some changed in babel.config.cjs
  5. you can only test the module you want, by edit jest.testMatch in package.json.
  6. publish npm package. first using the pnpm version patch command, push the code to github, and create a release on github. it can auto publish package to npm.

TODO

  1. Realize the pure function form of implementing the method.
  2. Build only the modules you are developing
  3. Develop a scaffolding for automatically generating method modules and test samples