ddb-table
Version:
Strongly typed library for querying and modeling DynamoDB documents.
50 lines (49 loc) • 6.44 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _queries = require("./queries");
var _DeleteQuery = _interopRequireDefault(require("./queries/DeleteQuery"));
var _TableIndex = _interopRequireDefault(require("./TableIndex"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class Table extends _TableIndex.default {
constructor(
// eslint-disable-next-line @typescript-eslint/ban-types
opts) {
super(opts);
}
index(name, primaryKey, sortKey) {
return new _TableIndex.default({
tableName: this.name,
indexName: name,
primaryKey,
sortKey,
documentClient: this.client
});
}
put(item) {
return new _queries.PutQuery(this.client, {
TableName: this.name,
Item: item
});
}
get(...args) {
return new _queries.GetQuery(this.client, {
TableName: this.name,
Key: this.key(...args)
});
}
update(...args) {
return new _queries.UpdateQuery(this.client, {
TableName: this.name,
Key: this.key(...args)
});
}
delete(...args) {
return new _DeleteQuery.default(this.client, {
TableName: this.name,
Key: this.key(...args)
});
}
}
exports.default = Table;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcXVlcmllcyIsInJlcXVpcmUiLCJfRGVsZXRlUXVlcnkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1RhYmxlSW5kZXgiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlRhYmxlIiwiVGFibGVJbmRleCIsImNvbnN0cnVjdG9yIiwib3B0cyIsImluZGV4IiwibmFtZSIsInByaW1hcnlLZXkiLCJzb3J0S2V5IiwidGFibGVOYW1lIiwiaW5kZXhOYW1lIiwiZG9jdW1lbnRDbGllbnQiLCJjbGllbnQiLCJwdXQiLCJpdGVtIiwiUHV0UXVlcnkiLCJUYWJsZU5hbWUiLCJJdGVtIiwiZ2V0IiwiYXJncyIsIkdldFF1ZXJ5IiwiS2V5Iiwia2V5IiwidXBkYXRlIiwiVXBkYXRlUXVlcnkiLCJkZWxldGUiLCJEZWxldGVRdWVyeSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvVGFibGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4vRG9jdW1lbnRDbGllbnQnO1xuaW1wb3J0IHsgR2V0UXVlcnksIFB1dFF1ZXJ5LCBVcGRhdGVRdWVyeSB9IGZyb20gJy4vcXVlcmllcyc7XG5pbXBvcnQgRGVsZXRlUXVlcnkgZnJvbSAnLi9xdWVyaWVzL0RlbGV0ZVF1ZXJ5JztcbmltcG9ydCBUYWJsZUluZGV4LCB7XG4gIFRhYmxlSW5kZXhPcHRpb25zLFxuICBUYWJsZUluZGV4T3B0aW9uc0FyZyxcbiAgVGFibGVLZXksXG4gIFRhYmxlS2V5QXJncyxcbn0gZnJvbSAnLi9UYWJsZUluZGV4JztcblxuZXhwb3J0IHR5cGUgVGFibGVPcHRpb25zPEgsIFM+ID0gT21pdDxUYWJsZUluZGV4T3B0aW9uczxILCBTPiwgJ2luZGV4TmFtZSc+O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUYWJsZTxcbiAgVCBleHRlbmRzIEl0ZW0sXG4gIEggZXh0ZW5kcyBrZXlvZiBULFxuICBTIGV4dGVuZHMga2V5b2YgVCA9IG5ldmVyLFxuPiBleHRlbmRzIFRhYmxlSW5kZXg8VCwgSCwgUz4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICBvcHRzOiBUYWJsZU9wdGlvbnM8SCwgUz4gJiAoW1NdIGV4dGVuZHMgW25ldmVyXSA/IHt9IDogeyBzb3J0S2V5OiBTIH0pLFxuICApIHtcbiAgICBzdXBlcihvcHRzKTtcbiAgfVxuXG4gIHB1YmxpYyBpbmRleDxQIGV4dGVuZHMgUGFydGlhbDxUPiwgSCBleHRlbmRzIGtleW9mIFA+KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwcmltYXJ5S2V5OiBILFxuICApOiBUYWJsZUluZGV4PFAsIEgsIG5ldmVyPjtcbiAgcHVibGljIGluZGV4PFAgZXh0ZW5kcyBQYXJ0aWFsPFQ+LCBIIGV4dGVuZHMga2V5b2YgUCwgUyBleHRlbmRzIGtleW9mIFA+KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwcmltYXJ5S2V5OiBILFxuICAgIHNvcnRLZXk6IFMsXG4gICk6IFRhYmxlSW5kZXg8UCwgSCwgUz47XG4gIHB1YmxpYyBpbmRleDxcbiAgICBQIGV4dGVuZHMgUGFydGlhbDxUPixcbiAgICBIIGV4dGVuZHMga2V5b2YgUCxcbiAgICBTIGV4dGVuZHMga2V5b2YgUCA9IG5ldmVyLFxuICA+KG5hbWU6IHN0cmluZywgcHJpbWFyeUtleTogSCwgc29ydEtleT86IFMpOiBUYWJsZUluZGV4PFAsIEgsIFM+IHtcbiAgICByZXR1cm4gbmV3IFRhYmxlSW5kZXgoe1xuICAgICAgdGFibGVOYW1lOiB0aGlzLm5hbWUsXG4gICAgICBpbmRleE5hbWU6IG5hbWUsXG4gICAgICBwcmltYXJ5S2V5LFxuICAgICAgc29ydEtleSxcbiAgICAgIGRvY3VtZW50Q2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICB9IGFzIHVua25vd24gYXMgVGFibGVJbmRleE9wdGlvbnNBcmc8SCwgUz4pO1xuICB9XG5cbiAgcHVibGljIHB1dChpdGVtOiBUKTogUHV0UXVlcnk8VD4ge1xuICAgIHJldHVybiBuZXcgUHV0UXVlcnk8VD4odGhpcy5jbGllbnQsIHtcbiAgICAgIFRhYmxlTmFtZTogdGhpcy5uYW1lLFxuICAgICAgSXRlbTogaXRlbSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoLi4uYXJnczogVGFibGVLZXlBcmdzPFQsIEgsIFM+KTogR2V0UXVlcnk8VCwgVGFibGVLZXk8VCwgSCwgUz4+IHtcbiAgICByZXR1cm4gbmV3IEdldFF1ZXJ5KHRoaXMuY2xpZW50LCB7XG4gICAgICBUYWJsZU5hbWU6IHRoaXMubmFtZSxcbiAgICAgIEtleTogdGhpcy5rZXkoLi4uYXJncyksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKFxuICAgIC4uLmFyZ3M6IFRhYmxlS2V5QXJnczxULCBILCBTPlxuICApOiBVcGRhdGVRdWVyeTxULCBUYWJsZUtleTxULCBILCBTPj4ge1xuICAgIHJldHVybiBuZXcgVXBkYXRlUXVlcnkodGhpcy5jbGllbnQsIHtcbiAgICAgIFRhYmxlTmFtZTogdGhpcy5uYW1lLFxuICAgICAgS2V5OiB0aGlzLmtleSguLi5hcmdzKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoXG4gICAgLi4uYXJnczogVGFibGVLZXlBcmdzPFQsIEgsIFM+XG4gICk6IERlbGV0ZVF1ZXJ5PFQsIFRhYmxlS2V5PFQsIEgsIFM+PiB7XG4gICAgcmV0dXJuIG5ldyBEZWxldGVRdWVyeSh0aGlzLmNsaWVudCwge1xuICAgICAgVGFibGVOYW1lOiB0aGlzLm5hbWUsXG4gICAgICBLZXk6IHRoaXMua2V5KC4uLmFyZ3MpLFxuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFLc0IsU0FBQUUsdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFJUCxNQUFNRyxLQUFLLFNBSWhCQyxtQkFBVSxDQUFVO0VBQ3JCQyxXQUFXQTtFQUNoQjtFQUNBQyxJQUFzRSxFQUN0RTtJQUNBLEtBQUssQ0FBQ0EsSUFBSSxDQUFDO0VBQ2I7RUFXT0MsS0FBS0EsQ0FJVkMsSUFBWSxFQUFFQyxVQUFhLEVBQUVDLE9BQVcsRUFBdUI7SUFDL0QsT0FBTyxJQUFJTixtQkFBVSxDQUFDO01BQ3BCTyxTQUFTLEVBQUUsSUFBSSxDQUFDSCxJQUFJO01BQ3BCSSxTQUFTLEVBQUVKLElBQUk7TUFDZkMsVUFBVTtNQUNWQyxPQUFPO01BQ1BHLGNBQWMsRUFBRSxJQUFJLENBQUNDO0lBQ3ZCLENBQUMsQ0FBMEM7RUFDN0M7RUFFT0MsR0FBR0EsQ0FBQ0MsSUFBTyxFQUFlO0lBQy9CLE9BQU8sSUFBSUMsaUJBQVEsQ0FBSSxJQUFJLENBQUNILE1BQU0sRUFBRTtNQUNsQ0ksU0FBUyxFQUFFLElBQUksQ0FBQ1YsSUFBSTtNQUNwQlcsSUFBSSxFQUFFSDtJQUNSLENBQUMsQ0FBQztFQUNKO0VBRU9JLEdBQUdBLENBQUMsR0FBR0MsSUFBMkIsRUFBa0M7SUFDekUsT0FBTyxJQUFJQyxpQkFBUSxDQUFDLElBQUksQ0FBQ1IsTUFBTSxFQUFFO01BQy9CSSxTQUFTLEVBQUUsSUFBSSxDQUFDVixJQUFJO01BQ3BCZSxHQUFHLEVBQUUsSUFBSSxDQUFDQyxHQUFHLENBQUMsR0FBR0gsSUFBSTtJQUN2QixDQUFDLENBQUM7RUFDSjtFQUVPSSxNQUFNQSxDQUNYLEdBQUdKLElBQTJCLEVBQ0s7SUFDbkMsT0FBTyxJQUFJSyxvQkFBVyxDQUFDLElBQUksQ0FBQ1osTUFBTSxFQUFFO01BQ2xDSSxTQUFTLEVBQUUsSUFBSSxDQUFDVixJQUFJO01BQ3BCZSxHQUFHLEVBQUUsSUFBSSxDQUFDQyxHQUFHLENBQUMsR0FBR0gsSUFBSTtJQUN2QixDQUFDLENBQUM7RUFDSjtFQUVPTSxNQUFNQSxDQUNYLEdBQUdOLElBQTJCLEVBQ0s7SUFDbkMsT0FBTyxJQUFJTyxvQkFBVyxDQUFDLElBQUksQ0FBQ2QsTUFBTSxFQUFFO01BQ2xDSSxTQUFTLEVBQUUsSUFBSSxDQUFDVixJQUFJO01BQ3BCZSxHQUFHLEVBQUUsSUFBSSxDQUFDQyxHQUFHLENBQUMsR0FBR0gsSUFBSTtJQUN2QixDQUFDLENBQUM7RUFDSjtBQUNGO0FBQUNRLE9BQUEsQ0FBQTNCLE9BQUEsR0FBQUMsS0FBQSJ9