UNPKG

marshall-y-slate

Version:
39 lines 3.19 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const tiny_invariant_1 = __importDefault(require("tiny-invariant")); const model_1 = require("../../model"); const path_1 = require("../../path"); const utils_1 = require("../../utils"); /** * Applies a merge node operation to a SharedType. * * @param doc * @param op */ function mergeNode(doc, op) { const [parent, index] = (0, path_1.getParent)(doc, op.path); const children = model_1.SyncNode.getChildren(parent); (0, tiny_invariant_1.default)(children, 'Parent of element should have children'); const prev = children.get(index - 1); const next = children.get(index); const prevText = model_1.SyncNode.getText(prev); const nextText = model_1.SyncNode.getText(next); if (prevText && nextText) { prevText.insert(prevText.length, nextText.toString()); } else { const nextChildren = model_1.SyncNode.getChildren(next); const prevChildren = model_1.SyncNode.getChildren(prev); (0, tiny_invariant_1.default)(nextChildren, 'Next element should have children'); (0, tiny_invariant_1.default)(prevChildren, 'Prev element should have children'); const toPush = nextChildren.map(utils_1.cloneSyncElement); prevChildren.push(toPush); } children.delete(index, 1); return doc; } exports.default = mergeNode; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2Utbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHBseS10by15anMvbm9kZS9tZXJnZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esb0VBQXVDO0FBQ3ZDLHVDQUFtRDtBQUNuRCxxQ0FBdUM7QUFDdkMsdUNBQStDO0FBRS9DOzs7OztHQUtHO0FBQ0gsU0FBd0IsU0FBUyxDQUMvQixHQUFlLEVBQ2YsRUFBc0I7SUFFdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFBLGdCQUFTLEVBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoRCxNQUFNLFFBQVEsR0FBRyxnQkFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxJQUFBLHdCQUFTLEVBQUMsUUFBUSxFQUFFLHdDQUF3QyxDQUFDLENBQUM7SUFFOUQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVqQyxNQUFNLFFBQVEsR0FBRyxnQkFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxnQkFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4QyxJQUFJLFFBQVEsSUFBSSxRQUFRLEVBQUU7UUFDeEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO1NBQU07UUFDTCxNQUFNLFlBQVksR0FBRyxnQkFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxNQUFNLFlBQVksR0FBRyxnQkFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoRCxJQUFBLHdCQUFTLEVBQUMsWUFBWSxFQUFFLG1DQUFtQyxDQUFDLENBQUM7UUFDN0QsSUFBQSx3QkFBUyxFQUFDLFlBQVksRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO1FBRTdELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsd0JBQWdCLENBQUMsQ0FBQztRQUNsRCxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzNCO0lBRUQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBOUJELDRCQThCQyJ9