knex-tree 👋
Query hierarchical data structures in sql with knex
🔗 Link
📥 Install
npm install knex-tree
📖 Usage
id | parentId | desc |
---|
1 | null | I am 1 |
2 | 1 | I am 2 |
3 | 1 | I am 3 |
a | 2 | I am a |
b | 2 | I am b |
KnexTree.Constructor()
=> KnexTree
const { KnexTree } = require('knex-tree');
const knex = require('knex');
const tree = new KnexTree({
db: knex({ ... }),
table: 'mytree',
idColumn: 'id',
parentIdColumn: 'parentId',
});
KnexTree.node(id)
=> KnexNode
const node = tree.node(5);
KnexTree.getAllData()
=> Promise<Model[]>
const data = await tree.getAllData();
KnexNode.id
=> id
const id = node.id;
KnexNode.isExist()
=> Promise<boolean>
const isExist = await node.isExist();
KnexNode.getData()
=> Promise<Model | null>
const data = await node.getData();
KnexNode.getParentData()
=> Promise<Model | null>
const data = await node.getParentData();
KnexNode.getChildrenData(where?)
=> Promise<Model[]>
const data = await node.getChildrenData();
KnexNode.isRoot()
=> Promise<boolean>
const data = await node.isRoot();
KnexNode.getPath()
=> Promise<(Model & ITreeLv)[] | null>
const data = await node.getPath();
KnexNode.hasChild(id)
=> Promise<Model | null>
const data = await node.hasChild(7);
KnexNode.hasParent(id)
=> Promise<Model | null>
const data = await node.hasParent(7);
KnexNode.hasAncestor(id, maxLevel?)
=> Promise<(Model & ITreeLv) | null>
const data = await node.hasAncestor(7);
KnexNode.hasDescendant(id, maxLevel?)
=> Promise<(Model & ITreeLv) | null>
const data = await node.hasDescendant(7);
KnexNode.getPathUpTo(id, maxLevel?)
=> Promise<(Model & ITreeLv)[] | null>
const data = await node.getPathUpTo(7);
KnexNode.getPathDownTo(id, maxLevel?)
=> Promise<(Model & ITreeLv)[] | null>
const data = await node.getPathDownTo(7);
KnexNode.getDescendants(maxLevel?, where?, limit?, offset?)
=> Promise<(Model & ITreeLv)[]>
let data = await node.getDescendants();
data = await node.getDescendants(2);
🙋♂️ Author
🤝 Contributing
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
🌟 Show your support
Give a ⭐️ if this project helped you!
📝 License
Copyright © 2021 a179346.
This project is MIT licensed.
This README was generated with ❤️ by readme-md-generator