@bitblit/ratchet-aws
Version:
Common tools for use with AWS browser and node
25 lines (24 loc) • 2.4 kB
TypeScript
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>;
}