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