ddb-table
Version:
Strongly typed library for querying and modeling DynamoDB documents.
44 lines (43 loc) • 5.32 kB
JavaScript
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _expressions = require("../expressions");
class Query {
constructor(request, params) {
this.input = void 0;
this.request = void 0;
this.names = void 0;
this.input = params;
this.request = request;
}
handleInputUpdated() {
this.names = new _expressions.ExpressionAttributeNames(this.input.ExpressionAttributeNames);
}
syncInput() {
this.input.ExpressionAttributeNames = this.names.serialize();
}
calcCapacity(mode) {
this.input.ReturnConsumedCapacity = mode;
return this;
}
extend(input) {
this.syncInput();
Object.assign(this.input, input);
this.handleInputUpdated();
return this;
}
serialize() {
this.syncInput();
for (const key in this.input) {
if (this.input[key] === undefined) {
delete this.input[key];
}
}
return this.input;
}
exec(options) {
return this.request(Object.assign(this.serialize(), options));
}
}
exports.default = Query;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzc2lvbnMiLCJyZXF1aXJlIiwiUXVlcnkiLCJjb25zdHJ1Y3RvciIsInJlcXVlc3QiLCJwYXJhbXMiLCJpbnB1dCIsIm5hbWVzIiwiaGFuZGxlSW5wdXRVcGRhdGVkIiwiRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzIiwic3luY0lucHV0Iiwic2VyaWFsaXplIiwiY2FsY0NhcGFjaXR5IiwibW9kZSIsIlJldHVybkNvbnN1bWVkQ2FwYWNpdHkiLCJleHRlbmQiLCJPYmplY3QiLCJhc3NpZ24iLCJrZXkiLCJ1bmRlZmluZWQiLCJleGVjIiwib3B0aW9ucyIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXMvUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVsZXRlQ29tbWFuZElucHV0LFxuICBHZXRDb21tYW5kSW5wdXQsXG4gIEl0ZW0sXG4gIFB1dENvbW1hbmRJbnB1dCxcbiAgUXVlcnlDb21tYW5kSW5wdXQsXG4gIFNjYW5Db21tYW5kSW5wdXQsXG4gIFVwZGF0ZUNvbW1hbmRJbnB1dCxcbn0gZnJvbSAnLi4vRG9jdW1lbnRDbGllbnQnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzIH0gZnJvbSAnLi4vZXhwcmVzc2lvbnMnO1xuXG5leHBvcnQgdHlwZSBRdWVyeVJlcXVlc3Q8SSwgTz4gPSAocGFyYW1zOiBJKSA9PiBQcm9taXNlPE8+O1xuXG50eXBlIElucHV0cyA9XG4gIHwgUHV0Q29tbWFuZElucHV0XG4gIHwgR2V0Q29tbWFuZElucHV0XG4gIHwgU2NhbkNvbW1hbmRJbnB1dFxuICB8IFF1ZXJ5Q29tbWFuZElucHV0XG4gIHwgVXBkYXRlQ29tbWFuZElucHV0XG4gIHwgRGVsZXRlQ29tbWFuZElucHV0O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBRdWVyeTxUIGV4dGVuZHMgSXRlbSwgSSBleHRlbmRzIElucHV0cywgTz4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5wdXQ6IEk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdDogUXVlcnlSZXF1ZXN0PEksIE8+O1xuICBwcm90ZWN0ZWQgbmFtZXMhOiBFeHByZXNzaW9uQXR0cmlidXRlTmFtZXM8VD47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHJlcXVlc3Q6IFF1ZXJ5UmVxdWVzdDxJLCBPPiwgcGFyYW1zOiBJKSB7XG4gICAgdGhpcy5pbnB1dCA9IHBhcmFtcztcbiAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUlucHV0VXBkYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLm5hbWVzID0gbmV3IEV4cHJlc3Npb25BdHRyaWJ1dGVOYW1lcyhcbiAgICAgIHRoaXMuaW5wdXQuRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3luY0lucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXQuRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzID0gdGhpcy5uYW1lcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxjQ2FwYWNpdHkobW9kZTogJ0lOREVYRVMnIHwgJ1RPVEFMJyB8ICdOT05FJyk6IHRoaXMge1xuICAgIHRoaXMuaW5wdXQuUmV0dXJuQ29uc3VtZWRDYXBhY2l0eSA9IG1vZGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZXh0ZW5kKGlucHV0OiBQYXJ0aWFsPEk+KTogdGhpcyB7XG4gICAgdGhpcy5zeW5jSW5wdXQoKTtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuaW5wdXQsIGlucHV0KTtcbiAgICB0aGlzLmhhbmRsZUlucHV0VXBkYXRlZCgpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgc2VyaWFsaXplKCk6IEkge1xuICAgIHRoaXMuc3luY0lucHV0KCk7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmlucHV0KSB7XG4gICAgICBpZiAodGhpcy5pbnB1dFtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuaW5wdXRba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbnB1dDtcbiAgfVxuXG4gIHB1YmxpYyBleGVjKG9wdGlvbnM/OiBQYXJ0aWFsPEk+KTogUHJvbWlzZTxPPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdChPYmplY3QuYXNzaWduKHRoaXMuc2VyaWFsaXplKCksIG9wdGlvbnMpKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0EsSUFBQUEsWUFBQSxHQUFBQyxPQUFBO0FBWWUsTUFBTUMsS0FBSyxDQUFzQztFQUtwREMsV0FBV0EsQ0FBQ0MsT0FBMkIsRUFBRUMsTUFBUyxFQUFFO0lBQUEsS0FKM0NDLEtBQUs7SUFBQSxLQUNQRixPQUFPO0lBQUEsS0FDZEcsS0FBSztJQUdiLElBQUksQ0FBQ0QsS0FBSyxHQUFHRCxNQUFNO0lBQ25CLElBQUksQ0FBQ0QsT0FBTyxHQUFHQSxPQUFPO0VBQ3hCO0VBRVVJLGtCQUFrQkEsQ0FBQSxFQUFTO0lBQ25DLElBQUksQ0FBQ0QsS0FBSyxHQUFHLElBQUlFLHFDQUF3QixDQUN2QyxJQUFJLENBQUNILEtBQUssQ0FBQ0csd0JBQXdCLENBQ3BDO0VBQ0g7RUFFVUMsU0FBU0EsQ0FBQSxFQUFTO0lBQzFCLElBQUksQ0FBQ0osS0FBSyxDQUFDRyx3QkFBd0IsR0FBRyxJQUFJLENBQUNGLEtBQUssQ0FBQ0ksU0FBUyxFQUFFO0VBQzlEO0VBRU9DLFlBQVlBLENBQUNDLElBQWtDLEVBQVE7SUFDNUQsSUFBSSxDQUFDUCxLQUFLLENBQUNRLHNCQUFzQixHQUFHRCxJQUFJO0lBQ3hDLE9BQU8sSUFBSTtFQUNiO0VBRU9FLE1BQU1BLENBQUNULEtBQWlCLEVBQVE7SUFDckMsSUFBSSxDQUFDSSxTQUFTLEVBQUU7SUFDaEJNLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQ1gsS0FBSyxFQUFFQSxLQUFLLENBQUM7SUFDaEMsSUFBSSxDQUFDRSxrQkFBa0IsRUFBRTtJQUV6QixPQUFPLElBQUk7RUFDYjtFQUVPRyxTQUFTQSxDQUFBLEVBQU07SUFDcEIsSUFBSSxDQUFDRCxTQUFTLEVBQUU7SUFFaEIsS0FBSyxNQUFNUSxHQUFHLElBQUksSUFBSSxDQUFDWixLQUFLLEVBQUU7TUFDNUIsSUFBSSxJQUFJLENBQUNBLEtBQUssQ0FBQ1ksR0FBRyxDQUFDLEtBQUtDLFNBQVMsRUFBRTtRQUNqQyxPQUFPLElBQUksQ0FBQ2IsS0FBSyxDQUFDWSxHQUFHLENBQUM7TUFDeEI7SUFDRjtJQUVBLE9BQU8sSUFBSSxDQUFDWixLQUFLO0VBQ25CO0VBRU9jLElBQUlBLENBQUNDLE9BQW9CLEVBQWM7SUFDNUMsT0FBTyxJQUFJLENBQUNqQixPQUFPLENBQUNZLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQ04sU0FBUyxFQUFFLEVBQUVVLE9BQU8sQ0FBQyxDQUFDO0VBQy9EO0FBQ0Y7QUFBQ0MsT0FBQSxDQUFBQyxPQUFBLEdBQUFyQixLQUFBIn0=