UNPKG

@slate-sheikah/bridge

Version:

slate-sheikah bridge: Bridge components for slate-sheikah. Slate + Automerge + Sockets

49 lines (34 loc) 5.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getChildren = exports.getParent = exports.getParentPath = exports.getTarget = exports.isTree = void 0; const isTree = node => Boolean(node === null || node === void 0 ? void 0 : node.children); exports.isTree = isTree; const getTarget = (doc, path) => { const iterate = (current, idx) => { if (!(isTree(current) || current[idx])) { throw new TypeError("path ".concat(path.toString(), " does not match tree ").concat(JSON.stringify(current))); } return current[idx] || (current === null || current === void 0 ? void 0 : current.children[idx]); }; return path.reduce(iterate, doc); }; exports.getTarget = getTarget; const getParentPath = function getParentPath(path) { let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; if (level > path.length) { throw new TypeError('requested ancestor is higher than root'); } return [path[path.length - level], path.slice(0, path.length - level)]; }; exports.getParentPath = getParentPath; const getParent = function getParent(doc, path) { let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; const [idx, parentPath] = getParentPath(path, level); return [getTarget(doc, parentPath), idx]; }; exports.getParent = getParent; const getChildren = node => node.children || node; exports.getChildren = getChildren; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRoL2luZGV4LnRzIl0sIm5hbWVzIjpbImlzVHJlZSIsIm5vZGUiLCJCb29sZWFuIiwiY2hpbGRyZW4iLCJnZXRUYXJnZXQiLCJkb2MiLCJwYXRoIiwiaXRlcmF0ZSIsImN1cnJlbnQiLCJpZHgiLCJUeXBlRXJyb3IiLCJ0b1N0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZWR1Y2UiLCJnZXRQYXJlbnRQYXRoIiwibGV2ZWwiLCJsZW5ndGgiLCJzbGljZSIsImdldFBhcmVudCIsInBhcmVudFBhdGgiLCJnZXRDaGlsZHJlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlPLE1BQU1BLE1BQU0sR0FBSUMsSUFBRCxJQUErQkMsT0FBTyxDQUFDRCxJQUFELGFBQUNBLElBQUQsdUJBQUNBLElBQUksQ0FBRUUsUUFBUCxDQUFyRDs7OztBQUVBLE1BQU1DLFNBQVMsR0FBRyxDQUFDQyxHQUFELEVBQTJCQyxJQUEzQixLQUEwQztBQUNqRSxRQUFNQyxPQUFPLEdBQUcsQ0FBQ0MsT0FBRCxFQUFlQyxHQUFmLEtBQStCO0FBQzdDLFFBQUksRUFBRVQsTUFBTSxDQUFDUSxPQUFELENBQU4sSUFBbUJBLE9BQU8sQ0FBQ0MsR0FBRCxDQUE1QixDQUFKLEVBQXdDO0FBQ3RDLFlBQU0sSUFBSUMsU0FBSixnQkFDSUosSUFBSSxDQUFDSyxRQUFMLEVBREosa0NBQzJDQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUwsT0FBZixDQUQzQyxFQUFOO0FBR0Q7O0FBRUQsV0FBT0EsT0FBTyxDQUFDQyxHQUFELENBQVAsS0FBZ0JELE9BQWhCLGFBQWdCQSxPQUFoQix1QkFBZ0JBLE9BQU8sQ0FBRUwsUUFBVCxDQUFrQk0sR0FBbEIsQ0FBaEIsQ0FBUDtBQUNELEdBUkQ7O0FBVUEsU0FBT0gsSUFBSSxDQUFDUSxNQUFMLENBQVlQLE9BQVosRUFBcUJGLEdBQXJCLENBQVA7QUFDRCxDQVpNOzs7O0FBY0EsTUFBTVUsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUMzQlQsSUFEMkIsRUFHUjtBQUFBLE1BRG5CVSxLQUNtQix1RUFESCxDQUNHOztBQUNuQixNQUFJQSxLQUFLLEdBQUdWLElBQUksQ0FBQ1csTUFBakIsRUFBeUI7QUFDdkIsVUFBTSxJQUFJUCxTQUFKLENBQWMsd0NBQWQsQ0FBTjtBQUNEOztBQUVELFNBQU8sQ0FBQ0osSUFBSSxDQUFDQSxJQUFJLENBQUNXLE1BQUwsR0FBY0QsS0FBZixDQUFMLEVBQTRCVixJQUFJLENBQUNZLEtBQUwsQ0FBVyxDQUFYLEVBQWNaLElBQUksQ0FBQ1csTUFBTCxHQUFjRCxLQUE1QixDQUE1QixDQUFQO0FBQ0QsQ0FUTTs7OztBQVdBLE1BQU1HLFNBQVMsR0FBRyxTQUFaQSxTQUFZLENBQ3ZCZCxHQUR1QixFQUV2QkMsSUFGdUIsRUFJTDtBQUFBLE1BRGxCVSxLQUNrQix1RUFEVixDQUNVO0FBQ2xCLFFBQU0sQ0FBQ1AsR0FBRCxFQUFNVyxVQUFOLElBQW9CTCxhQUFhLENBQUNULElBQUQsRUFBT1UsS0FBUCxDQUF2QztBQUVBLFNBQU8sQ0FBQ1osU0FBUyxDQUFDQyxHQUFELEVBQU1lLFVBQU4sQ0FBVixFQUE2QlgsR0FBN0IsQ0FBUDtBQUNELENBUk07Ozs7QUFVQSxNQUFNWSxXQUFXLEdBQUlwQixJQUFELElBQWVBLElBQUksQ0FBQ0UsUUFBTCxJQUFpQkYsSUFBcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50LCBQYXRoLCBCYXNlRWRpdG9yIH0gZnJvbSAnc2xhdGUnXG5cbmltcG9ydCB7IFN5bmNWYWx1ZSB9IGZyb20gJy4uL21vZGVsJ1xuXG5leHBvcnQgY29uc3QgaXNUcmVlID0gKG5vZGU6IEJhc2VFZGl0b3IpOiBib29sZWFuID0+IEJvb2xlYW4obm9kZT8uY2hpbGRyZW4pXG5cbmV4cG9ydCBjb25zdCBnZXRUYXJnZXQgPSAoZG9jOiBTeW5jVmFsdWUgfCBFbGVtZW50LCBwYXRoOiBQYXRoKSA9PiB7XG4gIGNvbnN0IGl0ZXJhdGUgPSAoY3VycmVudDogYW55LCBpZHg6IG51bWJlcikgPT4ge1xuICAgIGlmICghKGlzVHJlZShjdXJyZW50KSB8fCBjdXJyZW50W2lkeF0pKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICBgcGF0aCAke3BhdGgudG9TdHJpbmcoKX0gZG9lcyBub3QgbWF0Y2ggdHJlZSAke0pTT04uc3RyaW5naWZ5KGN1cnJlbnQpfWBcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFtpZHhdIHx8IGN1cnJlbnQ/LmNoaWxkcmVuW2lkeF1cbiAgfVxuXG4gIHJldHVybiBwYXRoLnJlZHVjZShpdGVyYXRlLCBkb2MpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRQYXJlbnRQYXRoID0gKFxuICBwYXRoOiBQYXRoLFxuICBsZXZlbDogbnVtYmVyID0gMVxuKTogW251bWJlciwgUGF0aF0gPT4ge1xuICBpZiAobGV2ZWwgPiBwYXRoLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3JlcXVlc3RlZCBhbmNlc3RvciBpcyBoaWdoZXIgdGhhbiByb290JylcbiAgfVxuXG4gIHJldHVybiBbcGF0aFtwYXRoLmxlbmd0aCAtIGxldmVsXSwgcGF0aC5zbGljZSgwLCBwYXRoLmxlbmd0aCAtIGxldmVsKV1cbn1cblxuZXhwb3J0IGNvbnN0IGdldFBhcmVudCA9IChcbiAgZG9jOiBTeW5jVmFsdWUgfCBFbGVtZW50LFxuICBwYXRoOiBQYXRoLFxuICBsZXZlbCA9IDFcbik6IFthbnksIG51bWJlcl0gPT4ge1xuICBjb25zdCBbaWR4LCBwYXJlbnRQYXRoXSA9IGdldFBhcmVudFBhdGgocGF0aCwgbGV2ZWwpXG5cbiAgcmV0dXJuIFtnZXRUYXJnZXQoZG9jLCBwYXJlbnRQYXRoKSwgaWR4XVxufVxuXG5leHBvcnQgY29uc3QgZ2V0Q2hpbGRyZW4gPSAobm9kZTogYW55KSA9PiBub2RlLmNoaWxkcmVuIHx8IG5vZGVcbiJdfQ==