@skokenes/slate-yjs
Version:
Yjs bindings for Slate.
27 lines • 1.96 kB
JavaScript
;
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 convert_1 = require("../../utils/convert");
/**
* Applies an insert node operation to a SharedType.
*
* @param doc
* @param op
*/
function insertNode(doc, op) {
const [parent, index] = path_1.getParent(doc, op.path);
const children = model_1.SyncNode.getChildren(parent);
if (model_1.SyncNode.getText(parent) !== undefined || !children) {
throw new TypeError("Can't insert node into text node");
}
tiny_invariant_1.default(children, 'cannot apply insert node operation to text node');
children.insert(index, [convert_1.toSyncElement(op.node)]);
return doc;
}
exports.default = insertNode;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHBseVRvWWpzL25vZGUvaW5zZXJ0Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLG9FQUF1QztBQUN2Qyx1Q0FBbUQ7QUFDbkQscUNBQXVDO0FBQ3ZDLGlEQUFvRDtBQUVwRDs7Ozs7R0FLRztBQUNILFNBQXdCLFVBQVUsQ0FDaEMsR0FBZSxFQUNmLEVBQXVCO0lBRXZCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsZ0JBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWhELE1BQU0sUUFBUSxHQUFHLGdCQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLElBQUksZ0JBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ3ZELE1BQU0sSUFBSSxTQUFTLENBQUMsa0NBQWtDLENBQUMsQ0FBQztLQUN6RDtJQUVELHdCQUFTLENBQUMsUUFBUSxFQUFFLGlEQUFpRCxDQUFDLENBQUM7SUFFdkUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyx1QkFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBZkQsNkJBZUMifQ==