Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 1x 1x 2x 2x 2x 3x 3x 3x 3x 3x 2x 2x | import { DynamoAttributeValue } from "@aws-cdk/aws-stepfunctions-tasks"; import { refCounter } from "./counter"; export interface ExpressionAggregate { /** * Built expression that contains calculated placeholders. */ readonly expression: string; /** * attribute values that used to substitute expression's placeholders by DynamoDB. */ readonly expressionAttributeValues: { [key: string]: DynamoAttributeValue }; } /** * Builds an expression and expression attribute values from template string. */ export const dynamoExpr = ( literals: TemplateStringsArray, ...placeholers: DynamoAttributeValue[] ): ExpressionAggregate => { let expression = ""; const expressionAttributeValues: { [key: string]: DynamoAttributeValue } = {}; placeholers.forEach((pv, idx) => { const { value } = refCounter.next(); const ref = `:v${value}`; expression += literals[idx]; expression += ref; expressionAttributeValues[ref] = pv; }); expression += literals[literals.length - 1]; return { expression, expressionAttributeValues }; }; |