UNPKG

jsoniq

Version:

JSONiq implementation for JavaScript

34 lines (32 loc) 4.14 kB
"use strict"; /// <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=