dynamodb-turbine
Version:
Entity mapping and query library for DynamoDB
64 lines (63 loc) • 2.4 kB
JavaScript
;
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;