UNPKG

dynamodb-toolbox

Version:

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

27 lines (26 loc) 1.4 kB
import { EntityConditionParser } from '../../../entity/actions/parseCondition/index.js'; import { rejectExtraOptions } from '../../../options/rejectExtraOptions.js'; import { parseReturnValuesOnConditionFalseOption } from '../../../options/returnValuesOnConditionFalse.js'; import { parseTableNameOption } from '../../../options/tableName.js'; export const parseOptions = (entity, options) => { const transactionOptions = {}; const { condition, returnValuesOnConditionFalse, tableName, ...extraOptions } = options; rejectExtraOptions(extraOptions); if (condition !== undefined) { const { ExpressionAttributeNames, ExpressionAttributeValues, ConditionExpression } = entity .build(EntityConditionParser) .parse(condition); transactionOptions.ExpressionAttributeNames = ExpressionAttributeNames; transactionOptions.ExpressionAttributeValues = ExpressionAttributeValues; transactionOptions.ConditionExpression = ConditionExpression; } if (returnValuesOnConditionFalse !== undefined) { transactionOptions.ReturnValuesOnConditionCheckFailure = parseReturnValuesOnConditionFalseOption(returnValuesOnConditionFalse); } if (tableName !== undefined) { // tableName is a meta-option, validated but not used here parseTableNameOption(tableName); } return transactionOptions; };