dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
33 lines (32 loc) • 1.72 kB
JavaScript
;
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;