UNPKG

ddb-table

Version:

Strongly typed library for querying and modeling DynamoDB documents.

50 lines (49 loc) 6.44 kB
"use strict"; 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