UNPKG

dynamodb-turbine

Version:

Entity mapping and query library for DynamoDB

64 lines (63 loc) 2.4 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.defineTable = void 0; var client_dynamodb_1 = require("@aws-sdk/client-dynamodb"); var lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb"); var error_1 = require("./error"); var defineTable = function (definition) { var _a; var client; if (definition.documentClient) { client = definition.documentClient; } else { client = lib_dynamodb_1.DynamoDBDocumentClient.from(new client_dynamodb_1.DynamoDBClient(), { marshallOptions: { convertEmptyValues: true, removeUndefinedValues: true, }, }); } if (!definition.name) { throw new error_1.TurbineError("Table name is required"); } if (!((_a = definition.indexes) === null || _a === void 0 ? void 0 : _a.table)) { throw new error_1.TurbineError("Specify at least one index called 'table'"); } var put = function (params) { return client.send(new lib_dynamodb_1.PutCommand(__assign(__assign({}, params), { TableName: definition.name }))); }; var update = function (params) { return client.send(new lib_dynamodb_1.UpdateCommand(__assign(__assign({}, params), { TableName: definition.name }))); }; var get = function (params) { return client.send(new lib_dynamodb_1.GetCommand(__assign(__assign({}, params), { TableName: definition.name }))); }; var deleteItem = function (params) { return client.send(new lib_dynamodb_1.DeleteCommand(__assign(__assign({}, params), { TableName: definition.name }))); }; var query = function (params) { return client.send(new lib_dynamodb_1.QueryCommand(__assign(__assign({}, params), { TableName: definition.name }))); }; return { client: client, definition: definition, put: put, update: update, get: get, delete: deleteItem, query: query, }; }; exports.defineTable = defineTable;