1.0.19 • Published 29 days ago

tree-handle-lib v1.0.19

Weekly downloads
-
License
MIT
Repository
github
Last release
29 days ago

tree-handle-lib

A small JavaScript utility library for tree data.

Package with rollup.js, exported as esmcjs module. npm.io

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
1.0.19

29 days ago

1.0.18

2 months ago

1.0.17

2 months ago

1.0.16

4 months ago

1.0.15

4 months ago

1.0.14

6 months ago

1.0.13

6 months ago

1.0.9

8 months ago

1.0.8

8 months ago

1.0.11

8 months ago

1.0.10

8 months ago

1.0.12

7 months ago

1.0.7

9 months ago

1.0.6

11 months ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago