UNPKG

ddb-table

Version:

Strongly typed library for querying and modeling DynamoDB documents.

21 lines (20 loc) 1.34 kB
import ExpressionAttributeNames from './ExpressionAttributeNames'; import ExpressionAttributeValues from './ExpressionAttributeValues'; export type Operand = '+' | '-'; export type ValueFn<T, V> = V | ((exp: UpdateValueExpression<T, V>) => string); export type ListValue<V> = [V] extends [unknown[]] ? V : never; export default class UpdateValueExpression<T, V> { private names; private values; private pathName; private valueKey; constructor(names: ExpressionAttributeNames<T>, values: ExpressionAttributeValues, pathName: string, valueKey: string); name<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5], K7 extends keyof T[K1][K2][K3][K4][K5][K6], K8 extends keyof T[K1][K2][K3][K4][K5][K6][K7]>(...path: [K1, K2?, K3?, K4?, K5?, K6?, K7?, K8?, ...(string | number)[]]): string; value(value: V): string; inc(a: ValueFn<T, V>, b?: ValueFn<T, V>): string; dec(a: ValueFn<T, V>, b?: ValueFn<T, V>): string; operand(operand: Operand, a: ValueFn<T, V>, b?: ValueFn<T, V>): string; listAppend(list1: ValueFn<T, ListValue<V>>, list2?: ValueFn<T, ListValue<V>>): string; ifNotExists(value: ValueFn<T, V>): string; protected calcValueFn(value: ValueFn<T, V>): string; }