UNPKG

dynamodb-toolbox

Version:

Lightweight and type-safe query builder for DynamoDB and TypeScript.

33 lines (32 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseOptions = void 0; const index_js_1 = require("../../../entity/actions/parseCondition/index.js"); const rejectExtraOptions_js_1 = require("../../../options/rejectExtraOptions.js"); const returnValuesOnConditionFalse_js_1 = require("../../../options/returnValuesOnConditionFalse.js"); const tableName_js_1 = require("../../../options/tableName.js"); const isEmpty_js_1 = require("../../../utils/isEmpty.js"); const parseOptions = (entity, condition, options = {}) => { const { returnValuesOnConditionFalse, tableName, ...extraOptions } = options; (0, rejectExtraOptions_js_1.rejectExtraOptions)(extraOptions); const { ExpressionAttributeNames, ExpressionAttributeValues, ConditionExpression } = entity .build(index_js_1.EntityConditionParser) .parse(condition); const transactionOptions = { ConditionExpression }; if (!(0, isEmpty_js_1.isEmpty)(ExpressionAttributeNames)) { transactionOptions.ExpressionAttributeNames = ExpressionAttributeNames; } if (!(0, isEmpty_js_1.isEmpty)(ExpressionAttributeValues)) { transactionOptions.ExpressionAttributeValues = ExpressionAttributeValues; } if (returnValuesOnConditionFalse !== undefined) { transactionOptions.ReturnValuesOnConditionCheckFailure = (0, returnValuesOnConditionFalse_js_1.parseReturnValuesOnConditionFalseOption)(returnValuesOnConditionFalse); } if (tableName !== undefined) { // tableName is a meta-option, validated but not used here (0, tableName_js_1.parseTableNameOption)(tableName); } return transactionOptions; }; exports.parseOptions = parseOptions;