UNPKG

amos-tool

Version:

amos ui tool

53 lines (48 loc) 2.29 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"), _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")), memorize = require("./memo"); function pathToTree(e) { for (var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, t = r.pathKey, o = void 0 === t ? "path" : t, i = r.childrenKey, n = void 0 === i ? "children" : i, l = r.processor, a = [], u = 0; u < e.length; u++) for (var f = e[u].split("/"), h = a, d = 0; d < f.length; d++) { var p = f[d]; if ("" !== p) { for (var s = h, v = 0; v < h.length; v++) if (h[v][o] === p) { h = h[v][n]; break; } if (s === h) { var y, c = (y = { key: d === f.length - 1 ? e[u] : f.slice(0, d + 1).join("/") + "/" }, (0, _defineProperty2.default)(y, o, p), (0, _defineProperty2.default)(y, n, []), y); l && l(c, p), d === f.length - 1 && delete c[n], h.push(c), h = c[n]; } } } return a; } function pathToRoutes(e) { for (var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, t = r.pathKey, o = void 0 === t ? "path" : t, i = r.childrenKey, n = void 0 === i ? "children" : i, l = r.processor, a = [], u = 0; u < e.length; u++) for (var f = e[u].split("/"), h = a, d = 0; d < f.length; d++) { var p = f[d]; if ("" === p) break; var s = h, v = void 0; for (v = 0; v < h.length; v++) if (h[v][o] === p) { h = h[v][n]; break; } if (s === h) { var y, c = (y = { key: d === f.length - 1 ? e[u] : f.slice(0, d + 1).join("/") + "/" }, (0, _defineProperty2.default)(y, o, p), (0, _defineProperty2.default)(y, n, []), y); l && l(c, p), h[v] = c, h = c[n]; } else delete h[n]; } return a; } function beautifyRoutes(e) { var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, t = r.childrenKey, o = void 0 === t ? "children" : t; e.forEach((function(e) { o in e && e[o] && (e[o].length > 0 ? beautifyRoutes(e[o], r) : delete e[o]); })); } module.exports = pathToTree, module.exports.pathToRoutes = pathToRoutes, module.exports.beautifyRoutes = beautifyRoutes, module.exports.memoPathToTree = memorize(pathToTree);