dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
43 lines (42 loc) • 2.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseUpdateAttributesOptions = void 0;
const index_js_1 = require("../../../../entity/actions/parseCondition/index.js");
const capacity_js_1 = require("../../../../options/capacity.js");
const metrics_js_1 = require("../../../../options/metrics.js");
const rejectExtraOptions_js_1 = require("../../../../options/rejectExtraOptions.js");
const returnValues_js_1 = require("../../../../options/returnValues.js");
const returnValuesOnConditionFalse_js_1 = require("../../../../options/returnValuesOnConditionFalse.js");
const tableName_js_1 = require("../../../../options/tableName.js");
const options_js_1 = require("../options.js");
const parseUpdateAttributesOptions = (entity, updateItemOptions) => {
const commandOptions = {};
const { capacity, metrics, returnValues, returnValuesOnConditionFalse, condition, tableName, ...extraOptions } = updateItemOptions;
(0, rejectExtraOptions_js_1.rejectExtraOptions)(extraOptions);
if (capacity !== undefined) {
commandOptions.ReturnConsumedCapacity = (0, capacity_js_1.parseCapacityOption)(capacity);
}
if (metrics !== undefined) {
commandOptions.ReturnItemCollectionMetrics = (0, metrics_js_1.parseMetricsOption)(metrics);
}
if (returnValues !== undefined) {
commandOptions.ReturnValues = (0, returnValues_js_1.parseReturnValuesOption)(options_js_1.updateAttributesCommandReturnValuesOptionsSet, returnValues);
}
if (returnValuesOnConditionFalse !== undefined) {
commandOptions.ReturnValuesOnConditionCheckFailure = (0, returnValuesOnConditionFalse_js_1.parseReturnValuesOnConditionFalseOption)(returnValuesOnConditionFalse);
}
if (condition !== undefined) {
const { ExpressionAttributeNames, ExpressionAttributeValues, ConditionExpression } = entity
.build(index_js_1.EntityConditionParser)
.parse(condition);
commandOptions.ExpressionAttributeNames = ExpressionAttributeNames;
commandOptions.ExpressionAttributeValues = ExpressionAttributeValues;
commandOptions.ConditionExpression = ConditionExpression;
}
if (tableName !== undefined) {
// tableName is a meta-option, validated but not used here
(0, tableName_js_1.parseTableNameOption)(tableName);
}
return commandOptions;
};
exports.parseUpdateAttributesOptions = parseUpdateAttributesOptions;