UNPKG

@bitblit/ratchet-aws

Version:

Common tools for use with AWS browser and node

25 lines (24 loc) 2.4 kB
import { DynamoCountResult } from '../model/dynamo-count-result.js'; import { DeleteCommandOutput, DynamoDBDocumentClient, PutCommandOutput, QueryCommandInput, ScanCommandInput } from '@aws-sdk/lib-dynamodb'; export interface DynamoRatchetLike { getDDB(): DynamoDBDocumentClient; tableIsEmpty(tableName: string): Promise<boolean>; throughputSafeScanOrQuery<T, R>(proc: (T: any) => Promise<R>, input: T, maxTries?: number, inCurrentTry?: number): Promise<R>; fullyExecuteQueryCount(qry: QueryCommandInput, delayMS?: number): Promise<DynamoCountResult>; fullyExecuteQuery<T>(qry: QueryCommandInput, delayMS?: number, softLimit?: number): Promise<T[]>; fullyExecuteProcessOverQuery<T>(qry: QueryCommandInput, proc: (val: T) => Promise<void>, delayMS?: number, softLimit?: number): Promise<number>; fullyExecuteScanCount(scan: ScanCommandInput, delayMS?: number): Promise<DynamoCountResult>; fullyExecuteScan<T>(scan: ScanCommandInput, delayMS?: number, softLimit?: number): Promise<T[]>; fullyExecuteProcessOverScan<T>(scan: ScanCommandInput, proc: (val: T) => Promise<void>, delayMS?: number, softLimit?: number): Promise<number>; writeAllInBatches<T>(tableName: string, elements: T[], batchSize: number): Promise<number>; fetchFullObjectsMatchingKeysOnlyIndexQuery<T>(qry: QueryCommandInput, keyNames: string[], batchSize?: number): Promise<T[]>; fetchAllInBatches<T>(tableName: string, inKeys: any[], batchSize: number): Promise<T[]>; deleteAllInBatches(tableName: string, keys: any[], batchSize: number): Promise<number>; simplePut(tableName: string, value: any, autoRetryCount?: number): Promise<PutCommandOutput>; simplePutOnlyIfFieldIsNullOrUndefined(tableName: string, value: any, fieldName: string): Promise<boolean>; simplePutWithCollisionAvoidance<T>(tableName: string, value: T, keyNames: string[], adjustFunction: (val: T) => T, maxAdjusts?: number, autoRetryCount?: number): Promise<T>; simpleGet<T>(tableName: string, keys: any, autoRetryCount?: number): Promise<T>; simpleGetWithCounterDecrement<T>(tableName: string, keys: any, counterAttributeName: string, deleteOnZero: boolean, autoRetryCount?: number): Promise<T>; simpleDelete(tableName: string, keys: any): Promise<DeleteCommandOutput>; atomicCounter(tableName: string, keys: any, counterFieldName: string, increment?: number): Promise<number>; }