UNPKG

@salto-io/da-playa

Version:

Deploy locks management (CLI and Slackbot)

67 lines 2.28 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Data = void 0; const dynamodb_1 = __importDefault(require("dynamodb")); const Data = ({ model, modelName, dynamoDBRegion, dynamoDbUri, }) => { if (dynamoDBRegion || dynamoDbUri) { dynamodb_1.default.AWS.config.update({ ...(dynamoDBRegion ? { region: dynamoDBRegion, } : {}), ...(dynamoDbUri ? { endpoint: dynamoDbUri, } : {}), }); } const Model = dynamodb_1.default.define(modelName, model); return { get: ({ filterExpression, filterAttributeNames, filterAttributeValues, }) => new Promise((resolve, reject) => { Model.scan() .filterExpression(filterExpression) .expressionAttributeValues(filterAttributeValues) .expressionAttributeNames(filterAttributeNames) .exec((err, result) => { if (err) { reject(err); } else { resolve(result.Items.map((x) => x.attrs)); } }); }), set: updateParams => new Promise((resolve, reject) => { Model.update(updateParams, (err, result) => { if (err) { reject(err); } else { resolve(result.attrs); } }); }), create: async (createParams) => { const newItem = new Model(createParams); const created = await newItem.save(); return created.attrs; }, init: async () => { try { await dynamodb_1.default.createTables(); } catch (e) { // eslint-disable-next-line no-console console.error('failed to create da playa tables', e); throw e; } }, }; }; exports.Data = Data; //# sourceMappingURL=index.js.map