object-treeify
Advanced tools
Comparing version 1.0.3 to 1.1.0
@@ -9,3 +9,4 @@ const assert = require('assert'); | ||
keyNoNeighbour: '└─ ', | ||
keyNeighbour: '├─ ' | ||
keyNeighbour: '├─ ', | ||
sortFn: (a, b) => a.localeCompare(b) | ||
}, opts); | ||
@@ -17,7 +18,6 @@ assert(typeof ctx.joined === 'boolean'); | ||
assert(typeof ctx.keyNeighbour === 'string'); | ||
assert(typeof ctx.sortFn === 'function'); | ||
return ctx; | ||
}; | ||
const sortFn = (a, b) => b.localeCompare(a); | ||
module.exports = (tree, opts = {}) => { | ||
@@ -27,3 +27,3 @@ const ctx = buildCtx(opts); | ||
const neighbours = []; | ||
const keys = Object.keys(tree).sort(sortFn).map(k => [k]); | ||
const keys = Object.keys(tree).sort((a, b) => ctx.sortFn(b, a)).map(k => [k]); | ||
const lookup = [tree]; | ||
@@ -38,3 +38,3 @@ | ||
if (node instanceof Object && !Array.isArray(node)) { | ||
keys.push(...Object.keys(node).sort(sortFn).map(k => key.concat(k))); | ||
keys.push(...Object.keys(node).sort((a, b) => ctx.sortFn(b, a)).map(k => key.concat(k))); | ||
lookup[key.length] = node; | ||
@@ -46,2 +46,2 @@ } | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiYnVpbGRDdHgiLCJvcHRzIiwiY3R4IiwiT2JqZWN0IiwiYXNzaWduIiwiam9pbmVkIiwic3BhY2VyTm9OZWlnaGJvdXIiLCJzcGFjZXJOZWlnaGJvdXIiLCJrZXlOb05laWdoYm91ciIsImtleU5laWdoYm91ciIsInNvcnRGbiIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0cmVlIiwicmVzdWx0IiwibmVpZ2hib3VycyIsImtleXMiLCJzb3J0IiwibWFwIiwiayIsImxvb2t1cCIsImxlbmd0aCIsImtleSIsInBvcCIsIm5vZGUiLCJwdXNoIiwic2xpY2UiLCJuIiwiam9pbiIsImluY2x1ZGVzIiwiQXJyYXkiLCJpc0FycmF5IiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUVBLE1BQU1DLFFBQVEsR0FBSUMsSUFBRCxJQUFVO0FBQ3pCLFFBQU1DLEdBQUcsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFDeEJDLElBQUFBLE1BQU0sRUFBRSxJQURnQjtBQUV4QkMsSUFBQUEsaUJBQWlCLEVBQUUsS0FGSztBQUd4QkMsSUFBQUEsZUFBZSxFQUFFLEtBSE87QUFJeEJDLElBQUFBLGNBQWMsRUFBRSxLQUpRO0FBS3hCQyxJQUFBQSxZQUFZLEVBQUU7QUFMVSxHQUFkLEVBTVRSLElBTlMsQ0FBWjtBQU9BSCxFQUFBQSxNQUFNLENBQUMsT0FBT0ksR0FBRyxDQUFDRyxNQUFYLEtBQXNCLFNBQXZCLENBQU47QUFDQVAsRUFBQUEsTUFBTSxDQUFDLE9BQU9JLEdBQUcsQ0FBQ0ksaUJBQVgsS0FBaUMsUUFBbEMsQ0FBTjtBQUNBUixFQUFBQSxNQUFNLENBQUMsT0FBT0ksR0FBRyxDQUFDSyxlQUFYLEtBQStCLFFBQWhDLENBQU47QUFDQVQsRUFBQUEsTUFBTSxDQUFD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SUFBWixDQUF0QixHQUEwQ2QsTUFBakQ7QUFDRCxDQTFCRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpO1xuXG5jb25zdCBidWlsZEN0eCA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IGN0eCA9IE9iamVjdC5hc3NpZ24oe1xuICAgIGpvaW5lZDogdHJ1ZSxcbiAgICBzcGFjZXJOb05laWdoYm91cjogJyAgICcsXG4gICAgc3BhY2VyTmVpZ2hib3VyOiAn4pSCICAnLFxuICAgIGtleU5vTmVpZ2hib3VyOiAn4pSU4pSAICcsXG4gICAga2V5TmVpZ2hib3VyOiAn4pSc4pSAICdcbiAgfSwgb3B0cyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LmpvaW5lZCA9PT0gJ2Jvb2xlYW4nKTtcbiAgYXNzZXJ0KHR5cGVvZiBjdHguc3BhY2VyTm9OZWlnaGJvdXIgPT09ICdzdHJpbmcnKTtcbiAgYXNzZXJ0KHR5cGVvZiBjdHguc3BhY2VyTmVpZ2hib3VyID09PSAnc3RyaW5nJyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LmtleU5vTmVpZ2hib3VyID09PSAnc3RyaW5nJyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LmtleU5laWdoYm91ciA9PT0gJ3N0cmluZycpO1xuICByZXR1cm4gY3R4O1xufTtcblxuY29uc3Qgc29ydEZuID0gKGEsIGIpID0+IGIubG9jYWxlQ29tcGFyZShhKTtcblxubW9kdWxlLmV4cG9ydHMgPSAodHJlZSwgb3B0cyA9IHt9KSA9PiB7XG4gIGNvbnN0IGN0eCA9IGJ1aWxkQ3R4KG9wdHMpO1xuICBjb25zdCByZXN1bHQgPSBbXTtcblxuICBjb25zdCBuZWlnaGJvdXJzID0gW107XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0cmVlKS5zb3J0KHNvcnRGbikubWFwKGsgPT4gW2tdKTtcbiAgY29uc3QgbG9va3VwID0gW3RyZWVdO1xuICB3aGlsZSAoa2V5cy5sZW5ndGggIT09IDApIHtcbiAgICBjb25zdCBrZXkgPSBrZXlzLnBvcCgpO1xuICAgIGNvbnN0IG5vZGUgPSBsb29rdXBba2V5Lmxlbmd0aCAtIDFdW2tleVtrZXkubGVuZ3RoIC0gMV1dO1xuXG4gICAgbmVpZ2hib3Vyc1trZXkubGVuZ3RoIC0gMV0gPSBrZXlzLmxlbmd0aCAhPT0gMCAmJiBrZXlzW2tleXMubGVuZ3RoIC0gMV0ubGVuZ3RoID09PSBrZXkubGVuZ3RoO1xuICAgIHJlc3VsdC5wdXNoKFtcbiAgICAgIG5laWdoYm91cnMuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpLm1hcChuID0+IChuID8gY3R4LnNwYWNlck5laWdoYm91ciA6IGN0eC5zcGFjZXJOb05laWdoYm91cikpLmpvaW4oJycpLFxuICAgICAgbmVpZ2hib3Vyc1trZXkubGVuZ3RoIC0gMV0gPyBjdHgua2V5TmVpZ2hib3VyIDogY3R4LmtleU5vTmVpZ2hib3VyLFxuICAgICAga2V5W2tleS5sZW5ndGggLSAxXSxcbiAgICAgIFsnYm9vbGVhbicsICdzdHJpbmcnLCAnbnVtYmVyJ10uaW5jbHVkZXModHlwZW9mIG5vZGUpID8gYDogJHtub2RlfWAgOiAnJ1xuICAgIF0uam9pbignJykpO1xuXG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBPYmplY3QgJiYgIUFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgIGtleXMucHVzaCguLi5PYmplY3Qua2V5cyhub2RlKS5zb3J0KHNvcnRGbikubWFwKGsgPT4ga2V5LmNvbmNhdChrKSkpO1xuICAgICAgbG9va3VwW2tleS5sZW5ndGhdID0gbm9kZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3R4LmpvaW5lZCA9PT0gdHJ1ZSA/IHJlc3VsdC5qb2luKCdcXG4nKSA6IHJlc3VsdDtcbn07XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiYnVpbGRDdHgiLCJvcHRzIiwiY3R4IiwiT2JqZWN0IiwiYXNzaWduIiwiam9pbmVkIiwic3BhY2VyTm9OZWlnaGJvdXIiLCJzcGFjZXJOZWlnaGJvdXIiLCJrZXlOb05laWdoYm91ciIsImtleU5laWdoYm91ciIsInNvcnRGbiIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0cmVlIiwicmVzdWx0IiwibmVpZ2hib3VycyIsImtleXMiLCJzb3J0IiwibWFwIiwiayIsImxvb2t1cCIsImxlbmd0aCIsImtleSIsInBvcCIsIm5vZGUiLCJwdXNoIiwic2xpY2UiLCJuIiwiam9pbiIsImluY2x1ZGVzIiwiQXJyYXkiLCJpc0FycmF5IiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUVBLE1BQU1DLFFBQVEsR0FBSUMsSUFBRCxJQUFVO0FBQ3pCLFFBQU1DLEdBQUcsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFDeEJDLElBQUFBLE1BQU0sRUFBRSxJQURnQjtBQUV4QkMsSUFBQUEsaUJBQWlCLEVBQUUsS0FGSztBQUd4QkMsSUFBQUEsZUFBZSxFQUFFLEtBSE87QUFJeEJDLElBQUFBLGNBQWMsRUFBRSxLQUpRO0FBS3hCQyxJQUFBQSxZQUFZLEVBQUUsS0FMVTtBQU14QkMsSUFBQUEsTUFBTSxFQUFFLENBQUNDLENBQUQsRUFBSUMsQ0FBSixLQUFVRCxDQUFDLENBQUNFLGFBQUYsQ0FBZ0JELENBQWhCO0FBTk0sR0FBZCxFQU9UWCxJQVBTLENBQVo7QUFRQUgsRUFBQUEsTUFBTSxDQUFDLE9BQU9JLEdBQUcsQ0FBQ0csTUFBWCxLQUFzQixTQUF2QixDQUFOO0FBQ0FQLEVBQUFBLE1BQU0sQ0FBQyxPQUFPSSxHQUFHLENBQUNJLGlCQUFYLEtBQWlDLFFBQWxDLENB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RCxDQUF1REMsQ0FBQyxJQUFJRyxHQUFHLENBQUNVLE1BQUosQ0FBV2IsQ0FBWCxDQUE1RCxDQUFiO0FBQ0FDLE1BQUFBLE1BQU0sQ0FBQ0UsR0FBRyxDQUFDRCxNQUFMLENBQU4sR0FBcUJHLElBQXJCO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPekIsR0FBRyxDQUFDRyxNQUFKLEtBQWUsSUFBZixHQUFzQlksTUFBTSxDQUFDYyxJQUFQLENBQVksSUFBWixDQUF0QixHQUEwQ2QsTUFBakQ7QUFDRCxDQTFCRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpO1xuXG5jb25zdCBidWlsZEN0eCA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IGN0eCA9IE9iamVjdC5hc3NpZ24oe1xuICAgIGpvaW5lZDogdHJ1ZSxcbiAgICBzcGFjZXJOb05laWdoYm91cjogJyAgICcsXG4gICAgc3BhY2VyTmVpZ2hib3VyOiAn4pSCICAnLFxuICAgIGtleU5vTmVpZ2hib3VyOiAn4pSU4pSAICcsXG4gICAga2V5TmVpZ2hib3VyOiAn4pSc4pSAICcsXG4gICAgc29ydEZuOiAoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpXG4gIH0sIG9wdHMpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5qb2luZWQgPT09ICdib29sZWFuJyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LnNwYWNlck5vTmVpZ2hib3VyID09PSAnc3RyaW5nJyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LnNwYWNlck5laWdoYm91ciA9PT0gJ3N0cmluZycpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5rZXlOb05laWdoYm91ciA9PT0gJ3N0cmluZycpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5rZXlOZWlnaGJvdXIgPT09ICdzdHJpbmcnKTtcbiAgYXNzZXJ0KHR5cGVvZiBjdHguc29ydEZuID09PSAnZnVuY3Rpb24nKTtcbiAgcmV0dXJuIGN0eDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gKHRyZWUsIG9wdHMgPSB7fSkgPT4ge1xuICBjb25zdCBjdHggPSBidWlsZEN0eChvcHRzKTtcbiAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgY29uc3QgbmVpZ2hib3VycyA9IFtdO1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModHJlZSkuc29ydCgoYSwgYikgPT4gY3R4LnNvcnRGbihiLCBhKSkubWFwKGsgPT4gW2tdKTtcbiAgY29uc3QgbG9va3VwID0gW3RyZWVdO1xuICB3aGlsZSAoa2V5cy5sZW5ndGggIT09IDApIHtcbiAgICBjb25zdCBrZXkgPSBrZXlzLnBvcCgpO1xuICAgIGNvbnN0IG5vZGUgPSBsb29rdXBba2V5Lmxlbmd0aCAtIDFdW2tleVtrZXkubGVuZ3RoIC0gMV1dO1xuXG4gICAgbmVpZ2hib3Vyc1trZXkubGVuZ3RoIC0gMV0gPSBrZXlzLmxlbmd0aCAhPT0gMCAmJiBrZXlzW2tleXMubGVuZ3RoIC0gMV0ubGVuZ3RoID09PSBrZXkubGVuZ3RoO1xuICAgIHJlc3VsdC5wdXNoKFtcbiAgICAgIG5laWdoYm91cnMuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpLm1hcChuID0+IChuID8gY3R4LnNwYWNlck5laWdoYm91ciA6IGN0eC5zcGFjZXJOb05laWdoYm91cikpLmpvaW4oJycpLFxuICAgICAgbmVpZ2hib3Vyc1trZXkubGVuZ3RoIC0gMV0gPyBjdHgua2V5TmVpZ2hib3VyIDogY3R4LmtleU5vTmVpZ2hib3VyLFxuICAgICAga2V5W2tleS5sZW5ndGggLSAxXSxcbiAgICAgIFsnYm9vbGVhbicsICdzdHJpbmcnLCAnbnVtYmVyJ10uaW5jbHVkZXModHlwZW9mIG5vZGUpID8gYDogJHtub2RlfWAgOiAnJ1xuICAgIF0uam9pbignJykpO1xuXG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBPYmplY3QgJiYgIUFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgIGtleXMucHVzaCguLi5PYmplY3Qua2V5cyhub2RlKS5zb3J0KChhLCBiKSA9PiBjdHguc29ydEZuKGIsIGEpKS5tYXAoayA9PiBrZXkuY29uY2F0KGspKSk7XG4gICAgICBsb29rdXBba2V5Lmxlbmd0aF0gPSBub2RlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjdHguam9pbmVkID09PSB0cnVlID8gcmVzdWx0LmpvaW4oJ1xcbicpIDogcmVzdWx0O1xufTtcbiJdfQ== |
{ | ||
"name": "object-treeify", | ||
"version": "1.0.3", | ||
"version": "1.1.0", | ||
"description": "Stringify Object as tree structure", | ||
@@ -42,12 +42,12 @@ "main": "lib/index.js", | ||
"@babel/cli": "7.2.3", | ||
"@babel/core": "7.3.4", | ||
"@babel/plugin-proposal-object-rest-spread": "7.3.4", | ||
"@babel/plugin-transform-flow-comments": "7.2.0", | ||
"@babel/core": "7.4.0", | ||
"@babel/plugin-proposal-object-rest-spread": "7.4.0", | ||
"@babel/plugin-transform-flow-comments": "7.4.0", | ||
"@babel/preset-flow": "7.0.0", | ||
"@babel/register": "7.0.0", | ||
"@babel/register": "7.4.0", | ||
"babel-eslint": "10.0.1", | ||
"chai": "4.2.0", | ||
"coveralls": "3.0.3", | ||
"eslint": "5.15.2", | ||
"js-gardener": "1.38.4", | ||
"eslint": "5.15.3", | ||
"js-gardener": "1.38.6", | ||
"nyc": "13.3.0", | ||
@@ -54,0 +54,0 @@ "semantic-release": "15.13.3" |
@@ -31,3 +31,3 @@ # object-treeify | ||
the algorithm is much shorter and faster, works without recursion and is very memory efficient. Furthermore | ||
the output is sorted alphabetically as one would expect. | ||
the output can be sorted using a custom comparator function. | ||
@@ -112,4 +112,11 @@ ## Install | ||
#### sortFn | ||
Type: `function`<br> | ||
Default: `(a, b) => a.localeCompare(b)` | ||
Function that defines the key sort order. | ||
## Examples | ||
More examples can be found in the tests. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
15031
37
121