jsoniq
Version:
JSONiq implementation for JavaScript
34 lines (32 loc) • 4.14 kB
JavaScript
;
/// <reference path="../../../typings/lodash/lodash.d.ts" />
var _ = require("lodash");
//import jerr = from "../../errors");
var UpdatePrimitive_1 = require("./UpdatePrimitive");
class DeleteFromObject extends UpdatePrimitive_1.default {
constructor(id, ordPath, keys) {
super(id, ordPath);
this.keys = keys;
}
merge(udp) {
this.keys = _.uniq(this.keys.concat(udp.keys));
return this;
}
apply() {
var target = this.getTarget();
this.keys.forEach(function (key) {
delete target[key];
});
return this;
}
invert(item, pul) {
var pairs = {};
this.keys.forEach((key) => {
pairs[key] = item[key];
});
pul.insertIntoObject(this.id, this.ordPath, pairs);
return this;
}
}
exports.default = DeleteFromObject;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91cGRhdGVzL3ByaW1pdGl2ZXMvRGVsZXRlRnJvbU9iamVjdC50cyJdLCJuYW1lcyI6WyJEZWxldGVGcm9tT2JqZWN0IiwiRGVsZXRlRnJvbU9iamVjdC5jb25zdHJ1Y3RvciIsIkRlbGV0ZUZyb21PYmplY3QubWVyZ2UiLCJEZWxldGVGcm9tT2JqZWN0LmFwcGx5IiwiRGVsZXRlRnJvbU9iamVjdC5pbnZlcnQiXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7QUFDNUQsSUFBWSxDQUFDLFdBQU0sUUFBUSxDQUFDLENBQUE7QUFDNUIscUNBQXFDO0FBRXJDLGdDQUE0QixtQkFBbUIsQ0FBQyxDQUFBO0FBSWhELCtCQUE4Qyx5QkFBZTtJQUd6REEsWUFBWUEsRUFBVUEsRUFBRUEsT0FBaUJBLEVBQUVBLElBQWNBO1FBQ3JEQyxNQUFNQSxFQUFFQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQTtRQUNuQkEsSUFBSUEsQ0FBQ0EsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0E7SUFDckJBLENBQUNBO0lBRURELEtBQUtBLENBQUNBLEdBQXFCQTtRQUN2QkUsSUFBSUEsQ0FBQ0EsSUFBSUEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDL0NBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO0lBQ2hCQSxDQUFDQTtJQUVERixLQUFLQTtRQUNERyxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSxTQUFTQSxFQUFFQSxDQUFDQTtRQUM5QkEsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBU0EsR0FBR0E7WUFDMUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDQSxDQUFDQTtRQUNIQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQTtJQUNoQkEsQ0FBQ0E7SUFFREgsTUFBTUEsQ0FBQ0EsSUFBU0EsRUFBRUEsR0FBU0E7UUFDdkJJLElBQUlBLEtBQUtBLEdBQUdBLEVBQUVBLENBQUNBO1FBQ2ZBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLEdBQUdBO1lBQ2xCQSxLQUFLQSxDQUFDQSxHQUFHQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDSEEsR0FBR0EsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxFQUFFQSxJQUFJQSxDQUFDQSxPQUFPQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQTtRQUNuREEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7SUFDaEJBLENBQUNBO0FBQ0xKLENBQUNBO21DQUFBIiwiZmlsZSI6ImxpYi91cGRhdGVzL3ByaW1pdGl2ZXMvRGVsZXRlRnJvbU9iamVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi8uLi90eXBpbmdzL2xvZGFzaC9sb2Rhc2guZC50c1wiIC8+XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcbi8vaW1wb3J0IGplcnIgPSBmcm9tIFwiLi4vLi4vZXJyb3JzXCIpO1xuXG5pbXBvcnQgVXBkYXRlUHJpbWl0aXZlIGZyb20gXCIuL1VwZGF0ZVByaW1pdGl2ZVwiO1xuXG5pbXBvcnQge0lQVUx9IGZyb20gXCIuLi9JUFVMXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlbGV0ZUZyb21PYmplY3QgZXh0ZW5kcyBVcGRhdGVQcmltaXRpdmUge1xuICAgIGtleXM6IHN0cmluZ1tdO1xuXG4gICAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgb3JkUGF0aDogc3RyaW5nW10sIGtleXM6IHN0cmluZ1tdKSB7XG4gICAgICAgIHN1cGVyKGlkLCBvcmRQYXRoKTtcbiAgICAgICAgdGhpcy5rZXlzID0ga2V5cztcbiAgICB9XG5cbiAgICBtZXJnZSh1ZHA6IERlbGV0ZUZyb21PYmplY3QpOiBVcGRhdGVQcmltaXRpdmUge1xuICAgICAgICB0aGlzLmtleXMgPSBfLnVuaXEodGhpcy5rZXlzLmNvbmNhdCh1ZHAua2V5cykpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBhcHBseSgpOiBVcGRhdGVQcmltaXRpdmUge1xuICAgICAgICB2YXIgdGFyZ2V0ID0gdGhpcy5nZXRUYXJnZXQoKTtcbiAgICAgICAgdGhpcy5rZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBkZWxldGUgdGFyZ2V0W2tleV07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpbnZlcnQoaXRlbTogYW55LCBwdWw6IElQVUwpOiBVcGRhdGVQcmltaXRpdmUge1xuICAgICAgICB2YXIgcGFpcnMgPSB7fTtcbiAgICAgICAgdGhpcy5rZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgcGFpcnNba2V5XSA9IGl0ZW1ba2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIHB1bC5pbnNlcnRJbnRvT2JqZWN0KHRoaXMuaWQsIHRoaXMub3JkUGF0aCwgcGFpcnMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=