https://github.com/burdiuz/js-walker-children-adapter
TreeWalker adapter for Object tree that uses children property for child nodes.
https://github.com/burdiuz/js-walker-children-adapter
Last synced: 3 months ago
JSON representation
TreeWalker adapter for Object tree that uses children property for child nodes.
- Host: GitHub
- URL: https://github.com/burdiuz/js-walker-children-adapter
- Owner: burdiuz
- License: mit
- Created: 2018-08-24T20:35:57.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-09-12T08:28:27.000Z (almost 7 years ago)
- Last Synced: 2025-03-17T19:48:50.350Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 173 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Object Adapter for TreeWalker
Adapter for Object tree that uses `children` property for child nodes.
Each node of source structure must have `name:String` and `children:Node[]` properties.
```typescript
interface Node {
name: string;
children: Node[];
}
```Source example:
```javascript
const sourceTree = {
name: 'root',
children: [
{ name: 'branch', children: [] },
{
name: 'branch',
children: [
{ name: 'leaf', children: [] },
],
},
{ name: 'branch', children: [] },
]
};
```### How to use
Library exports adapter factory function `createAdapter()` that accepts two optional arguments:
* **getNodeName:Function** -- Getter function to retrieve node name, default getter returns `node.name` property.
* **getNodeChildren:Function** -- Getter function to retrieve list of node children, default getter returns `node.children` property.
You can pass your own getters:
```javascript
import { create, setDefaultAdapter } from '@actualwave/tree-walker';
import createAdapter from '@actualwave/walker-children-adapter';const adapter = createAdapter(
(node) => node.label, // name getter
(node) => node.list, // children getter
);setDefaultAdapter(adapter);
```This adapter is created to be used with [Tree Walker library](https://github.com/burdiuz/js-tree-walker),
check its documentation on how to specify adapter. This adapter was used in [Tree Walker Demo](https://jsfiddle.net/actualwave/6kw7z4xj/).