UNPKG

jsoniq

Version:

JSONiq implementation for JavaScript

39 lines (31 loc) 991 B
/// <reference path="../../../typings/lodash/lodash.d.ts" /> import * as _ from "lodash"; //import jerr = from "../../errors"); import UpdatePrimitive from "./UpdatePrimitive"; import {IPUL} from "../IPUL"; export default class DeleteFromObject extends UpdatePrimitive { keys: string[]; constructor(id: string, ordPath: string[], keys: string[]) { super(id, ordPath); this.keys = keys; } merge(udp: DeleteFromObject): UpdatePrimitive { this.keys = _.uniq(this.keys.concat(udp.keys)); return this; } apply(): UpdatePrimitive { var target = this.getTarget(); this.keys.forEach(function(key) { delete target[key]; }); return this; } invert(item: any, pul: IPUL): UpdatePrimitive { var pairs = {}; this.keys.forEach((key) => { pairs[key] = item[key]; }); pul.insertIntoObject(this.id, this.ordPath, pairs); return this; } }