UNPKG

dynamodb-toolbox

Version:

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

48 lines (47 loc) 2.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseDeleteItemOptions = 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 isEmpty_js_1 = require("../../../../utils/isEmpty.js"); const options_js_1 = require("../options.js"); const parseDeleteItemOptions = (entity, deleteItemOptions) => { const commandOptions = {}; const { capacity, metrics, returnValues, returnValuesOnConditionFalse, condition, tableName, ...extraOptions } = deleteItemOptions; (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.deleteItemCommandReturnValuesOptionsSet, 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); if (!(0, isEmpty_js_1.isEmpty)(ExpressionAttributeNames)) { commandOptions.ExpressionAttributeNames = ExpressionAttributeNames; } if (!(0, isEmpty_js_1.isEmpty)(ExpressionAttributeValues)) { 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.parseDeleteItemOptions = parseDeleteItemOptions;