UNPKG

dynamodb-toolbox

Version:

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

32 lines (31 loc) 1.47 kB
import { EntityPathParser } from '../../../../entity/actions/parsePaths/index.js'; import { parseCapacityOption } from '../../../../options/capacity.js'; import { parseConsistentOption } from '../../../../options/consistent.js'; import { rejectExtraOptions } from '../../../../options/rejectExtraOptions.js'; import { parseTableNameOption } from '../../../../options/tableName.js'; import { isEmpty } from '../../../../utils/isEmpty.js'; export const parseGetItemOptions = (entity, getItemOptions) => { const commandOptions = {}; const { capacity, consistent, attributes, tableName, ...extraOptions } = getItemOptions; rejectExtraOptions(extraOptions); if (capacity !== undefined) { commandOptions.ReturnConsumedCapacity = parseCapacityOption(capacity); } if (consistent !== undefined) { commandOptions.ConsistentRead = parseConsistentOption(consistent); } if (attributes !== undefined) { const { ExpressionAttributeNames, ProjectionExpression } = entity .build(EntityPathParser) .parse(attributes); if (!isEmpty(ExpressionAttributeNames)) { commandOptions.ExpressionAttributeNames = ExpressionAttributeNames; } commandOptions.ProjectionExpression = ProjectionExpression; } if (tableName !== undefined) { // tableName is a meta-option, validated but not used here parseTableNameOption(tableName); } return commandOptions; };