Provides two functions array2tree and object2tree, where:
array2tree: maps an array via anapplyfunction, until the array is completely mapped, orapplyreturnsfalse.
The array is a recursive description of a tree, where the value of a given node is at index 0 of the array followed optionally by other arrays, each containing the name followed by a sub-tree for any given sub-nodes. Each sub-tree is again yet another array according to the same recursive description.
object2tree: maps a JSON-like object via anapplyfunction, until the object is completely mapped orapplyreturnsfalse.
The object conforms to the same rules like any regular JSON or JavaScript object, with the addition that the values of nodes can be directly represented using an underscore _ for the key value.
npm install @dizmo/functions-json2tree --saveconst { array2tree, object2tree } = require('@dizmo/functions-json2tree');import { array2tree, object2tree } from '@dizmo/functions-json2tree';declare const db: {
// db should set value for given path (or root)
set: (key: string | null, value: any) => any;
};array2tree("path/to/a-node", [
"α"
], db.set);
array2tree("path/to/b-node", [
"β", ["i", [0]], ["j", [1]], ["k", [2]]
], db.set);
array2tree("path/to/c-node", [
"γ", ["x", ["ξ", ["y", ["υ", ["z", ["ζ"]]]]]]
], db.set);object2tree("path/to/a-node", {
_: "α"
}, db.set);
object2tree("path/to/b-node", {
_: "β", i: 0, j: 1, k: 2
}, db.set);
object2tree("path/to/c-node", {
_: "γ", x: {_: "ξ", y: {_: "υ", z: "ζ"}}
}, db.set);npm run cleannpm run buildnpm run -- build --no-lint --no-cleannpm run -- build --prepacknpm run -- build --prepack --no-minifynpm run lintnpm run -- lint --fixnpm run testnpm run -- test --no-lint --no-clean --no-buildnpm run covernpm run -- cover --no-lint --no-clean --no-buildnpm run docsnpm publishnpm publish --access=public© 2020 dizmo AG, Switzerland