UNPKG

jsoniq

Version:

JSONiq implementation for JavaScript

29 lines (27 loc) 3.98 kB
"use strict"; /// <reference path="../../../typings/lodash/lodash.d.ts" /> //import _ = require("lodash"); var jerr = require("../../errors"); var UpdatePrimitive_1 = require("./UpdatePrimitive"); class ReplaceInArray extends UpdatePrimitive_1.default { constructor(id, ordPath, position, item) { super(id, ordPath); this.position = position; this.item = item; } apply() { var target = this.getTarget(); if (target[this.position] === undefined) { throw new jerr.JNUP0016("" + this.position); } target[this.position] = this.item; return this; } invert(item, pul) { pul.deleteFromArray(this.id, this.ordPath, this.position); pul.insertIntoArray(this.id, this.ordPath, this.position, item); return this; } } exports.default = ReplaceInArray; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91cGRhdGVzL3ByaW1pdGl2ZXMvUmVwbGFjZUluQXJyYXkudHMiXSwibmFtZXMiOlsiUmVwbGFjZUluQXJyYXkiLCJSZXBsYWNlSW5BcnJheS5jb25zdHJ1Y3RvciIsIlJlcGxhY2VJbkFycmF5LmFwcGx5IiwiUmVwbGFjZUluQXJyYXkuaW52ZXJ0Il0sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREO0FBQzVELCtCQUErQjtBQUMvQixJQUFZLElBQUksV0FBTSxjQUFjLENBQUMsQ0FBQTtBQUNyQyxnQ0FBNEIsbUJBQW1CLENBQUMsQ0FBQTtBQUloRCw2QkFBNEMseUJBQWU7SUFJdkRBLFlBQVlBLEVBQVVBLEVBQUVBLE9BQWlCQSxFQUFFQSxRQUFnQkEsRUFBRUEsSUFBU0E7UUFDbEVDLE1BQU1BLEVBQUVBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBO1FBQ25CQSxJQUFJQSxDQUFDQSxRQUFRQSxHQUFHQSxRQUFRQSxDQUFDQTtRQUN6QkEsSUFBSUEsQ0FBQ0EsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0E7SUFDckJBLENBQUNBO0lBRURELEtBQUtBO1FBQ0RFLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLENBQUNBLFNBQVNBLEVBQUVBLENBQUNBO1FBQzlCQSxFQUFFQSxDQUFBQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNyQ0EsTUFBTUEsSUFBSUEsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsRUFBRUEsR0FBR0EsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0E7UUFDaERBLENBQUNBO1FBQ0RBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLElBQUlBLENBQUNBO1FBQ2xDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQTtJQUNoQkEsQ0FBQ0E7SUFFREYsTUFBTUEsQ0FBQ0EsSUFBU0EsRUFBRUEsR0FBU0E7UUFDdkJHLEdBQUdBLENBQUNBLGVBQWVBLENBQUNBLElBQUlBLENBQUNBLEVBQUVBLEVBQUVBLElBQUlBLENBQUNBLE9BQU9BLEVBQUVBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO1FBQzFEQSxHQUFHQSxDQUFDQSxlQUFlQSxDQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxFQUFFQSxJQUFJQSxDQUFDQSxPQUFPQSxFQUFFQSxJQUFJQSxDQUFDQSxRQUFRQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNoRUEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7SUFDaEJBLENBQUNBO0FBQ0xILENBQUNBO2lDQUFBIiwiZmlsZSI6ImxpYi91cGRhdGVzL3ByaW1pdGl2ZXMvUmVwbGFjZUluQXJyYXkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vLi4vdHlwaW5ncy9sb2Rhc2gvbG9kYXNoLmQudHNcIiAvPlxuLy9pbXBvcnQgXyA9IHJlcXVpcmUoXCJsb2Rhc2hcIik7XG5pbXBvcnQgKiBhcyBqZXJyIGZyb20gXCIuLi8uLi9lcnJvcnNcIjtcbmltcG9ydCBVcGRhdGVQcmltaXRpdmUgZnJvbSBcIi4vVXBkYXRlUHJpbWl0aXZlXCI7XG5cbmltcG9ydCB7IElQVUwgfSBmcm9tIFwiLi4vSVBVTFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXBsYWNlSW5BcnJheSBleHRlbmRzIFVwZGF0ZVByaW1pdGl2ZSB7XG4gICAgcG9zaXRpb246IG51bWJlcjtcbiAgICBpdGVtOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBvcmRQYXRoOiBzdHJpbmdbXSwgcG9zaXRpb246IG51bWJlciwgaXRlbTogYW55KSB7XG4gICAgICAgIHN1cGVyKGlkLCBvcmRQYXRoKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICB0aGlzLml0ZW0gPSBpdGVtO1xuICAgIH1cblxuICAgIGFwcGx5KCk6IFVwZGF0ZVByaW1pdGl2ZSB7XG4gICAgICAgIHZhciB0YXJnZXQgPSB0aGlzLmdldFRhcmdldCgpO1xuICAgICAgICBpZih0YXJnZXRbdGhpcy5wb3NpdGlvbl0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IGplcnIuSk5VUDAwMTYoXCJcIiArIHRoaXMucG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldFt0aGlzLnBvc2l0aW9uXSA9IHRoaXMuaXRlbTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaW52ZXJ0KGl0ZW06IGFueSwgcHVsOiBJUFVMKTogVXBkYXRlUHJpbWl0aXZlIHtcbiAgICAgICAgcHVsLmRlbGV0ZUZyb21BcnJheSh0aGlzLmlkLCB0aGlzLm9yZFBhdGgsIHRoaXMucG9zaXRpb24pO1xuICAgICAgICBwdWwuaW5zZXJ0SW50b0FycmF5KHRoaXMuaWQsIHRoaXMub3JkUGF0aCwgdGhpcy5wb3NpdGlvbiwgaXRlbSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==