@bitblit/ratchet-aws
Version:
Common tools for use with AWS browser and node
35 lines (34 loc) • 3.29 kB
TypeScript
import { DeleteCommandOutput, DynamoDBDocumentClient, PutCommandOutput, QueryCommandInput, QueryCommandOutput, ScanCommandInput, ScanCommandOutput } from '@aws-sdk/lib-dynamodb';
import { DynamoCountResult } from '../model/dynamo-count-result.js';
import { DynamoRatchetLike } from './dynamo-ratchet-like.js';
export declare class DynamoRatchet implements DynamoRatchetLike {
private awsDDB;
constructor(awsDDB: DynamoDBDocumentClient);
get dynamoDBDocumentClient(): DynamoDBDocumentClient;
getDDB(): DynamoDBDocumentClient;
tableIsEmpty(tableName: string): Promise<boolean>;
scanPromise(input: ScanCommandInput): Promise<ScanCommandOutput>;
queryPromise(input: QueryCommandInput): Promise<QueryCommandOutput>;
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: Record<string, any>[], batchSize: number): Promise<T[]>;
deleteAllInBatches(tableName: string, keys: Record<string, any>[], batchSize: number): Promise<number>;
simplePut(tableName: string, value: Record<string, any>, autoRetryCount?: number): Promise<PutCommandOutput>;
simplePutOnlyIfFieldIsNullOrUndefined(tableName: string, value: Record<string, 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: Record<string, any>, autoRetryCount?: number): Promise<T>;
static objectIsErrorWithProvisionedThroughputExceededExceptionCode(err: Record<string, any>): boolean;
simpleGetWithCounterDecrement<T>(tableName: string, keys: Record<string, any>, counterAttributeName: string, deleteOnZero: boolean, autoRetryCount?: number): Promise<T>;
simpleDelete(tableName: string, keys: Record<string, any>): Promise<DeleteCommandOutput>;
atomicCounter(tableName: string, keys: Record<string, any>, counterFieldName: string, increment?: number): Promise<number>;
static cleanObject(ob: Record<string, any>): void;
static stripToKeysOnly(input: Record<string, any>, keysNames: string[]): Record<string, any>;
static stripAllToKeysOnly(input: Record<string, any>[], keys: string[]): Record<string, any>[];
}