UNPKG

@slate-sheikah/bridge

Version:

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

143 lines (137 loc) 17.9 kB
"use strict"; var Automerge = _interopRequireWildcard(require("automerge")); var _utils = require("../utils"); var _ = require("./"); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } const transforms = [['insert_text', [(0, _utils.createNode)('paragraph', '')], [{ marks: [], offset: 0, path: [0, 0], text: 'Hello ', type: 'insert_text' }, { marks: [], offset: 6, path: [0, 0], text: 'collaborator', type: 'insert_text' }, { marks: [], offset: 18, path: [0, 0], text: '!', type: 'insert_text' }], [(0, _utils.createNode)('paragraph', 'Hello collaborator!')]], ['remove_text', [(0, _utils.createNode)('paragraph', 'Hello collaborator!')], [{ offset: 11, path: [0, 0], text: 'borator', type: 'remove_text' }, { offset: 5, path: [0, 0], text: ' colla', type: 'remove_text' }], [(0, _utils.createNode)('paragraph', 'Hello!')]], ['insert_node', null, [{ type: 'insert_node', path: [1], node: { type: 'paragraph', children: [] } }, { type: 'insert_node', path: [1, 0], node: { text: 'Hello collaborator!' } }], [(0, _utils.createNode)(), (0, _utils.createNode)('paragraph', 'Hello collaborator!')]], ['merge_node', [(0, _utils.createNode)('paragraph', 'Hello '), (0, _utils.createNode)('paragraph', 'collaborator!')], [{ path: [1], position: 1, properties: { type: 'paragraph' }, target: null, type: 'merge_node' }, { path: [0, 1], position: 6, properties: {}, target: null, type: 'merge_node' }], [(0, _utils.createNode)('paragraph', 'Hello collaborator!')]], ['move_node', [(0, _utils.createNode)('paragraph', 'first'), (0, _utils.createNode)('paragraph', 'second'), (0, _utils.createNode)('paragraph', 'third'), (0, _utils.createNode)('paragraph', 'fourth')], [{ newPath: [0], path: [1], type: 'move_node' }, { newPath: [3, 0], path: [2, 0], type: 'move_node' }], [(0, _utils.createNode)('paragraph', 'second'), (0, _utils.createNode)('paragraph', 'first'), { type: 'paragraph', children: [] }, { type: 'paragraph', children: [(0, _utils.createText)('third'), (0, _utils.createText)('fourth')] }]], ['remove_node', [(0, _utils.createNode)('paragraph', 'first'), (0, _utils.createNode)('paragraph', 'second'), (0, _utils.createNode)('paragraph', 'third')], [{ path: [1, 0], type: 'remove_node' }, { path: [0], type: 'remove_node' }], [{ type: 'paragraph', children: [] }, (0, _utils.createNode)('paragraph', 'third')]], ['set_node', [(0, _utils.createNode)('paragraph', 'first', { test: '1234' }), (0, _utils.createNode)('paragraph', 'second')], [{ path: [0], type: 'set_node', properties: { test: '1234' }, newProperties: { test: '4567' } }, { path: [1, 0], type: 'set_node', newProperties: { data: '4567' } }], [(0, _utils.createNode)('paragraph', 'first', { test: '4567' }), { type: 'paragraph', children: [{ data: '4567', text: 'second' }] }]], ['split_node', [(0, _utils.createNode)('paragraph', 'Hello collaborator!')], [{ path: [0, 0], position: 6, target: null, type: 'split_node' }, { path: [0], position: 1, properties: { type: 'paragraph' }, target: 6, type: 'split_node' }], [(0, _utils.createNode)('paragraph', 'Hello '), (0, _utils.createNode)('paragraph', 'collaborator!')]]]; describe('apply slate operations to Automerge document', () => { transforms.forEach((_ref) => { let [op, input, operations, output] = _ref; it("apply ".concat(op, " operations"), () => { const doc = (0, _utils.createDoc)(input); const updated = Automerge.change(doc, d => { (0, _.applySlateOps)(d.children, operations); }); const expected = (0, _utils.createDoc)(output); expect((0, _utils.toJS)(expected)).toStrictEqual((0, _utils.toJS)(updated)); }); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHBseS9hcHBseS5zcGVjLnRzIl0sIm5hbWVzIjpbInRyYW5zZm9ybXMiLCJtYXJrcyIsIm9mZnNldCIsInBhdGgiLCJ0ZXh0IiwidHlwZSIsIm5vZGUiLCJjaGlsZHJlbiIsInBvc2l0aW9uIiwicHJvcGVydGllcyIsInRhcmdldCIsIm5ld1BhdGgiLCJ0ZXN0IiwibmV3UHJvcGVydGllcyIsImRhdGEiLCJkZXNjcmliZSIsImZvckVhY2giLCJvcCIsImlucHV0Iiwib3BlcmF0aW9ucyIsIm91dHB1dCIsIml0IiwiZG9jIiwidXBkYXRlZCIsIkF1dG9tZXJnZSIsImNoYW5nZSIsImQiLCJleHBlY3RlZCIsImV4cGVjdCIsInRvU3RyaWN0RXF1YWwiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBRUE7O0FBRUE7Ozs7OztBQUVBLE1BQU1BLFVBQVUsR0FBRyxDQUNqQixDQUNFLGFBREYsRUFFRSxDQUFDLHVCQUFXLFdBQVgsRUFBd0IsRUFBeEIsQ0FBRCxDQUZGLEVBR0UsQ0FDRTtBQUNFQyxFQUFBQSxLQUFLLEVBQUUsRUFEVDtBQUVFQyxFQUFBQSxNQUFNLEVBQUUsQ0FGVjtBQUdFQyxFQUFBQSxJQUFJLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSixDQUhSO0FBSUVDLEVBQUFBLElBQUksRUFBRSxRQUpSO0FBS0VDLEVBQUFBLElBQUksRUFBRTtBQUxSLENBREYsRUFRRTtBQUNFSixFQUFBQSxLQUFLLEVBQUUsRUFEVDtBQUVFQyxFQUFBQSxNQUFNLEVBQUUsQ0FGVjtBQUdFQyxFQUFBQSxJQUFJLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSixDQUhSO0FBSUVDLEVBQUFBLElBQUksRUFBRSxjQUpSO0FBS0VDLEVBQUFBLElBQUksRUFBRTtBQUxSLENBUkYsRUFlRTtBQUNFSixFQUFBQSxLQUFLLEVBQUUsRUFEVDtBQUVFQyxFQUFBQSxNQUFNLEVBQUUsRUFGVjtBQUdFQyxFQUFBQSxJQUFJLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSixD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QixDQURGLEVBRUUsdUJBQVcsV0FBWCxFQUF3QixlQUF4QixDQUZGLENBcEJGLENBekxpQixDQUFuQjtBQW9OQVUsUUFBUSxDQUFDLDhDQUFELEVBQWlELE1BQU07QUFDN0RmLEVBQUFBLFVBQVUsQ0FBQ2dCLE9BQVgsQ0FBbUIsVUFBcUM7QUFBQSxRQUFwQyxDQUFDQyxFQUFELEVBQUtDLEtBQUwsRUFBWUMsVUFBWixFQUF3QkMsTUFBeEIsQ0FBb0M7QUFDdERDLElBQUFBLEVBQUUsaUJBQVVKLEVBQVYsa0JBQTJCLE1BQU07QUFDakMsWUFBTUssR0FBRyxHQUFHLHNCQUFVSixLQUFWLENBQVo7QUFFQSxZQUFNSyxPQUFPLEdBQUdDLFNBQVMsQ0FBQ0MsTUFBVixDQUFpQkgsR0FBakIsRUFBdUJJLENBQUQsSUFBWTtBQUNoRCw2QkFBY0EsQ0FBQyxDQUFDbkIsUUFBaEIsRUFBMEJZLFVBQTFCO0FBQ0QsT0FGZSxDQUFoQjtBQUlBLFlBQU1RLFFBQVEsR0FBRyxzQkFBVVAsTUFBVixDQUFqQjtBQUVBUSxNQUFBQSxNQUFNLENBQUMsaUJBQUtELFFBQUwsQ0FBRCxDQUFOLENBQXVCRSxhQUF2QixDQUFxQyxpQkFBS04sT0FBTCxDQUFyQztBQUNELEtBVkMsQ0FBRjtBQVdELEdBWkQ7QUFhRCxDQWRPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBBdXRvbWVyZ2UgZnJvbSAnYXV0b21lcmdlJ1xuXG5pbXBvcnQgeyBjcmVhdGVEb2MsIHRvSlMsIGNyZWF0ZU5vZGUsIGNyZWF0ZVRleHQgfSBmcm9tICcuLi91dGlscydcblxuaW1wb3J0IHsgYXBwbHlTbGF0ZU9wcyB9IGZyb20gJy4vJ1xuXG5jb25zdCB0cmFuc2Zvcm1zID0gW1xuICBbXG4gICAgJ2luc2VydF90ZXh0JyxcbiAgICBbY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJycpXSxcbiAgICBbXG4gICAgICB7XG4gICAgICAgIG1hcmtzOiBbXSxcbiAgICAgICAgb2Zmc2V0OiAwLFxuICAgICAgICBwYXRoOiBbMCwgMF0sXG4gICAgICAgIHRleHQ6ICdIZWxsbyAnLFxuICAgICAgICB0eXBlOiAnaW5zZXJ0X3RleHQnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBtYXJrczogW10sXG4gICAgICAgIG9mZnNldDogNixcbiAgICAgICAgcGF0aDogWzAsIDBdLFxuICAgICAgICB0ZXh0OiAnY29sbGFib3JhdG9yJyxcbiAgICAgICAgdHlwZTogJ2luc2VydF90ZXh0J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICBvZmZzZXQ6IDE4LFxuICAgICAgICBwYXRoOiBbMCwgMF0sXG4gICAgICAgIHRleHQ6ICchJyxcbiAgICAgICAgdHlwZTogJ2luc2VydF90ZXh0J1xuICAgICAgfVxuICAgIF0sXG4gICAgW2NyZWF0ZU5vZGUoJ3BhcmFncmFwaCcsICdIZWxsbyBjb2xsYWJvcmF0b3IhJyldXG4gIF0sXG4gIFtcbiAgICAncmVtb3ZlX3RleHQnLFxuICAgIFtjcmVhdGVOb2RlKCdwYXJhZ3JhcGgnLCAnSGVsbG8gY29sbGFib3JhdG9yIScpXSxcbiAgICBbXG4gICAgICB7XG4gICAgICAgIG9mZnNldDogMTEsXG4gICAgICAgIHBhdGg6IFswLCAwXSxcbiAgICAgICAgdGV4dDogJ2JvcmF0b3InLFxuICAgICAgICB0eXBlOiAncmVtb3ZlX3RleHQnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBvZmZzZXQ6IDUsXG4gICAgICAgIHBhdGg6IFswLCAwXSxcbiAgICAgICAgdGV4dDogJyBjb2xsYScsXG4gICAgICAgIHR5cGU6ICdyZW1vdmVfdGV4dCdcbiAgICAgIH1cbiAgICBdLFxuICAgIFtjcmVhdGVOb2RlKCdwYXJhZ3JhcGgnLCAnSGVsbG8hJyldXG4gIF0sXG4gIFtcbiAgICAnaW5zZXJ0X25vZGUnLFxuICAgIG51bGwsXG4gICAgW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnaW5zZXJ0X25vZGUnLFxuICAgICAgICBwYXRoOiBbMV0sXG4gICAgICAgIG5vZGU6IHsgdHlwZTogJ3BhcmFncmFwaCcsIGNoaWxkcmVuOiBbXSB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnaW5zZXJ0X25vZGUnLFxuICAgICAgICBwYXRoOiBbMSwgMF0sXG4gICAgICAgIG5vZGU6IHsgdGV4dDogJ0hlbGxvIGNvbGxhYm9yYXRvciEnIH1cbiAgICAgIH1cbiAgICBdLFxuICAgIFtjcmVhdGVOb2RlKCksIGNyZWF0ZU5vZGUoJ3BhcmFncmFwaCcsICdIZWxsbyBjb2xsYWJvcmF0b3IhJyldXG4gIF0sXG4gIFtcbiAgICAnbWVyZ2Vfbm9kZScsXG4gICAgW1xuICAgICAgY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJ0hlbGxvICcpLFxuICAgICAgY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJ2NvbGxhYm9yYXRvciEnKVxuICAgIF0sXG4gICAgW1xuICAgICAge1xuICAgICAgICBwYXRoOiBbMV0sXG4gICAgICAgIHBvc2l0aW9uOiAxLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7IHR5cGU6ICdwYXJhZ3JhcGgnIH0sXG4gICAgICAgIHRhcmdldDogbnVsbCxcbiAgICAgICAgdHlwZTogJ21lcmdlX25vZGUnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiBbMCwgMV0sXG4gICAgICAgIHBvc2l0aW9uOiA2LFxuICAgICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgICAgdGFyZ2V0OiBudWxsLFxuICAgICAgICB0eXBlOiAnbWVyZ2Vfbm9kZSdcbiAgICAgIH1cbiAgICBdLFxuICAgIFtjcmVhdGVOb2RlKCdwYXJhZ3JhcGgnLCAnSGVsbG8gY29sbGFib3JhdG9yIScpXVxuICBdLFxuICBbXG4gICAgJ21vdmVfbm9kZScsXG4gICAgW1xuICAgICAgY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJ2ZpcnN0JyksXG4gICAgICBjcmVhdGVOb2RlKCdwYXJhZ3JhcGgnLCAnc2Vjb25kJyksXG4gICAgICBjcmVhdGVOb2RlKCdwYXJhZ3JhcGgnLCAndGhpcmQnKSxcbiAgICAgIGNyZWF0ZU5vZGUoJ3BhcmFncmFwaCcsICdmb3VydGgnKVxuICAgIF0sXG4gICAgW1xuICAgICAge1xuICAgICAgICBuZXdQYXRoOiBbMF0sXG4gICAgICAgIHBhdGg6IFsxXSxcbiAgICAgICAgdHlwZTogJ21vdmVfbm9kZSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5ld1BhdGg6IFszLCAwXSxcbiAgICAgICAgcGF0aDogWzIsIDBdLFxuICAgICAgICB0eXBlOiAnbW92ZV9ub2RlJ1xuICAgICAgfVxuICAgIF0sXG4gICAgW1xuICAgICAgY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJ3NlY29uZCcpLFxuICAgICAgY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJ2ZpcnN0JyksXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBjaGlsZHJlbjogW11cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBjaGlsZHJlbjogW2NyZWF0ZVRleHQoJ3RoaXJkJyksIGNyZWF0ZVRleHQoJ2ZvdXJ0aCcpXVxuICAgICAgfVxuICAgIF1cbiAgXSxcbiAgW1xuICAgICdyZW1vdmVfbm9kZScsXG4gICAgW1xuICAgICAgY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJ2ZpcnN0JyksXG4gICAgICBjcmVhdGVOb2RlKCdwYXJhZ3JhcGgnLCAnc2Vjb25kJyksXG4gICAgICBjcmVhdGVOb2RlKCdwYXJhZ3JhcGgnLCAndGhpcmQnKVxuICAgIF0sXG4gICAgW1xuICAgICAge1xuICAgICAgICBwYXRoOiBbMSwgMF0sXG4gICAgICAgIHR5cGU6ICdyZW1vdmVfbm9kZSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IFswXSxcbiAgICAgICAgdHlwZTogJ3JlbW92ZV9ub2RlJ1xuICAgICAgfVxuICAgIF0sXG4gICAgW1xuICAgICAge1xuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgY2hpbGRyZW46IFtdXG4gICAgICB9LFxuICAgICAgY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJ3RoaXJkJylcbiAgICBdXG4gIF0sXG4gIFtcbiAgICAnc2V0X25vZGUnLFxuICAgIFtcbiAgICAgIGNyZWF0ZU5vZGUoJ3BhcmFncmFwaCcsICdmaXJzdCcsIHsgdGVzdDogJzEyMzQnIH0pLFxuICAgICAgY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJ3NlY29uZCcpXG4gICAgXSxcbiAgICBbXG4gICAgICB7XG4gICAgICAgIHBhdGg6IFswXSxcbiAgICAgICAgdHlwZTogJ3NldF9ub2RlJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHRlc3Q6ICcxMjM0J1xuICAgICAgICB9LFxuICAgICAgICBuZXdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdGVzdDogJzQ1NjcnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IFsxLCAwXSxcbiAgICAgICAgdHlwZTogJ3NldF9ub2RlJyxcbiAgICAgICAgbmV3UHJvcGVydGllczoge1xuICAgICAgICAgIGRhdGE6ICc0NTY3J1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXSxcbiAgICBbXG4gICAgICBjcmVhdGVOb2RlKCdwYXJhZ3JhcGgnLCAnZmlyc3QnLCB7IHRlc3Q6ICc0NTY3JyB9KSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YTogJzQ1NjcnLFxuICAgICAgICAgICAgdGV4dDogJ3NlY29uZCdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIF0sXG4gIFtcbiAgICAnc3BsaXRfbm9kZScsXG4gICAgW2NyZWF0ZU5vZGUoJ3BhcmFncmFwaCcsICdIZWxsbyBjb2xsYWJvcmF0b3IhJyldLFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogWzAsIDBdLFxuICAgICAgICBwb3NpdGlvbjogNixcbiAgICAgICAgdGFyZ2V0OiBudWxsLFxuICAgICAgICB0eXBlOiAnc3BsaXRfbm9kZSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IFswXSxcbiAgICAgICAgcG9zaXRpb246IDEsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICB0eXBlOiAncGFyYWdyYXBoJ1xuICAgICAgICB9LFxuICAgICAgICB0YXJnZXQ6IDYsXG4gICAgICAgIHR5cGU6ICdzcGxpdF9ub2RlJ1xuICAgICAgfVxuICAgIF0sXG4gICAgW1xuICAgICAgY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJ0hlbGxvICcpLFxuICAgICAgY3JlYXRlTm9kZSgncGFyYWdyYXBoJywgJ2NvbGxhYm9yYXRvciEnKVxuICAgIF1cbiAgXVxuXVxuXG5kZXNjcmliZSgnYXBwbHkgc2xhdGUgb3BlcmF0aW9ucyB0byBBdXRvbWVyZ2UgZG9jdW1lbnQnLCAoKSA9PiB7XG4gIHRyYW5zZm9ybXMuZm9yRWFjaCgoW29wLCBpbnB1dCwgb3BlcmF0aW9ucywgb3V0cHV0XSkgPT4ge1xuICAgIGl0KGBhcHBseSAke29wfSBvcGVyYXRpb25zYCwgKCkgPT4ge1xuICAgICAgY29uc3QgZG9jID0gY3JlYXRlRG9jKGlucHV0KVxuXG4gICAgICBjb25zdCB1cGRhdGVkID0gQXV0b21lcmdlLmNoYW5nZShkb2MsIChkOiBhbnkpID0+IHtcbiAgICAgICAgYXBwbHlTbGF0ZU9wcyhkLmNoaWxkcmVuLCBvcGVyYXRpb25zIGFzIGFueSlcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkID0gY3JlYXRlRG9jKG91dHB1dClcblxuICAgICAgZXhwZWN0KHRvSlMoZXhwZWN0ZWQpKS50b1N0cmljdEVxdWFsKHRvSlModXBkYXRlZCkpXG4gICAgfSlcbiAgfSlcbn0pXG4iXX0=