object-treeify
Advanced tools
Comparing version 1.0.0 to 1.0.1
@@ -6,6 +6,6 @@ const assert = require('assert'); | ||
joined: true, | ||
spacerNoNeighbour: ' ', | ||
spacerNeighbour: '| ', | ||
keyNoNeighbour: '└── ', | ||
keyNeighbour: '├── ' | ||
spacerNoNeighbour: ' ', | ||
spacerNeighbour: '| ', | ||
keyNoNeighbour: '└─ ', | ||
keyNeighbour: '├─ ' | ||
}, opts); | ||
@@ -25,6 +25,8 @@ assert(typeof ctx.joined === 'boolean'); | ||
const keys = Object.keys(tree).sort().map(k => [k]); | ||
const lookup = [tree]; | ||
while (keys.length !== 0) { | ||
const key = keys.shift(); | ||
const node = key.reduce((p, c) => p[c], tree); | ||
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; | ||
@@ -40,2 +42,2 @@ 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('')); | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiYnVpbGRDdHgiLCJvcHRzIiwiY3R4IiwiT2JqZWN0IiwiYXNzaWduIiwiam9pbmVkIiwic3BhY2VyTm9OZWlnaGJvdXIiLCJzcGFjZXJOZWlnaGJvdXIiLCJrZXlOb05laWdoYm91ciIsImtleU5laWdoYm91ciIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0cmVlIiwicmVzdWx0IiwibmVpZ2hib3VycyIsImtleXMiLCJzb3J0IiwibWFwIiwiayIsImxlbmd0aCIsImtleSIsInNoaWZ0Iiwibm9kZSIsInJlZHVjZSIsInAiLCJjIiwicHVzaCIsInNsaWNlIiwibiIsImpvaW4iLCJpbmNsdWRlcyIsIkFycmF5IiwiaXNBcnJheSIsInVuc2hpZnQiLCJjb25jYXQiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBRUEsTUFBTUMsUUFBUSxHQUFJQyxJQUFELElBQVU7QUFDekIsUUFBTUMsR0FBRyxHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBYztBQUN4QkMsSUFBQUEsTUFBTSxFQUFFLElBRGdCO0FBRXhCQyxJQUFBQSxpQkFBaUIsRUFBRSxNQUZLO0FBR3hCQyxJQUFBQSxlQUFlLEVBQUUsTUFITztBQUl4QkMsSUFBQUEsY0FBYyxFQUFFLE1BSlE7QUFLeEJDLElBQUFBLFlBQVksRUFBRTtBQUxVLEdBQWQsRUFNVFIsSUFOUyxDQUFaO0FBT0FILEVBQUFBLE1BQU0sQ0FBQyxPQUFPSSxHQUFHLENBQUNHLE1BQVgsS0FBc0IsU0FBdkIsQ0FBTjtBQUNBUCxFQUFBQSxNQUFNLENBQUMsT0FBT0ksR0FBRyxDQUFDSSxpQkFBWCxLQUFpQyxRQUFsQyxDQUFOO0FBQ0FSLEVBQUFBLE1BQU0sQ0FBQyxPQUFPSSxHQUFHLENBQUNLLGVBQVgsS0FBK0IsUUFBaEMsQ0FBTjtBQUNBVCxFQUFBQSxNQUFNLENBQUMsT0FBT0ksR0FBRyxDQUFDTSxjQUFYLEtBQThCLFFBQS9CLENBQU47QUFDQVYsRUFBQUEsTUFBTSxDQUFDLE9BQU9JLEdBQUcsQ0FBQ08sWUFBWCxLQUE0QixRQUE3QixDQUFOO0FBQ0EsU0FBT1AsR0FBUDtBQUNELENBZEQ7O0FBZ0JBUSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsQ0FBQ0MsSUFBRCxFQUFPWCxJQUFJLEdBQUcsRUFBZCxLQUFxQjtBQUNwQyxRQUFNQyxHQUFHLEdBQUdGLFFBQVEsQ0FBQ0MsSUFBRCxDQUFwQjtBQUNBLFFBQU1ZLE1BQU0sR0FBRyxFQUFmO0FBRUEsUUFBTUMsVUFBVSxHQUFHLEVBQW5CO0FBQ0EsUUFBTUMsSUFBSSxHQUFHWixNQUFNLENBQUNZLElBQVAsQ0FBWUgsSUFBWixFQUFrQkksSUFBbEIsR0FBeUJDLEdBQXpCLENBQTZCQyxDQUFDLElBQUksQ0FBQ0EsQ0FBRCxDQUFsQyxDQUFiOztBQUNBLFNBQU9ILElBQUksQ0FBQ0ksTUFBTCxLQUFnQixDQUF2QixFQUEwQjtBQUN4QixVQUFNQyxHQUFHLEdBQUdMLElBQUksQ0FBQ00sS0FBTCxFQUFaO0FBQ0EsVUFBTUMsSUFBSSxHQUFHRixHQUFHLENBQUNHLE1BQUosQ0FBVyxDQUFDQyxDQUFELEVBQUlDLENBQUosS0FBVUQsQ0FBQyxDQUFDQyxDQUFELENBQXRCLEVBQTJCYixJQUEzQixDQUFiO0FBRUFFLElBQUFBLFVBQVUsQ0FBQ00sR0FBRyxDQUFDRCxNQUFKLEdBQWEsQ0FBZCxDQUFWLEdBQTZCSixJQUFJLENBQUNJLE1BQUwsS0FBZ0IsQ0FBaEIsSUFBcUJKLElBQUksQ0FBQyxDQUFELENBQUosQ0FBUUksTUFBUixLQUFtQkMsR0FBRyxDQUFDRCxNQUF6RTtBQUNBTixJQUFBQSxNQUFNLENBQUNhLElBQVAsQ0FBWSxDQUNWWixVQUFVLENBQUNhLEtBQVgsQ0FBaUIsQ0FBakIsRUFBb0JQLEdBQUcsQ0FBQ0QsTUFBSixHQUFhLENBQWpDLEVBQW9DRixHQUFwQyxDQUF3Q1csQ0FBQyxJQUFLQSxDQUFDLEdBQUcxQixHQUFHLENBQUNLLGVBQVAsR0FBeUJMLEdBQUcsQ0FBQ0ksaUJBQTVFLEVBQWdHdUIsSUFBaEcsQ0FBcUcsRUFBckcsQ0FEVSxFQUVWZixVQUFVLENBQUNNLEdBQUcsQ0FBQ0QsTUFBSixHQUFhLENBQWQsQ0FBVixHQUE2QmpCLEdBQUcsQ0FBQ08sWUFBakMsR0FBZ0RQLEdBQUcsQ0FBQ00sY0FGMUMsRUFHVlksR0FBRyxDQUFDQSxHQUFHLENBQUNELE1BQUosR0FBYSxDQUFkLENBSE8sRUFJVixDQUFDLFNBQUQsRUFBWSxRQUFaLEVBQXNCLFFBQXRCLEVBQWdDVyxRQUFoQyxDQUF5QyxPQUFPUixJQUFoRCxJQUF5RCxLQUFJQSxJQUFLLEVBQWxFLEdBQXNFLEVBSjVELEVBS1ZPLElBTFUsQ0FLTCxFQUxLLENBQVo7O0FBT0EsUUFBSVAsSUFBSSxZQUFZbkIsTUFBaEIsSUFBMEIsQ0FBQzRCLEtBQUssQ0FBQ0MsT0FBTixDQUFjVixJQUFkLENBQS9CLEVBQW9EO0FBQ2xEUCxNQUFBQSxJQUFJLENBQUNrQixPQUFMLENBQWEsR0FBRzlCLE1BQU0sQ0FBQ1ksSUFBUCxDQUFZTyxJQUFaLEVBQWtCTixJQUFsQixHQUF5QkMsR0FBekIsQ0FBNkJDLENBQUMsSUFBSUUsR0FBRyxDQUFDYyxNQUFKLENBQVdoQixDQUFYLENBQWxDLENBQWhCO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPaEIsR0FBRyxDQUFDRyxNQUFKLEtBQWUsSUFBZixHQUFzQlEsTUFBTSxDQUFDZ0IsSUFBUCxDQUFZLElBQVosQ0FBdEIsR0FBMENoQixNQUFqRDtBQUNELENBeEJEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5cbmNvbnN0IGJ1aWxkQ3R4ID0gKG9wdHMpID0+IHtcbiAgY29uc3QgY3R4ID0gT2JqZWN0LmFzc2lnbih7XG4gICAgam9pbmVkOiB0cnVlLFxuICAgIHNwYWNlck5vTmVpZ2hib3VyOiAnICAgICcsXG4gICAgc3BhY2VyTmVpZ2hib3VyOiAnfCAgICcsXG4gICAga2V5Tm9OZWlnaGJvdXI6ICfilJTilIDilIAgJyxcbiAgICBrZXlOZWlnaGJvdXI6ICfilJzilIDilIAgJ1xuICB9LCBvcHRzKTtcbiAgYXNzZXJ0KHR5cGVvZiBjdHguam9pbmVkID09PSAnYm9vbGVhbicpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5zcGFjZXJOb05laWdoYm91ciA9PT0gJ3N0cmluZycpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5zcGFjZXJOZWlnaGJvdXIgPT09ICdzdHJpbmcnKTtcbiAgYXNzZXJ0KHR5cGVvZiBjdHgua2V5Tm9OZWlnaGJvdXIgPT09ICdzdHJpbmcnKTtcbiAgYXNzZXJ0KHR5cGVvZiBjdHgua2V5TmVpZ2hib3VyID09PSAnc3RyaW5nJyk7XG4gIHJldHVybiBjdHg7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9ICh0cmVlLCBvcHRzID0ge30pID0+IHtcbiAgY29uc3QgY3R4ID0gYnVpbGRDdHgob3B0cyk7XG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gIGNvbnN0IG5laWdoYm91cnMgPSBbXTtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRyZWUpLnNvcnQoKS5tYXAoayA9PiBba10pO1xuICB3aGlsZSAoa2V5cy5sZW5ndGggIT09IDApIHtcbiAgICBjb25zdCBrZXkgPSBrZXlzLnNoaWZ0KCk7XG4gICAgY29uc3Qgbm9kZSA9IGtleS5yZWR1Y2UoKHAsIGMpID0+IHBbY10sIHRyZWUpO1xuXG4gICAgbmVpZ2hib3Vyc1trZXkubGVuZ3RoIC0gMV0gPSBrZXlzLmxlbmd0aCAhPT0gMCAmJiBrZXlzWzBdLmxlbmd0aCA9PT0ga2V5Lmxlbmd0aDtcbiAgICByZXN1bHQucHVzaChbXG4gICAgICBuZWlnaGJvdXJzLnNsaWNlKDAsIGtleS5sZW5ndGggLSAxKS5tYXAobiA9PiAobiA/IGN0eC5zcGFjZXJOZWlnaGJvdXIgOiBjdHguc3BhY2VyTm9OZWlnaGJvdXIpKS5qb2luKCcnKSxcbiAgICAgIG5laWdoYm91cnNba2V5Lmxlbmd0aCAtIDFdID8gY3R4LmtleU5laWdoYm91ciA6IGN0eC5rZXlOb05laWdoYm91cixcbiAgICAgIGtleVtrZXkubGVuZ3RoIC0gMV0sXG4gICAgICBbJ2Jvb2xlYW4nLCAnc3RyaW5nJywgJ251bWJlciddLmluY2x1ZGVzKHR5cGVvZiBub2RlKSA/IGA6ICR7bm9kZX1gIDogJydcbiAgICBdLmpvaW4oJycpKTtcblxuICAgIGlmIChub2RlIGluc3RhbmNlb2YgT2JqZWN0ICYmICFBcnJheS5pc0FycmF5KG5vZGUpKSB7XG4gICAgICBrZXlzLnVuc2hpZnQoLi4uT2JqZWN0LmtleXMobm9kZSkuc29ydCgpLm1hcChrID0+IGtleS5jb25jYXQoaykpKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3R4LmpvaW5lZCA9PT0gdHJ1ZSA/IHJlc3VsdC5qb2luKCdcXG4nKSA6IHJlc3VsdDtcbn07XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiYnVpbGRDdHgiLCJvcHRzIiwiY3R4IiwiT2JqZWN0IiwiYXNzaWduIiwiam9pbmVkIiwic3BhY2VyTm9OZWlnaGJvdXIiLCJzcGFjZXJOZWlnaGJvdXIiLCJrZXlOb05laWdoYm91ciIsImtleU5laWdoYm91ciIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0cmVlIiwicmVzdWx0IiwibmVpZ2hib3VycyIsImtleXMiLCJzb3J0IiwibWFwIiwiayIsImxvb2t1cCIsImxlbmd0aCIsImtleSIsInNoaWZ0Iiwibm9kZSIsInB1c2giLCJzbGljZSIsIm4iLCJqb2luIiwiaW5jbHVkZXMiLCJBcnJheSIsImlzQXJyYXkiLCJ1bnNoaWZ0IiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUVBLE1BQU1DLFFBQVEsR0FBSUMsSUFBRCxJQUFVO0FBQ3pCLFFBQU1DLEdBQUcsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFDeEJDLElBQUFBLE1BQU0sRUFBRSxJQURnQjtBQUV4QkMsSUFBQUEsaUJBQWlCLEVBQUUsS0FGSztBQUd4QkMsSUFBQUEsZUFBZSxFQUFFLEtBSE87QUFJeEJDLElBQUFBLGNBQWMsRUFBRSxLQUpRO0FBS3hCQyxJQUFBQSxZQUFZLEVBQUU7QUFMVSxHQUFkLEVBTVRSLElBTlMsQ0FBWjtBQU9BSCxFQUFBQSxNQUFNLENBQUMsT0FBT0ksR0FBRyxDQUFDRyxNQUFYLEtBQXNCLFNBQXZCLENBQU47QUFDQVAsRUFBQUEsTUFBTSxDQUFDLE9BQU9JLEdBQUcsQ0FBQ0ksaUJBQVgsS0FBaUMsUUFBbEMsQ0FBTjtBQUNBUixFQUFBQSxNQUFNLENBQUMsT0FBT0ksR0FBRyxDQUFDSyxlQUFYLEtBQStCLFFBQWhDLENBQU47QUFDQVQsRUFBQUEsTUFBTSxDQUFDLE9BQU9JLEdBQUcsQ0FBQ00sY0FBWCxLQUE4QixRQUEvQixDQUFOO0FBQ0FWLEVBQUFBLE1BQU0sQ0FBQyxPQUFPSSxHQUFHLENBQUNPLFlBQVgsS0FBNEIsUUFBN0IsQ0FBTjtBQUNBLFNBQU9QLEdBQVA7QUFDRCxDQWREOztBQWdCQVEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLENBQUNDLElBQUQsRUFBT1gsSUFBSSxHQUFHLEVBQWQsS0FBcUI7QUFDcEMsUUFBTUMsR0FBRyxHQUFHRixRQUFRLENBQUNDLElBQUQsQ0FBcEI7QUFDQSxRQUFNWSxNQUFNLEdBQUcsRUFBZjtBQUVBLFFBQU1DLFVBQVUsR0FBRyxFQUFuQjtBQUNBLFFBQU1DLElBQUksR0FBR1osTUFBTSxDQUFDWSxJQUFQLENBQVlILElBQVosRUFBa0JJLElBQWxCLEdBQXlCQyxHQUF6QixDQUE2QkMsQ0FBQyxJQUFJLENBQUNBLENBQUQsQ0FBbEMsQ0FBYjtBQUNBLFFBQU1DLE1BQU0sR0FBRyxDQUFDUCxJQUFELENBQWY7O0FBQ0EsU0FBT0csSUFBSSxDQUFDSyxNQUFMLEtBQWdCLENBQXZCLEVBQTBCO0FBQ3hCLFVBQU1DLEdBQUcsR0FBR04sSUFBSSxDQUFDTyxLQUFMLEVBQVo7QUFDQSxVQUFNQyxJQUFJLEdBQUdKLE1BQU0sQ0FBQ0UsR0FBRyxDQUFDRCxNQUFKLEdBQWEsQ0FBZCxDQUFOLENBQXVCQyxHQUFHLENBQUNBLEdBQUcsQ0FBQ0QsTUFBSixHQUFhLENBQWQsQ0FBMUIsQ0FBYjtBQUNBRCxJQUFBQSxNQUFNLENBQUNFLEdBQUcsQ0FBQ0QsTUFBTCxDQUFOLEdBQXFCRyxJQUFyQjtBQUVBVCxJQUFBQSxVQUFVLENBQUNPLEdBQUcsQ0FBQ0QsTUFBSixHQUFhLENBQWQsQ0FBVixHQUE2QkwsSUFBSSxDQUFDSyxNQUFMLEtBQWdCLENBQWhCLElBQXFCTCxJQUFJLENBQUMsQ0FBRCxDQUFKLENBQVFLLE1BQVIsS0FBbUJDLEdBQUcsQ0FBQ0QsTUFBekU7QUFDQVAsSUFBQUEsTUFBTSxDQUFDVyxJQUFQLENBQVksQ0FDVlYsVUFBVSxDQUFDVyxLQUFYLENBQWlCLENBQWpCLEVBQW9CSixHQUFHLENBQUNELE1BQUosR0FBYSxDQUFqQyxFQUFvQ0gsR0FBcEMsQ0FBd0NTLENBQUMsSUFBS0EsQ0FBQyxHQUFHeEIsR0FBRyxDQUFDSyxlQUFQLEdBQXlCTCxHQUFHLENBQUNJLGlCQUE1RSxFQUFnR3FCLElBQWhHLENBQXFHLEVBQXJHLENBRFUsRUFFVmIsVUFBVSxDQUFDTyxHQUFHLENBQUNELE1BQUosR0FBYSxDQUFkLENBQVYsR0FBNkJsQixHQUFHLENBQUNPLFlBQWpDLEdBQWdEUCxHQUFHLENBQUNNLGNBRjFDLEVBR1ZhLEdBQUcsQ0FBQ0EsR0FBRyxDQUFDRCxNQUFKLEdBQWEsQ0FBZCxDQUhPLEVBSVYsQ0FBQyxTQUFELEVBQVksUUFBWixFQUFzQixRQUF0QixFQUFnQ1EsUUFBaEMsQ0FBeUMsT0FBT0wsSUFBaEQsSUFBeUQsS0FBSUEsSUFBSyxFQUFsRSxHQUFzRSxFQUo1RCxFQUtWSSxJQUxVLENBS0wsRUFMSyxDQUFaOztBQU9BLFFBQUlKLElBQUksWUFBWXBCLE1BQWhCLElBQTBCLENBQUMwQixLQUFLLENBQUNDLE9BQU4sQ0FBY1AsSUFBZCxDQUEvQixFQUFvRDtBQUNsRFIsTUFBQUEsSUFBSSxDQUFDZ0IsT0FBTCxDQUFhLEdBQUc1QixNQUFNLENBQUNZLElBQVAsQ0FBWVEsSUFBWixFQUFrQlAsSUFBbEIsR0FBeUJDLEdBQXpCLENBQTZCQyxDQUFDLElBQUlHLEdBQUcsQ0FBQ1csTUFBSixDQUFXZCxDQUFYLENBQWxDLENBQWhCO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPaEIsR0FBRyxDQUFDRyxNQUFKLEtBQWUsSUFBZixHQUFzQlEsTUFBTSxDQUFDYyxJQUFQLENBQVksSUFBWixDQUF0QixHQUEwQ2QsTUFBakQ7QUFDRCxDQTFCRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpO1xuXG5jb25zdCBidWlsZEN0eCA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IGN0eCA9IE9iamVjdC5hc3NpZ24oe1xuICAgIGpvaW5lZDogdHJ1ZSxcbiAgICBzcGFjZXJOb05laWdoYm91cjogJyAgICcsXG4gICAgc3BhY2VyTmVpZ2hib3VyOiAnfCAgJyxcbiAgICBrZXlOb05laWdoYm91cjogJ+KUlOKUgCAnLFxuICAgIGtleU5laWdoYm91cjogJ+KUnOKUgCAnXG4gIH0sIG9wdHMpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5qb2luZWQgPT09ICdib29sZWFuJyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LnNwYWNlck5vTmVpZ2hib3VyID09PSAnc3RyaW5nJyk7XG4gIGFzc2VydCh0eXBlb2YgY3R4LnNwYWNlck5laWdoYm91ciA9PT0gJ3N0cmluZycpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5rZXlOb05laWdoYm91ciA9PT0gJ3N0cmluZycpO1xuICBhc3NlcnQodHlwZW9mIGN0eC5rZXlOZWlnaGJvdXIgPT09ICdzdHJpbmcnKTtcbiAgcmV0dXJuIGN0eDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gKHRyZWUsIG9wdHMgPSB7fSkgPT4ge1xuICBjb25zdCBjdHggPSBidWlsZEN0eChvcHRzKTtcbiAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgY29uc3QgbmVpZ2hib3VycyA9IFtdO1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModHJlZSkuc29ydCgpLm1hcChrID0+IFtrXSk7XG4gIGNvbnN0IGxvb2t1cCA9IFt0cmVlXTtcbiAgd2hpbGUgKGtleXMubGVuZ3RoICE9PSAwKSB7XG4gICAgY29uc3Qga2V5ID0ga2V5cy5zaGlmdCgpO1xuICAgIGNvbnN0IG5vZGUgPSBsb29rdXBba2V5Lmxlbmd0aCAtIDFdW2tleVtrZXkubGVuZ3RoIC0gMV1dO1xuICAgIGxvb2t1cFtrZXkubGVuZ3RoXSA9IG5vZGU7XG5cbiAgICBuZWlnaGJvdXJzW2tleS5sZW5ndGggLSAxXSA9IGtleXMubGVuZ3RoICE9PSAwICYmIGtleXNbMF0ubGVuZ3RoID09PSBrZXkubGVuZ3RoO1xuICAgIHJlc3VsdC5wdXNoKFtcbiAgICAgIG5laWdoYm91cnMuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpLm1hcChuID0+IChuID8gY3R4LnNwYWNlck5laWdoYm91ciA6IGN0eC5zcGFjZXJOb05laWdoYm91cikpLmpvaW4oJycpLFxuICAgICAgbmVpZ2hib3Vyc1trZXkubGVuZ3RoIC0gMV0gPyBjdHgua2V5TmVpZ2hib3VyIDogY3R4LmtleU5vTmVpZ2hib3VyLFxuICAgICAga2V5W2tleS5sZW5ndGggLSAxXSxcbiAgICAgIFsnYm9vbGVhbicsICdzdHJpbmcnLCAnbnVtYmVyJ10uaW5jbHVkZXModHlwZW9mIG5vZGUpID8gYDogJHtub2RlfWAgOiAnJ1xuICAgIF0uam9pbignJykpO1xuXG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBPYmplY3QgJiYgIUFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgIGtleXMudW5zaGlmdCguLi5PYmplY3Qua2V5cyhub2RlKS5zb3J0KCkubWFwKGsgPT4ga2V5LmNvbmNhdChrKSkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjdHguam9pbmVkID09PSB0cnVlID8gcmVzdWx0LmpvaW4oJ1xcbicpIDogcmVzdWx0O1xufTtcbiJdfQ== |
{ | ||
"name": "object-treeify", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "Stringify Object as tree structure", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -14,2 +14,20 @@ # object-treeify | ||
``` | ||
{ | ||
oranges: { | ||
'mandarin': { ├─ oranges | ||
clementine: null, │ └─ mandarin | ||
tangerine: 'so cheap and juicy!' -=> │ ├─ clementine | ||
} │ └─ tangerine: so cheap and juicy! | ||
}, └─ apples | ||
apples: { ├─ gala | ||
'gala': null, └─ pink lady | ||
'pink lady': null | ||
} | ||
} | ||
``` | ||
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. | ||
## Getting Started | ||
@@ -19,4 +37,68 @@ | ||
## Functions | ||
<!-- eslint-disable import/no-unresolved --> | ||
```js | ||
const treeify = require('object-treeify'); | ||
... | ||
treeify({ | ||
oranges: { | ||
mandarin: { | ||
clementine: null, | ||
tangerine: 'so cheap and juicy!' | ||
} | ||
}, | ||
apples: { | ||
gala: null, | ||
'pink lady': null | ||
} | ||
}, {/* options */}); | ||
// => | ||
// ├─ apples, | ||
// | ├─ gala, | ||
// | └─ pink lady, | ||
// └─ oranges, | ||
// └─ mandarin, | ||
// ├─ clementine, | ||
// └─ tangerine: so cheap and juicy! | ||
``` | ||
## Options | ||
### joined | ||
Type: `boolean`<br> | ||
Default: `true` | ||
By default a single string is returned. Can be set to `false` to instead return an array containing lines. | ||
#### spacerNoNeighbour | ||
Type: `string`<br> | ||
Default: ` ` | ||
Prefix for depth level when no further neighbour is present. | ||
#### spacerNeighbour | ||
Type: `string`<br> | ||
Default: `| ` | ||
Prefix for depth level when a further neighbour is present. | ||
#### keyNoNeighbour | ||
Type: `string`<br> | ||
Default: `└─ ` | ||
Prefix for key when no further neighbour is present. | ||
#### keyNeighbour | ||
Type: `string`<br> | ||
Default: `├─ ` | ||
Prefix for key when a further neighbour is present. | ||
## 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
13805
35
103