UNPKG

dynamodb-toolbox

Version:

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

44 lines (43 loc) 2.32 kB
import { EntityConditionParser } from '../../../../entity/actions/parseCondition/index.js'; import { parseCapacityOption } from '../../../../options/capacity.js'; import { parseMetricsOption } from '../../../../options/metrics.js'; import { rejectExtraOptions } from '../../../../options/rejectExtraOptions.js'; import { parseReturnValuesOption } from '../../../../options/returnValues.js'; import { parseReturnValuesOnConditionFalseOption } from '../../../../options/returnValuesOnConditionFalse.js'; import { parseTableNameOption } from '../../../../options/tableName.js'; import { isEmpty } from '../../../../utils/isEmpty.js'; import { deleteItemCommandReturnValuesOptionsSet } from '../options.js'; export const parseDeleteItemOptions = (entity, deleteItemOptions) => { const commandOptions = {}; const { capacity, metrics, returnValues, returnValuesOnConditionFalse, condition, tableName, ...extraOptions } = deleteItemOptions; rejectExtraOptions(extraOptions); if (capacity !== undefined) { commandOptions.ReturnConsumedCapacity = parseCapacityOption(capacity); } if (metrics !== undefined) { commandOptions.ReturnItemCollectionMetrics = parseMetricsOption(metrics); } if (returnValues !== undefined) { commandOptions.ReturnValues = parseReturnValuesOption(deleteItemCommandReturnValuesOptionsSet, returnValues); } if (returnValuesOnConditionFalse !== undefined) { commandOptions.ReturnValuesOnConditionCheckFailure = parseReturnValuesOnConditionFalseOption(returnValuesOnConditionFalse); } if (condition !== undefined) { const { ExpressionAttributeNames, ExpressionAttributeValues, ConditionExpression } = entity .build(EntityConditionParser) .parse(condition); if (!isEmpty(ExpressionAttributeNames)) { commandOptions.ExpressionAttributeNames = ExpressionAttributeNames; } if (!isEmpty(ExpressionAttributeValues)) { commandOptions.ExpressionAttributeValues = ExpressionAttributeValues; } commandOptions.ConditionExpression = ConditionExpression; } if (tableName !== undefined) { // tableName is a meta-option, validated but not used here parseTableNameOption(tableName); } return commandOptions; };