UNPKG

ddb-table

Version:

Strongly typed library for querying and modeling DynamoDB documents.

54 lines (52 loc) 7.79 kB
"use strict"; exports.__esModule = true; exports.default = void 0; // Docs: // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET class UpdateValueExpression { constructor(names, values, pathName, valueKey) { this.names = void 0; this.values = void 0; this.pathName = void 0; this.valueKey = void 0; this.names = names; this.values = values; this.pathName = pathName; this.valueKey = valueKey; } name(...path) { return this.names.add(...path); } value(value) { return this.values.add(this.valueKey, value); } inc(a, b) { return this.operand('+', a, b); } dec(a, b) { return this.operand('-', a, b); } operand(operand, a, b) { if (b === undefined) { return `${this.pathName} ${operand} ${this.calcValueFn(a)}`; } return `${this.calcValueFn(a)} ${operand} ${this.calcValueFn(b)}`; } listAppend(list1, list2) { if (list2 === undefined) { return `list_append(${this.pathName}, ${this.calcValueFn(list1)})`; } return `list_append(${this.calcValueFn(list1)}, ${this.calcValueFn(list2)})`; } ifNotExists(value) { return `if_not_exists(${this.pathName}, ${this.calcValueFn(value)})`; } calcValueFn(value) { if (typeof value !== 'function') { return this.values.add(this.valueKey, value); } return value(this); } } exports.default = UpdateValueExpression; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVcGRhdGVWYWx1ZUV4cHJlc3Npb24iLCJjb25zdHJ1Y3RvciIsIm5hbWVzIiwidmFsdWVzIiwicGF0aE5hbWUiLCJ2YWx1ZUtleSIsIm5hbWUiLCJwYXRoIiwiYWRkIiwidmFsdWUiLCJpbmMiLCJhIiwiYiIsIm9wZXJhbmQiLCJkZWMiLCJ1bmRlZmluZWQiLCJjYWxjVmFsdWVGbiIsImxpc3RBcHBlbmQiLCJsaXN0MSIsImxpc3QyIiwiaWZOb3RFeGlzdHMiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHByZXNzaW9ucy9VcGRhdGVWYWx1ZUV4cHJlc3Npb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV4cHJlc3Npb25BdHRyaWJ1dGVOYW1lcyBmcm9tICcuL0V4cHJlc3Npb25BdHRyaWJ1dGVOYW1lcyc7XG5pbXBvcnQgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlcyBmcm9tICcuL0V4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXMnO1xuXG4vLyBEb2NzOlxuLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9FeHByZXNzaW9ucy5VcGRhdGVFeHByZXNzaW9ucy5odG1sI0V4cHJlc3Npb25zLlVwZGF0ZUV4cHJlc3Npb25zLlNFVFxuXG5leHBvcnQgdHlwZSBPcGVyYW5kID0gJysnIHwgJy0nO1xuXG5leHBvcnQgdHlwZSBWYWx1ZUZuPFQsIFY+ID0gViB8ICgoZXhwOiBVcGRhdGVWYWx1ZUV4cHJlc3Npb248VCwgVj4pID0+IHN0cmluZyk7XG5cbmV4cG9ydCB0eXBlIExpc3RWYWx1ZTxWPiA9IFtWXSBleHRlbmRzIFt1bmtub3duW11dID8gViA6IG5ldmVyO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVcGRhdGVWYWx1ZUV4cHJlc3Npb248VCwgVj4ge1xuICBwcml2YXRlIG5hbWVzOiBFeHByZXNzaW9uQXR0cmlidXRlTmFtZXM8VD47XG4gIHByaXZhdGUgdmFsdWVzOiBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzO1xuICBwcml2YXRlIHBhdGhOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgdmFsdWVLZXk6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgbmFtZXM6IEV4cHJlc3Npb25BdHRyaWJ1dGVOYW1lczxUPixcbiAgICB2YWx1ZXM6IEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXMsXG4gICAgcGF0aE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZUtleTogc3RyaW5nLFxuICApIHtcbiAgICB0aGlzLm5hbWVzID0gbmFtZXM7XG4gICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgdGhpcy5wYXRoTmFtZSA9IHBhdGhOYW1lO1xuICAgIHRoaXMudmFsdWVLZXkgPSB2YWx1ZUtleTtcbiAgfVxuXG4gIHB1YmxpYyBuYW1lPFxuICAgIEsxIGV4dGVuZHMga2V5b2YgVCxcbiAgICBLMiBleHRlbmRzIGtleW9mIFRbSzFdLFxuICAgIEszIGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdLFxuICAgIEs0IGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdW0szXSxcbiAgICBLNSBleHRlbmRzIGtleW9mIFRbSzFdW0syXVtLM11bSzRdLFxuICAgIEs2IGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdW0szXVtLNF1bSzVdLFxuICAgIEs3IGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdW0szXVtLNF1bSzVdW0s2XSxcbiAgICBLOCBleHRlbmRzIGtleW9mIFRbSzFdW0syXVtLM11bSzRdW0s1XVtLNl1bSzddLFxuICA+KFxuICAgIC4uLnBhdGg6IFtLMSwgSzI/LCBLMz8sIEs0PywgSzU/LCBLNj8sIEs3PywgSzg/LCAuLi4oc3RyaW5nIHwgbnVtYmVyKVtdXVxuICApOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWVzLmFkZCguLi5wYXRoKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWx1ZSh2YWx1ZTogVik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmFkZCh0aGlzLnZhbHVlS2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgaW5jKGE6IFZhbHVlRm48VCwgVj4sIGI/OiBWYWx1ZUZuPFQsIFY+KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYW5kKCcrJywgYSwgYik7XG4gIH1cblxuICBwdWJsaWMgZGVjKGE6IFZhbHVlRm48VCwgVj4sIGI/OiBWYWx1ZUZuPFQsIFY+KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYW5kKCctJywgYSwgYik7XG4gIH1cblxuICBwdWJsaWMgb3BlcmFuZChcbiAgICBvcGVyYW5kOiBPcGVyYW5kLFxuICAgIGE6IFZhbHVlRm48VCwgVj4sXG4gICAgYj86IFZhbHVlRm48VCwgVj4sXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKGIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMucGF0aE5hbWV9ICR7b3BlcmFuZH0gJHt0aGlzLmNhbGNWYWx1ZUZuKGEpfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3RoaXMuY2FsY1ZhbHVlRm4oYSl9ICR7b3BlcmFuZH0gJHt0aGlzLmNhbGNWYWx1ZUZuKGIpfWA7XG4gIH1cblxuICBwdWJsaWMgbGlzdEFwcGVuZChcbiAgICBsaXN0MTogVmFsdWVGbjxULCBMaXN0VmFsdWU8Vj4+LFxuICAgIGxpc3QyPzogVmFsdWVGbjxULCBMaXN0VmFsdWU8Vj4+LFxuICApOiBzdHJpbmcge1xuICAgIGlmIChsaXN0MiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gYGxpc3RfYXBwZW5kKCR7dGhpcy5wYXRoTmFtZX0sICR7dGhpcy5jYWxjVmFsdWVGbihsaXN0MSl9KWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGBsaXN0X2FwcGVuZCgke3RoaXMuY2FsY1ZhbHVlRm4obGlzdDEpfSwgJHt0aGlzLmNhbGNWYWx1ZUZuKFxuICAgICAgbGlzdDIsXG4gICAgKX0pYDtcbiAgfVxuXG4gIHB1YmxpYyBpZk5vdEV4aXN0cyh2YWx1ZTogVmFsdWVGbjxULCBWPik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBpZl9ub3RfZXhpc3RzKCR7dGhpcy5wYXRoTmFtZX0sICR7dGhpcy5jYWxjVmFsdWVGbih2YWx1ZSl9KWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FsY1ZhbHVlRm4odmFsdWU6IFZhbHVlRm48VCwgVj4pOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5hZGQodGhpcy52YWx1ZUtleSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiAodmFsdWUgYXMgKGV4cDogVXBkYXRlVmFsdWVFeHByZXNzaW9uPFQsIFY+KSA9PiBzdHJpbmcpKHRoaXMpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFHQTtBQUNBOztBQVFlLE1BQU1BLHFCQUFxQixDQUFPO0VBTXhDQyxXQUFXQSxDQUNoQkMsS0FBa0MsRUFDbENDLE1BQWlDLEVBQ2pDQyxRQUFnQixFQUNoQkMsUUFBZ0IsRUFDaEI7SUFBQSxLQVZNSCxLQUFLO0lBQUEsS0FDTEMsTUFBTTtJQUFBLEtBQ05DLFFBQVE7SUFBQSxLQUNSQyxRQUFRO0lBUWQsSUFBSSxDQUFDSCxLQUFLLEdBQUdBLEtBQUs7SUFDbEIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBLE1BQU07SUFDcEIsSUFBSSxDQUFDQyxRQUFRLEdBQUdBLFFBQVE7SUFDeEIsSUFBSSxDQUFDQyxRQUFRLEdBQUdBLFFBQVE7RUFDMUI7RUFFT0MsSUFBSUEsQ0FVVCxHQUFHQyxJQUFxRSxFQUNoRTtJQUNSLE9BQU8sSUFBSSxDQUFDTCxLQUFLLENBQUNNLEdBQUcsQ0FBQyxHQUFHRCxJQUFJLENBQUM7RUFDaEM7RUFFT0UsS0FBS0EsQ0FBQ0EsS0FBUSxFQUFVO0lBQzdCLE9BQU8sSUFBSSxDQUFDTixNQUFNLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUNILFFBQVEsRUFBRUksS0FBSyxDQUFDO0VBQzlDO0VBRU9DLEdBQUdBLENBQUNDLENBQWdCLEVBQUVDLENBQWlCLEVBQVU7SUFDdEQsT0FBTyxJQUFJLENBQUNDLE9BQU8sQ0FBQyxHQUFHLEVBQUVGLENBQUMsRUFBRUMsQ0FBQyxDQUFDO0VBQ2hDO0VBRU9FLEdBQUdBLENBQUNILENBQWdCLEVBQUVDLENBQWlCLEVBQVU7SUFDdEQsT0FBTyxJQUFJLENBQUNDLE9BQU8sQ0FBQyxHQUFHLEVBQUVGLENBQUMsRUFBRUMsQ0FBQyxDQUFDO0VBQ2hDO0VBRU9DLE9BQU9BLENBQ1pBLE9BQWdCLEVBQ2hCRixDQUFnQixFQUNoQkMsQ0FBaUIsRUFDVDtJQUNSLElBQUlBLENBQUMsS0FBS0csU0FBUyxFQUFFO01BQ25CLE9BQVEsR0FBRSxJQUFJLENBQUNYLFFBQVMsSUFBR1MsT0FBUSxJQUFHLElBQUksQ0FBQ0csV0FBVyxDQUFDTCxDQUFDLENBQUUsRUFBQztJQUM3RDtJQUVBLE9BQVEsR0FBRSxJQUFJLENBQUNLLFdBQVcsQ0FBQ0wsQ0FBQyxDQUFFLElBQUdFLE9BQVEsSUFBRyxJQUFJLENBQUNHLFdBQVcsQ0FBQ0osQ0FBQyxDQUFFLEVBQUM7RUFDbkU7RUFFT0ssVUFBVUEsQ0FDZkMsS0FBK0IsRUFDL0JDLEtBQWdDLEVBQ3hCO0lBQ1IsSUFBSUEsS0FBSyxLQUFLSixTQUFTLEVBQUU7TUFDdkIsT0FBUSxlQUFjLElBQUksQ0FBQ1gsUUFBUyxLQUFJLElBQUksQ0FBQ1ksV0FBVyxDQUFDRSxLQUFLLENBQUUsR0FBRTtJQUNwRTtJQUVBLE9BQVEsZUFBYyxJQUFJLENBQUNGLFdBQVcsQ0FBQ0UsS0FBSyxDQUFFLEtBQUksSUFBSSxDQUFDRixXQUFXLENBQ2hFRyxLQUFLLENBQ0wsR0FBRTtFQUNOO0VBRU9DLFdBQVdBLENBQUNYLEtBQW9CLEVBQVU7SUFDL0MsT0FBUSxpQkFBZ0IsSUFBSSxDQUFDTCxRQUFTLEtBQUksSUFBSSxDQUFDWSxXQUFXLENBQUNQLEtBQUssQ0FBRSxHQUFFO0VBQ3RFO0VBRVVPLFdBQVdBLENBQUNQLEtBQW9CLEVBQVU7SUFDbEQsSUFBSSxPQUFPQSxLQUFLLEtBQUssVUFBVSxFQUFFO01BQy9CLE9BQU8sSUFBSSxDQUFDTixNQUFNLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUNILFFBQVEsRUFBRUksS0FBSyxDQUFDO0lBQzlDO0lBRUEsT0FBUUEsS0FBSyxDQUFrRCxJQUFJLENBQUM7RUFDdEU7QUFDRjtBQUFDWSxPQUFBLENBQUFDLE9BQUEsR0FBQXRCLHFCQUFBIn0=