mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2024-11-22 09:36:43 +03:00
bdb9b953ef
- remotedev-redux-devtools-extension@3.0.5 - d3-state-visualizer@1.6.0 - d3tooltip@2.1.0 - map2tree@2.1.0 - react-base16-styling@0.9.1 - react-dock@0.5.1 - react-json-tree@0.16.1 - @redux-devtools/app@2.1.0 - @redux-devtools/chart-monitor@2.1.0 - @redux-devtools/cli@1.0.5 - @redux-devtools/dock-monitor@2.1.0 - @redux-devtools/extension@3.2.0 - @redux-devtools/inspector-monitor-test-tab@0.8.4 - @redux-devtools/inspector-monitor-trace-tab@0.3.3 - @redux-devtools/inspector-monitor@2.1.0 - @redux-devtools/instrument@2.1.0 - @redux-devtools/log-monitor@3.1.0 - @redux-devtools/remote@0.7.3 - @redux-devtools/rtk-query-monitor@2.1.0 - @redux-devtools/serialize@0.4.1 - @redux-devtools/slider-monitor@3.1.0 - @redux-devtools/ui@1.2.0 - @redux-devtools/utils@1.2.0 - @redux-devtools/core@3.11.0 - d3-state-visualizer-tree-example@0.1.4 - react-dock-demo@0.1.4 - react-json-tree-example@1.1.6 - test-demo@0.1.7 - inspector-demo@0.1.5 - rtk-query-demo@0.1.6 - slider-todomvc@0.1.8 - counter-redux@0.1.7 - todomvc@0.2.6 |
||
---|---|---|
.. | ||
src | ||
test | ||
.eslintignore | ||
.eslintrc.js | ||
babel.config.esm.json | ||
babel.config.json | ||
CHANGELOG.md | ||
jest.config.js | ||
LICENSE.md | ||
package.json | ||
README.md | ||
rollup.config.js | ||
tsconfig.json | ||
tsconfig.test.json |
A pure function to convert a map into a tree structure. Created by @romseguy and merged from romseguy/map2tree
.
The following opinions must be taken into account since the primary use case of this library is redux-devtools-chart-monitor:
- Objects and arrays deeply nested within collections are not converted into a tree structure. See
someNestedObject
andsomeNestedArray
in the output below, or the corresponding test. - Provides support for Immutable.js data structures (only List and Map though).
Usage
map2tree(
someMap,
(options = {
key: 'state', // the name you want for as the root node of the output tree
pushMethod: 'push', // use 'unshift' to change the order children nodes are added
})
);
Input
const someMap = {
someReducer: {
todos: [
{ title: 'map', someNestedObject: { foo: 'bar' } },
{ title: 'to', someNestedArray: ['foo', 'bar'] },
{ title: 'tree' },
{ title: 'map2tree' },
],
completedCount: 1,
},
otherReducer: {
foo: 0,
bar: { key: 'value' },
},
};
Output
{
name: `${options.key}`,
children: [
{
name: 'someReducer',
children: [
{
name: 'todos',
children: [
{
name: 'todo[0]',
object: {
title: 'map',
someNestedObject: {foo: 'bar'}
}
},
{
name: 'todo[1]',
object: {
title: 'to',
someNestedArray: ['foo', 'bar']
}
},
// ...
]
},
// ...
]
},
{
name: 'otherReducer',
children: [
{
name: 'foo',
value: 0
},
{
name: 'bar',
object: {
key: 'value'
}
}
]
}
]
}