jsoniq
Version:
JSONiq implementation for JavaScript
28 lines (26 loc) • 3.74 kB
JavaScript
"use strict";
var UpdatePrimitive_1 = require("./UpdatePrimitive");
class InsertIntoArray extends UpdatePrimitive_1.default {
constructor(id, ordPath, position, items) {
super(id, ordPath);
this.position = position;
this.items = items;
}
merge(udp) {
Array.prototype.splice.apply(this.items, [this.items.length, 0].concat(udp.items));
return this;
}
apply() {
var target = this.getTarget();
this.items.forEach((i) => {
target.splice(this.position, 0, i);
});
return this;
}
invert(item, pul) {
pul.deleteFromArray(this.id, this.ordPath, this.position);
return this;
}
}
exports.default = InsertIntoArray;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91cGRhdGVzL3ByaW1pdGl2ZXMvSW5zZXJ0SW50b0FycmF5LnRzIl0sIm5hbWVzIjpbIkluc2VydEludG9BcnJheSIsIkluc2VydEludG9BcnJheS5jb25zdHJ1Y3RvciIsIkluc2VydEludG9BcnJheS5tZXJnZSIsIkluc2VydEludG9BcnJheS5hcHBseSIsIkluc2VydEludG9BcnJheS5pbnZlcnQiXSwibWFwcGluZ3MiOiI7QUFBQSxnQ0FBNEIsbUJBQW1CLENBQUMsQ0FBQTtBQUloRCw4QkFBNkMseUJBQWU7SUFJeERBLFlBQVlBLEVBQVVBLEVBQUVBLE9BQWlCQSxFQUFFQSxRQUFnQkEsRUFBRUEsS0FBWUE7UUFDckVDLE1BQU1BLEVBQUVBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBO1FBQ25CQSxJQUFJQSxDQUFDQSxRQUFRQSxHQUFHQSxRQUFRQSxDQUFDQTtRQUN6QkEsSUFBSUEsQ0FBQ0EsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0E7SUFDdkJBLENBQUNBO0lBRURELEtBQUtBLENBQUNBLEdBQW9CQTtRQUN0QkUsS0FBS0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDbkZBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO0lBQ2hCQSxDQUFDQTtJQUVERixLQUFLQTtRQUNERyxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSxTQUFTQSxFQUFFQSxDQUFDQTtRQUM5QkEsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDakJBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFFBQVFBLEVBQUVBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO1FBQ3ZDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNIQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQTtJQUNoQkEsQ0FBQ0E7SUFFREgsTUFBTUEsQ0FBQ0EsSUFBU0EsRUFBRUEsR0FBU0E7UUFDdkJJLEdBQUdBLENBQUNBLGVBQWVBLENBQUNBLElBQUlBLENBQUNBLEVBQUVBLEVBQUVBLElBQUlBLENBQUNBLE9BQU9BLEVBQUVBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO1FBQzFEQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQTtJQUNoQkEsQ0FBQ0E7QUFDTEosQ0FBQ0E7a0NBQUEiLCJmaWxlIjoibGliL3VwZGF0ZXMvcHJpbWl0aXZlcy9JbnNlcnRJbnRvQXJyYXkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVXBkYXRlUHJpbWl0aXZlIGZyb20gXCIuL1VwZGF0ZVByaW1pdGl2ZVwiO1xuXG5pbXBvcnQgeyBJUFVMIH0gZnJvbSBcIi4uL0lQVUxcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5zZXJ0SW50b0FycmF5IGV4dGVuZHMgVXBkYXRlUHJpbWl0aXZlIHtcbiAgICBwb3NpdGlvbjogbnVtYmVyO1xuICAgIGl0ZW1zOiBhbnlbXTtcblxuICAgIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIG9yZFBhdGg6IHN0cmluZ1tdLCBwb3NpdGlvbjogbnVtYmVyLCBpdGVtczogYW55W10pIHtcbiAgICAgICAgc3VwZXIoaWQsIG9yZFBhdGgpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcbiAgICB9XG5cbiAgICBtZXJnZSh1ZHA6IEluc2VydEludG9BcnJheSk6IFVwZGF0ZVByaW1pdGl2ZSB7XG4gICAgICAgIEFycmF5LnByb3RvdHlwZS5zcGxpY2UuYXBwbHkodGhpcy5pdGVtcywgW3RoaXMuaXRlbXMubGVuZ3RoLCAwXS5jb25jYXQodWRwLml0ZW1zKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGFwcGx5KCk6IFVwZGF0ZVByaW1pdGl2ZSB7XG4gICAgICAgIHZhciB0YXJnZXQgPSB0aGlzLmdldFRhcmdldCgpO1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGkpID0+IHtcbiAgICAgICAgICAgIHRhcmdldC5zcGxpY2UodGhpcy5wb3NpdGlvbiwgMCwgaSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpbnZlcnQoaXRlbTogYW55LCBwdWw6IElQVUwpOiBVcGRhdGVQcmltaXRpdmUge1xuICAgICAgICBwdWwuZGVsZXRlRnJvbUFycmF5KHRoaXMuaWQsIHRoaXMub3JkUGF0aCwgdGhpcy5wb3NpdGlvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==