Socket
Socket
Sign inDemoInstall

object-treeify

Package Overview
Dependencies
Maintainers
1
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

object-treeify - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

16

lib/index.js

@@ -7,3 +7,3 @@ const assert = require('assert');

spacerNoNeighbour: ' ',
spacerNeighbour: '| ',
spacerNeighbour: '│ ',
keyNoNeighbour: '└─ ',

@@ -20,2 +20,4 @@ keyNeighbour: '├─ '

const sortFn = (a, b) => b.localeCompare(a);
module.exports = (tree, opts = {}) => {

@@ -25,14 +27,14 @@ const ctx = buildCtx(opts);

const neighbours = [];
const keys = Object.keys(tree).sort().map(k => [k]);
const keys = Object.keys(tree).sort(sortFn).map(k => [k]);
const lookup = [tree];
while (keys.length !== 0) {
const key = keys.shift();
const key = keys.pop();
const node = lookup[key.length - 1][key[key.length - 1]];
lookup[key.length] = node;
neighbours[key.length - 1] = keys.length !== 0 && keys[0].length === key.length;
neighbours[key.length - 1] = keys.length !== 0 && keys[keys.length - 1].length === key.length;
result.push([neighbours.slice(0, key.length - 1).map(n => n ? ctx.spacerNeighbour : ctx.spacerNoNeighbour).join(''), neighbours[key.length - 1] ? ctx.keyNeighbour : ctx.keyNoNeighbour, key[key.length - 1], ['boolean', 'string', 'number'].includes(typeof node) ? `: ${node}` : ''].join(''));
if (node instanceof Object && !Array.isArray(node)) {
keys.unshift(...Object.keys(node).sort().map(k => key.concat(k)));
keys.push(...Object.keys(node).sort(sortFn).map(k => key.concat(k)));
lookup[key.length] = node;
}

@@ -43,2 +45,2 @@ }

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiYnVpbGRDdHgiLCJvcHRzIiwiY3R4IiwiT2JqZWN0IiwiYXNzaWduIiwiam9pbmVkIiwic3BhY2VyTm9OZWlnaGJvdXIiLCJzcGFjZXJOZWlnaGJvdXIiLCJrZXlOb05laWdoYm91ciIsImtleU5laWdoYm91ciIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0cmVlIiwicmVzdWx0IiwibmVpZ2hib3VycyIsImtleXMiLCJzb3J0IiwibWFwIiwiayIsImxvb2t1cCIsImxlbmd0aCIsImtleSIsInNoaWZ0Iiwibm9kZSIsInB1c2giLCJzbGljZSIsIm4iLCJqb2luIiwiaW5jbHVkZXMiLCJBcnJheSIsImlzQXJyYXkiLCJ1bnNoaWZ0IiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUVBLE1BQU1DLFFBQVEsR0FBSUMsSUFBRCxJQUFVO0FBQ3pCLFFBQU1DLEdBQUcsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFDeEJDLElBQUFBLE1BQU0sRUFBRSxJQURnQjtBQUV4QkMsSUFBQUEsaUJBQWlCLEVBQUUsS0FGSztBQUd4QkMsSUFBQUEsZUFBZSxFQUFFLEtBSE87QUFJeEJDLElBQUFBLGNBQWMsRUFBRSxLQUpRO0FBS3hCQyxJQUFBQSxZQUFZLEVBQUU7QUFMVSxHQUFkLEVBTVRSLElBTlMsQ0FBWjtBQU9BSCxFQUFBQSxNQUFNLENBQUMsT0FBT0ksR0FBRyxDQUFDRyxNQUFYLEtBQXNCLFNBQXZCLENBQU47QUFDQVAsRUFBQUEsTUFBTSxDQUFDLE9BQU9JLEdBQUcsQ0FBQ0ksaUJBQVgsS0FBaUMsUUFBbEMsQ0FBTjtBQUNBUixFQUFBQSxNQUFNLENBQUMsT0FBT0ksR0FBRyxDQUFDSyxlQUFYLEtBQStCLFFBQWhDLENBQU47QUFDQVQsRUFBQUEsTUFBTSxDQUFDLE9BQU9JLEdBQUcsQ0FBQ00sY0FBWCxLQUE4QixRQUEvQixDQUFOO0FBQ0FWLEVBQUFBLE1BQU0sQ0FBQyxPQUFPSSxHQUFHLENBQUNPLFlBQVgsS0FBNEIsUUFBN0IsQ0FBTjtBQUNBLFNBQU9QLEdBQVA7QUFDRCxDQWREOztBQWdCQVEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLENBQUNDLElBQUQsRUFBT1gsSUFBSSxHQUFHLEVBQWQsS0FBcUI7QUFDcEMsUUFBTUMsR0FBRyxHQUFHRixRQUFRLENBQUNDLElBQUQsQ0FBcEI7QUFDQSxRQUFNWSxNQUFNLEdBQUcsRUFBZjtBQUVBLFFBQU1DLFVBQVUsR0FBRyxFQUFuQjtBQUNBLFFBQU1DLElBQUksR0FBR1osTUFBTSxDQUFDWSxJQUFQLENBQVlILElBQVosRUFBa0JJLElBQWxCLEdBQXlCQyxHQUF6QixDQUE2QkMsQ0FBQyxJQUFJLENBQUNBLENBQUQsQ0FBbEMsQ0FBYjtBQUNBLFFBQU1DLE1BQU0sR0FBRyxDQUFDUCxJQUFELENBQWY7O0FBQ0EsU0FBT0csSUFBSSxDQUFDSyxNQUFMLEtBQWdCLENBQXZCLEVBQTBCO0FBQ3hCLFVBQU1DLEdBQUcsR0FBR04sSUFBSSxDQUFDTyxLQUFMLEVBQVo7QUFDQSxVQUFNQyxJQUFJLEdBQUdKLE1BQU0sQ0FBQ0UsR0FBRyxDQUFDRCxNQUFKLEdBQWEsQ0FBZCxDQUFOLENBQXVCQyxHQUFHLENBQUNBLEdBQUcsQ0FBQ0QsTUFBSixHQUFhLENBQWQsQ0FBMUIsQ0FBYjtBQUNBRCxJQUFBQSxNQUFNLENBQUNFLEdBQUcsQ0FBQ0QsTUFBTCxDQUFOLEdBQXFCRyxJQUFyQjtBQUVBVCxJQUFBQSxVQUFVLENBQUNPLEdBQUcsQ0FBQ0QsTUFBSixHQUFhLENBQWQsQ0FBVixHQUE2QkwsSUFBSSxDQUFDSyxNQUFMLEtBQWdCLENBQWhCLElBQXFCTCxJQUFJLENBQUMsQ0FBRCxDQUFKLENBQVFLLE1BQVIsS0FBbUJDLEdBQUcsQ0FBQ0QsTUFBekU7QUFDQVAsSUFBQUEsTUFBTSxDQUFDVyxJQUFQLENBQVksQ0FDVlYsVUFBVSxDQUFDVyxLQUFYLENBQWlCLENBQWpCLEVBQW9CSixHQUFHLENBQUNELE1BQUosR0FBYSxDQUFqQyxFQUFvQ0gsR0FBcEMsQ0FBd0NTLENBQUMsSUFBS0EsQ0FBQyxHQUFHeEIsR0FBRyxDQUFDSyxlQUFQLEdBQXlCTCxHQUFHLENBQUNJLGlCQUE1RSxFQUFnR3FCLElBQWhHLENBQXFHLEVBQXJHLENBRFUsRUFFVmIsVUFBVSxDQUFDTyxHQUFHLENBQUNELE1BQUosR0FBYSxDQUFkLENBQVYsR0FBNkJsQixHQUFHLENBQUNPLFlBQWpDLEdBQWdEUCxHQUFHLENBQUNNLGNBRjFDLEVBR1ZhLEdBQUcsQ0FBQ0EsR0FBRyxDQUFDRCxNQUFKLEdBQWEsQ0FBZCxDQUhPLEVBSVYsQ0FBQyxTQUFELEVBQVksUUFBWixFQUFzQixRQUF0QixFQUFnQ1EsUUFBaEMsQ0FBeUMsT0FBT0wsSUFBaEQsSUFBeUQsS0FBSUEsSUFBSyxFQUFsRSxHQUFzRSxFQUo1RCxFQUtWSSxJQUxVLENBS0wsRUFMSyxDQUFaOztBQU9BLFFBQUlKLElBQUksWUFBWXBCLE1BQWhCLElBQTBCLENBQUMwQixLQUFLLENBQUNDLE9BQU4sQ0FBY1AsSUFBZCxDQUEvQixFQUFvRDtBQUNsRFIsTUFBQUEsSUFBSSxDQUFDZ0IsT0FBTCxDQUFhLEdBQUc1QixNQUFNLENBQUNZLElBQVAsQ0FBWVEsSUFBWixFQUFrQlAsSUFBbEIsR0FBeUJDLEdBQXpCLENBQTZCQyxDQUFDLElBQUlHLEdBQUcsQ0FBQ1csTUFBSixDQUFXZCxDQUFYLENBQWxDLENBQWhCO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPaEIsR0FBRyxDQUFDRyxNQUFKLEtBQWUsSUFBZixHQUFzQlEsTUFBTSxDQUFDYyxJQUFQLENBQVksSUFBWixDQUF0QixHQUEwQ2QsTUFBakQ7QUFDRCxDQTFCRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpO1xuXG5jb25zdCBidWlsZEN0eCA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IGN0eCA9IE9iamVjdC5hc3NpZ24oe1xuICAgIGpvaW5lZDogdHJ1ZSxcbiAgICBzcGFjZXJOb05laWdoYm91cjogJyAgICcsXG4gICAgc3BhY2VyTmVpZ2hib3VyOiAnfCAgJyxcbiAgICBrZXlOb05laWdoYm91cjogJ+KUlOKUgCAnLFxuICAgIGtleU5laWdoYm91cjogJ+KUnOKUgCAnXG4gIH0sIG9wdHMpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5qb2luZWQgPT09ICdib29sZWFuJyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LnNwYWNlck5vTmVpZ2hib3VyID09PSAnc3RyaW5nJyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LnNwYWNlck5laWdoYm91ciA9PT0gJ3N0cmluZycpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5rZXlOb05laWdoYm91ciA9PT0gJ3N0cmluZycpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5rZXlOZWlnaGJvdXIgPT09ICdzdHJpbmcnKTtcbiAgcmV0dXJuIGN0eDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gKHRyZWUsIG9wdHMgPSB7fSkgPT4ge1xuICBjb25zdCBjdHggPSBidWlsZEN0eChvcHRzKTtcbiAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgY29uc3QgbmVpZ2hib3VycyA9IFtdO1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModHJlZSkuc29ydCgpLm1hcChrID0+IFtrXSk7XG4gIGNvbnN0IGxvb2t1cCA9IFt0cmVlXTtcbiAgd2hpbGUgKGtleXMubGVuZ3RoICE9PSAwKSB7XG4gICAgY29uc3Qga2V5ID0ga2V5cy5zaGlmdCgpO1xuICAgIGNvbnN0IG5vZGUgPSBsb29rdXBba2V5Lmxlbmd0aCAtIDFdW2tleVtrZXkubGVuZ3RoIC0gMV1dO1xuICAgIGxvb2t1cFtrZXkubGVuZ3RoXSA9IG5vZGU7XG5cbiAgICBuZWlnaGJvdXJzW2tleS5sZW5ndGggLSAxXSA9IGtleXMubGVuZ3RoICE9PSAwICYmIGtleXNbMF0ubGVuZ3RoID09PSBrZXkubGVuZ3RoO1xuICAgIHJlc3VsdC5wdXNoKFtcbiAgICAgIG5laWdoYm91cnMuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpLm1hcChuID0+IChuID8gY3R4LnNwYWNlck5laWdoYm91ciA6IGN0eC5zcGFjZXJOb05laWdoYm91cikpLmpvaW4oJycpLFxuICAgICAgbmVpZ2hib3Vyc1trZXkubGVuZ3RoIC0gMV0gPyBjdHgua2V5TmVpZ2hib3VyIDogY3R4LmtleU5vTmVpZ2hib3VyLFxuICAgICAga2V5W2tleS5sZW5ndGggLSAxXSxcbiAgICAgIFsnYm9vbGVhbicsICdzdHJpbmcnLCAnbnVtYmVyJ10uaW5jbHVkZXModHlwZW9mIG5vZGUpID8gYDogJHtub2RlfWAgOiAnJ1xuICAgIF0uam9pbignJykpO1xuXG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBPYmplY3QgJiYgIUFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgIGtleXMudW5zaGlmdCguLi5PYmplY3Qua2V5cyhub2RlKS5zb3J0KCkubWFwKGsgPT4ga2V5LmNvbmNhdChrKSkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjdHguam9pbmVkID09PSB0cnVlID8gcmVzdWx0LmpvaW4oJ1xcbicpIDogcmVzdWx0O1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiYnVpbGRDdHgiLCJvcHRzIiwiY3R4IiwiT2JqZWN0IiwiYXNzaWduIiwiam9pbmVkIiwic3BhY2VyTm9OZWlnaGJvdXIiLCJzcGFjZXJOZWlnaGJvdXIiLCJrZXlOb05laWdoYm91ciIsImtleU5laWdoYm91ciIsInNvcnRGbiIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0cmVlIiwicmVzdWx0IiwibmVpZ2hib3VycyIsImtleXMiLCJzb3J0IiwibWFwIiwiayIsImxvb2t1cCIsImxlbmd0aCIsImtleSIsInBvcCIsIm5vZGUiLCJwdXNoIiwic2xpY2UiLCJuIiwiam9pbiIsImluY2x1ZGVzIiwiQXJyYXkiLCJpc0FycmF5IiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUVBLE1BQU1DLFFBQVEsR0FBSUMsSUFBRCxJQUFVO0FBQ3pCLFFBQU1DLEdBQUcsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFDeEJDLElBQUFBLE1BQU0sRUFBRSxJQURnQjtBQUV4QkMsSUFBQUEsaUJBQWlCLEVBQUUsS0FGSztBQUd4QkMsSUFBQUEsZUFBZSxFQUFFLEtBSE87QUFJeEJDLElBQUFBLGNBQWMsRUFBRSxLQUpRO0FBS3hCQyxJQUFBQSxZQUFZLEVBQUU7QUFMVSxHQUFkLEVBTVRSLElBTlMsQ0FBWjtBQU9BSCxFQUFBQSxNQUFNLENBQUMsT0FBT0ksR0FBRyxDQUFDRyxNQUFYLEtBQXNCLFNBQXZCLENBQU47QUFDQVAsRUFBQUEsTUFBTSxDQUFDLE9BQU9JLEdBQUcsQ0FBQ0ksaUJBQVgsS0FBaUMsUUFBbEMsQ0FBTjtBQUNBUixFQUFBQSxNQUFNLENBQUMsT0FBT0ksR0FBRyxDQUFDSyxlQUFYLEtBQStCLFFBQWhDLENBQU47QUFDQVQsRUFBQUEsTUFBTSxDQUFD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SUFBWixDQUF0QixHQUEwQ2QsTUFBakQ7QUFDRCxDQTFCRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpO1xuXG5jb25zdCBidWlsZEN0eCA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IGN0eCA9IE9iamVjdC5hc3NpZ24oe1xuICAgIGpvaW5lZDogdHJ1ZSxcbiAgICBzcGFjZXJOb05laWdoYm91cjogJyAgICcsXG4gICAgc3BhY2VyTmVpZ2hib3VyOiAn4pSCICAnLFxuICAgIGtleU5vTmVpZ2hib3VyOiAn4pSU4pSAICcsXG4gICAga2V5TmVpZ2hib3VyOiAn4pSc4pSAICdcbiAgfSwgb3B0cyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LmpvaW5lZCA9PT0gJ2Jvb2xlYW4nKTtcbiAgYXNzZXJ0KHR5cGVvZiBjdHguc3BhY2VyTm9OZWlnaGJvdXIgPT09ICdzdHJpbmcnKTtcbiAgYXNzZXJ0KHR5cGVvZiBjdHguc3BhY2VyTmVpZ2hib3VyID09PSAnc3RyaW5nJyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LmtleU5vTmVpZ2hib3VyID09PSAnc3RyaW5nJyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LmtleU5laWdoYm91ciA9PT0gJ3N0cmluZycpO1xuICByZXR1cm4gY3R4O1xufTtcblxuY29uc3Qgc29ydEZuID0gKGEsIGIpID0+IGIubG9jYWxlQ29tcGFyZShhKTtcblxubW9kdWxlLmV4cG9ydHMgPSAodHJlZSwgb3B0cyA9IHt9KSA9PiB7XG4gIGNvbnN0IGN0eCA9IGJ1aWxkQ3R4KG9wdHMpO1xuICBjb25zdCByZXN1bHQgPSBbXTtcblxuICBjb25zdCBuZWlnaGJvdXJzID0gW107XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0cmVlKS5zb3J0KHNvcnRGbikubWFwKGsgPT4gW2tdKTtcbiAgY29uc3QgbG9va3VwID0gW3RyZWVdO1xuICB3aGlsZSAoa2V5cy5sZW5ndGggIT09IDApIHtcbiAgICBjb25zdCBrZXkgPSBrZXlzLnBvcCgpO1xuICAgIGNvbnN0IG5vZGUgPSBsb29rdXBba2V5Lmxlbmd0aCAtIDFdW2tleVtrZXkubGVuZ3RoIC0gMV1dO1xuXG4gICAgbmVpZ2hib3Vyc1trZXkubGVuZ3RoIC0gMV0gPSBrZXlzLmxlbmd0aCAhPT0gMCAmJiBrZXlzW2tleXMubGVuZ3RoIC0gMV0ubGVuZ3RoID09PSBrZXkubGVuZ3RoO1xuICAgIHJlc3VsdC5wdXNoKFtcbiAgICAgIG5laWdoYm91cnMuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpLm1hcChuID0+IChuID8gY3R4LnNwYWNlck5laWdoYm91ciA6IGN0eC5zcGFjZXJOb05laWdoYm91cikpLmpvaW4oJycpLFxuICAgICAgbmVpZ2hib3Vyc1trZXkubGVuZ3RoIC0gMV0gPyBjdHgua2V5TmVpZ2hib3VyIDogY3R4LmtleU5vTmVpZ2hib3VyLFxuICAgICAga2V5W2tleS5sZW5ndGggLSAxXSxcbiAgICAgIFsnYm9vbGVhbicsICdzdHJpbmcnLCAnbnVtYmVyJ10uaW5jbHVkZXModHlwZW9mIG5vZGUpID8gYDogJHtub2RlfWAgOiAnJ1xuICAgIF0uam9pbignJykpO1xuXG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBPYmplY3QgJiYgIUFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgIGtleXMucHVzaCguLi5PYmplY3Qua2V5cyhub2RlKS5zb3J0KHNvcnRGbikubWFwKGsgPT4ga2V5LmNvbmNhdChrKSkpO1xuICAgICAgbG9va3VwW2tleS5sZW5ndGhdID0gbm9kZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3R4LmpvaW5lZCA9PT0gdHJ1ZSA/IHJlc3VsdC5qb2luKCdcXG4nKSA6IHJlc3VsdDtcbn07XG4iXX0=
{
"name": "object-treeify",
"version": "1.0.1",
"version": "1.0.2",
"description": "Stringify Object as tree structure",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -30,8 +30,11 @@ # object-treeify

Project was inspired by [treeify](https://github.com/notatestuser/treeify) and works almost identical. However
the algorithm is much shorter and faster, works without recursion and is very memory efficient.
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.
## Getting Started
## Install
$ npm install --save object-treeify
## Usage
<!-- eslint-disable import/no-unresolved -->

@@ -56,4 +59,4 @@ ```js

// ├─ apples,
// | ├─ gala,
// | └─ pink lady,
// │ ├─ gala,
// │ └─ pink lady,
// └─ oranges,

@@ -65,2 +68,10 @@ // └─ mandarin,

### Features
- Output is sorted alphabetically as one would expect
- Very fast and memory efficient implementation
- Input traversed exactly once
- Dependency free and small in size
- Tests to verify correctness
## Options

@@ -85,3 +96,3 @@

Type: `string`<br>
Default: `| `
Default: `│ `

@@ -88,0 +99,0 @@ Prefix for depth level when a further neighbour is present.

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc