@slate-sheikah/bridge
Version:
slate-sheikah bridge: Bridge components for slate-sheikah. Slate + Automerge + Sockets
44 lines (32 loc) • 3.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.toSlateOp = void 0;
var _insert = _interopRequireDefault(require("./insert"));
var _remove = _interopRequireDefault(require("./remove"));
var _set = _interopRequireDefault(require("./set"));
var _create = _interopRequireDefault(require("./create"));
var _utils = require("../utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const byAction = {
create: _create.default,
remove: _remove.default,
set: _set.default,
insert: _insert.default
};
const rootKey = '00000000-0000-0000-0000-000000000000';
const toSlateOp = (ops, doc) => {
const tempDoc = (0, _utils.toJS)(doc);
const iterate = (acc, op) => {
const action = byAction[op.action];
const result = action ? action(op, acc, doc, tempDoc) : acc;
return result;
};
const [tempTree, defer] = ops.reduce(iterate, [{
[rootKey]: {}
}, []]);
return defer.flatMap(op => op).filter(op => op);
};
exports.toSlateOp = toSlateOp;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L2luZGV4LnRzIl0sIm5hbWVzIjpbImJ5QWN0aW9uIiwiY3JlYXRlIiwib3BDcmVhdGUiLCJyZW1vdmUiLCJvcFJlbW92ZSIsInNldCIsIm9wU2V0IiwiaW5zZXJ0Iiwib3BJbnNlcnQiLCJyb290S2V5IiwidG9TbGF0ZU9wIiwib3BzIiwiZG9jIiwidGVtcERvYyIsIml0ZXJhdGUiLCJhY2MiLCJvcCIsImFjdGlvbiIsInJlc3VsdCIsInRlbXBUcmVlIiwiZGVmZXIiLCJyZWR1Y2UiLCJmbGF0TWFwIiwiZmlsdGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7QUFJQSxNQUFNQSxRQUFRLEdBQUc7QUFDZkMsRUFBQUEsTUFBTSxFQUFFQyxlQURPO0FBRWZDLEVBQUFBLE1BQU0sRUFBRUMsZUFGTztBQUdmQyxFQUFBQSxHQUFHLEVBQUVDLFlBSFU7QUFJZkMsRUFBQUEsTUFBTSxFQUFFQztBQUpPLENBQWpCO0FBT0EsTUFBTUMsT0FBTyxHQUFHLHNDQUFoQjs7QUFFQSxNQUFNQyxTQUFTLEdBQUcsQ0FBQ0MsR0FBRCxFQUF3QkMsR0FBeEIsS0FBeUM7QUFDekQsUUFBTUMsT0FBTyxHQUFHLGlCQUFLRCxHQUFMLENBQWhCOztBQUNBLFFBQU1FLE9BQU8sR0FBRyxDQUFDQyxHQUFELEVBQW9CQyxFQUFwQixLQUFnRDtBQUM5RCxVQUFNQyxNQUFNLEdBQUdqQixRQUFRLENBQUNnQixFQUFFLENBQUNDLE1BQUosQ0FBdkI7QUFFQSxVQUFNQyxNQUFNLEdBQUdELE1BQU0sR0FBR0EsTUFBTSxDQUFDRCxFQUFELEVBQUtELEdBQUwsRUFBVUgsR0FBVixFQUFlQyxPQUFmLENBQVQsR0FBbUNFLEdBQXhEO0FBRUEsV0FBT0csTUFBUDtBQUNELEdBTkQ7O0FBUUEsUUFBTSxDQUFDQyxRQUFELEVBQVdDLEtBQVgsSUFBb0JULEdBQUcsQ0FBQ1UsTUFBSixDQUFXUCxPQUFYLEVBQW9CLENBQzVDO0FBQ0UsS0FBQ0wsT0FBRCxHQUFXO0FBRGIsR0FENEMsRUFJNUMsRUFKNEMsQ0FBcEIsQ0FBMUI7QUFPQSxTQUFPVyxLQUFLLENBQUNFLE9BQU4sQ0FBY04sRUFBRSxJQUFJQSxFQUFwQixFQUF3Qk8sTUFBeEIsQ0FBK0JQLEVBQUUsSUFBSUEsRUFBckMsQ0FBUDtBQUNELENBbEJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQXV0b21lcmdlIGZyb20gJ2F1dG9tZXJnZSdcblxuaW1wb3J0IG9wSW5zZXJ0IGZyb20gJy4vaW5zZXJ0J1xuaW1wb3J0IG9wUmVtb3ZlIGZyb20gJy4vcmVtb3ZlJ1xuaW1wb3J0IG9wU2V0IGZyb20gJy4vc2V0J1xuaW1wb3J0IG9wQ3JlYXRlIGZyb20gJy4vY3JlYXRlJ1xuXG5pbXBvcnQgeyB0b0pTIH0gZnJvbSAnLi4vdXRpbHMnXG5cbmltcG9ydCB7IFN5bmNEb2MgfSBmcm9tICcuLi9tb2RlbCdcblxuY29uc3QgYnlBY3Rpb24gPSB7XG4gIGNyZWF0ZTogb3BDcmVhdGUsXG4gIHJlbW92ZTogb3BSZW1vdmUsXG4gIHNldDogb3BTZXQsXG4gIGluc2VydDogb3BJbnNlcnRcbn1cblxuY29uc3Qgcm9vdEtleSA9ICcwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAnXG5cbmNvbnN0IHRvU2xhdGVPcCA9IChvcHM6IEF1dG9tZXJnZS5EaWZmW10sIGRvYzogU3luY0RvYykgPT4ge1xuICBjb25zdCB0ZW1wRG9jID0gdG9KUyhkb2MpXG4gIGNvbnN0IGl0ZXJhdGUgPSAoYWNjOiBbYW55LCBhbnlbXV0sIG9wOiBBdXRvbWVyZ2UuRGlmZik6IGFueSA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gYnlBY3Rpb25bb3AuYWN0aW9uXVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYWN0aW9uID8gYWN0aW9uKG9wLCBhY2MsIGRvYywgdGVtcERvYykgOiBhY2NcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGNvbnN0IFt0ZW1wVHJlZSwgZGVmZXJdID0gb3BzLnJlZHVjZShpdGVyYXRlLCBbXG4gICAge1xuICAgICAgW3Jvb3RLZXldOiB7fVxuICAgIH0sXG4gICAgW11cbiAgXSlcblxuICByZXR1cm4gZGVmZXIuZmxhdE1hcChvcCA9PiBvcCkuZmlsdGVyKG9wID0+IG9wKVxufVxuXG5leHBvcnQgeyB0b1NsYXRlT3AgfVxuIl19