UNPKG

@slate-sheikah/bridge

Version:

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

76 lines (63 loc) 5.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.setDataOp = void 0; var _slate = require("slate"); var _utils = require("../utils"); const setDataOp = (_ref, doc) => { let { key = '', obj, path, value } = _ref; return (map, tmpDoc) => { const slatePath = (0, _utils.toSlatePath)(path); const node = _slate.Node.get(tmpDoc, slatePath); const oldValue = node[key]; const newValue = (0, _utils.toJS)((map === null || map === void 0 ? void 0 : map[value]) || value); map[obj] = node; // node from tmpDoc is the newest value at the moment, keep map sync if (newValue == null) { // slate does this check. delete node[key]; } else { node[key] = newValue; } return { type: 'set_node', path: slatePath, properties: { [key]: (0, _utils.toJS)(oldValue) }, newProperties: { [key]: (0, _utils.toJS)(newValue) } }; }; }; exports.setDataOp = setDataOp; const opSet = (op, _ref2, doc, tmpDoc) => { let [map, ops] = _ref2; const { link, value, path, obj, key } = op; try { if (path && path.length && path[0] === 'children') { ops.push(setDataOp(op, doc)(map, tmpDoc)); } else if (map[obj]) { map[obj][key] = link ? map[value] : value; } return [map, ops]; } catch (e) { console.error(e, op, (0, _utils.toJS)(map)); return [map, ops]; } }; var _default = opSet; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L3NldC50cyJdLCJuYW1lcyI6WyJzZXREYXRhT3AiLCJkb2MiLCJrZXkiLCJvYmoiLCJwYXRoIiwidmFsdWUiLCJtYXAiLCJ0bXBEb2MiLCJzbGF0ZVBhdGgiLCJub2RlIiwiTm9kZSIsImdldCIsIm9sZFZhbHVlIiwibmV3VmFsdWUiLCJ0eXBlIiwicHJvcGVydGllcyIsIm5ld1Byb3BlcnRpZXMiLCJvcFNldCIsIm9wIiwib3BzIiwibGluayIsImxlbmd0aCIsInB1c2giLCJlIiwiY29uc29sZSIsImVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBRUE7O0FBRU8sTUFBTUEsU0FBUyxHQUFHLE9BRXZCQyxHQUZ1QjtBQUFBLE1BQ3ZCO0FBQUVDLElBQUFBLEdBQUcsR0FBRyxFQUFSO0FBQVlDLElBQUFBLEdBQVo7QUFBaUJDLElBQUFBLElBQWpCO0FBQXVCQyxJQUFBQTtBQUF2QixHQUR1QjtBQUFBLFNBR3BCLENBQUNDLEdBQUQsRUFBV0MsTUFBWCxLQUErQjtBQUNsQyxVQUFNQyxTQUFTLEdBQUcsd0JBQVlKLElBQVosQ0FBbEI7O0FBQ0EsVUFBTUssSUFBSSxHQUFHQyxZQUFLQyxHQUFMLENBQVNKLE1BQVQsRUFBaUJDLFNBQWpCLENBQWI7O0FBQ0EsVUFBTUksUUFBUSxHQUFHSCxJQUFJLENBQUNQLEdBQUQsQ0FBckI7QUFDQSxVQUFNVyxRQUFRLEdBQUcsaUJBQUssQ0FBQVAsR0FBRyxTQUFILElBQUFBLEdBQUcsV0FBSCxZQUFBQSxHQUFHLENBQUdELEtBQUgsQ0FBSCxLQUFnQkEsS0FBckIsQ0FBakI7QUFDQUMsSUFBQUEsR0FBRyxDQUFDSCxHQUFELENBQUgsR0FBV00sSUFBWCxDQUxrQyxDQUtsQjs7QUFFaEIsUUFBSUksUUFBUSxJQUFJLElBQWhCLEVBQXNCO0FBQ3BCO0FBQ0EsYUFBT0osSUFBSSxDQUFDUCxHQUFELENBQVg7QUFDRCxLQUhELE1BR087QUFDTE8sTUFBQUEsSUFBSSxDQUFDUCxHQUFELENBQUosR0FBWVcsUUFBWjtBQUNEOztBQUNELFdBQU87QUFDTEMsTUFBQUEsSUFBSSxFQUFFLFVBREQ7QUFFTFYsTUFBQUEsSUFBSSxFQUFFSSxTQUZEO0FBR0xPLE1BQUFBLFVBQVUsRUFBRTtBQUNWLFNBQUNiLEdBQUQsR0FBTyxpQkFBS1UsUUFBTDtBQURHLE9BSFA7QUFNTEksTUFBQUEsYUFBYSxFQUFFO0FBQ2IsU0FBQ2QsR0FBRCxHQUFPLGlCQUFLVyxRQUFMO0FBRE07QUFOVixLQUFQO0FBVUQsR0ExQndCO0FBQUEsQ0FBbEI7Ozs7QUE0QlAsTUFBTUksS0FBSyxHQUFHLENBQUNDLEVBQUQsU0FBc0NqQixHQUF0QyxFQUFnRE0sTUFBaEQsS0FBZ0U7QUFBQSxNQUEzQyxDQUFDRCxHQUFELEVBQU1hLEdBQU4sQ0FBMkM7QUFDNUUsUUFBTTtBQUFFQyxJQUFBQSxJQUFGO0FBQVFmLElBQUFBLEtBQVI7QUFBZUQsSUFBQUEsSUFBZjtBQUFxQkQsSUFBQUEsR0FBckI7QUFBMEJELElBQUFBO0FBQTFCLE1BQWtDZ0IsRUFBeEM7O0FBRUEsTUFBSTtBQUNGLFFBQUlkLElBQUksSUFBSUEsSUFBSSxDQUFDaUIsTUFBYixJQUF1QmpCLElBQUksQ0FBQyxDQUFELENBQUosS0FBWSxVQUF2QyxFQUFtRDtBQUNqRGUsTUFBQUEsR0FBRyxDQUFDRyxJQUFKLENBQVN0QixTQUFTLENBQUNrQixFQUFELEVBQUtqQixHQUFMLENBQVQsQ0FBbUJLLEdBQW5CLEVBQXdCQyxNQUF4QixDQUFUO0FBQ0QsS0FGRCxNQUVPLElBQUlELEdBQUcsQ0FBQ0gsR0FBRCxDQUFQLEVBQWM7QUFDbkJHLE1BQUFBLEdBQUcsQ0FBQ0gsR0FBRCxDQUFILENBQVNELEdBQVQsSUFBdUJrQixJQUFJLEdBQUdkLEdBQUcsQ0FBQ0QsS0FBRCxDQUFOLEdBQWdCQSxLQUEzQztBQUNEOztBQUVELFdBQU8sQ0FBQ0MsR0FBRCxFQUFNYSxHQUFOLENBQVA7QUFDRCxHQVJELENBUUUsT0FBT0ksQ0FBUCxFQUFVO0FBQ1ZDLElBQUFBLE9BQU8sQ0FBQ0MsS0FBUixDQUFjRixDQUFkLEVBQWlCTCxFQUFqQixFQUFxQixpQkFBS1osR0FBTCxDQUFyQjtBQUVBLFdBQU8sQ0FBQ0EsR0FBRCxFQUFNYSxHQUFOLENBQVA7QUFDRDtBQUNGLENBaEJEOztlQWtCZUYsSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEF1dG9tZXJnZSBmcm9tICdhdXRvbWVyZ2UnXG5pbXBvcnQgeyBFbGVtZW50LCBOb2RlIH0gZnJvbSAnc2xhdGUnXG5cbmltcG9ydCB7IHRvU2xhdGVQYXRoLCB0b0pTIH0gZnJvbSAnLi4vdXRpbHMnXG5cbmV4cG9ydCBjb25zdCBzZXREYXRhT3AgPSAoXG4gIHsga2V5ID0gJycsIG9iaiwgcGF0aCwgdmFsdWUgfTogQXV0b21lcmdlLkRpZmYsXG4gIGRvYzogYW55XG4pID0+IChtYXA6IGFueSwgdG1wRG9jOiBFbGVtZW50KSA9PiB7XG4gIGNvbnN0IHNsYXRlUGF0aCA9IHRvU2xhdGVQYXRoKHBhdGgpXG4gIGNvbnN0IG5vZGUgPSBOb2RlLmdldCh0bXBEb2MsIHNsYXRlUGF0aClcbiAgY29uc3Qgb2xkVmFsdWUgPSBub2RlW2tleV1cbiAgY29uc3QgbmV3VmFsdWUgPSB0b0pTKG1hcD8uW3ZhbHVlXSB8fCB2YWx1ZSlcbiAgbWFwW29ial0gPSBub2RlIC8vIG5vZGUgZnJvbSB0bXBEb2MgaXMgdGhlIG5ld2VzdCB2YWx1ZSBhdCB0aGUgbW9tZW50LCBrZWVwIG1hcCBzeW5jXG5cbiAgaWYgKG5ld1ZhbHVlID09IG51bGwpIHtcbiAgICAvLyBzbGF0ZSBkb2VzIHRoaXMgY2hlY2suXG4gICAgZGVsZXRlIG5vZGVba2V5XVxuICB9IGVsc2Uge1xuICAgIG5vZGVba2V5XSA9IG5ld1ZhbHVlXG4gIH1cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnc2V0X25vZGUnLFxuICAgIHBhdGg6IHNsYXRlUGF0aCxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBba2V5XTogdG9KUyhvbGRWYWx1ZSlcbiAgICB9LFxuICAgIG5ld1Byb3BlcnRpZXM6IHtcbiAgICAgIFtrZXldOiB0b0pTKG5ld1ZhbHVlKVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBvcFNldCA9IChvcDogQXV0b21lcmdlLkRpZmYsIFttYXAsIG9wc106IGFueSwgZG9jOiBhbnksIHRtcERvYzogYW55KSA9PiB7XG4gIGNvbnN0IHsgbGluaywgdmFsdWUsIHBhdGgsIG9iaiwga2V5IH0gPSBvcFxuXG4gIHRyeSB7XG4gICAgaWYgKHBhdGggJiYgcGF0aC5sZW5ndGggJiYgcGF0aFswXSA9PT0gJ2NoaWxkcmVuJykge1xuICAgICAgb3BzLnB1c2goc2V0RGF0YU9wKG9wLCBkb2MpKG1hcCwgdG1wRG9jKSlcbiAgICB9IGVsc2UgaWYgKG1hcFtvYmpdKSB7XG4gICAgICBtYXBbb2JqXVtrZXkgYXMgYW55XSA9IGxpbmsgPyBtYXBbdmFsdWVdIDogdmFsdWVcbiAgICB9XG5cbiAgICByZXR1cm4gW21hcCwgb3BzXVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcihlLCBvcCwgdG9KUyhtYXApKVxuXG4gICAgcmV0dXJuIFttYXAsIG9wc11cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBvcFNldFxuIl19