@qso-soft/shared
Version:
Shared library for QSO-soft
29 lines (28 loc) • 1.34 kB
TypeScript
import type { LoggerData, LoggerType } from '../../logger';
type Callback<T> = (batch: T) => Promise<unknown>;
export declare const chunkArray: <T>(array: T[], size: number) => T[][];
interface ProcessBatchesWithInterval<T> {
chunks: T[];
interval: number;
callback: Callback<T>;
logTemplate?: LoggerData;
logger?: LoggerType;
}
export declare const processBatchesWithInterval: <T>({ chunks, interval, callback, logTemplate, logger, }: ProcessBatchesWithInterval<T>) => Promise<void>;
export interface ProcessChunksProps<T> {
retryCount: number;
delayBetweenRetries: number;
callback: Callback<T>;
logTemplate?: LoggerData;
logger?: LoggerType;
}
export interface ProcessChunkWithRetryProps<T> extends ProcessChunksProps<T> {
chunk: T[];
}
export declare const processChunkWithRetry: <T>({ chunk, retryCount, delayBetweenRetries, callback, logTemplate, logger, }: ProcessChunkWithRetryProps<T>) => Promise<PromiseSettledResult<unknown>[]>;
export interface ProcessChunksWithDelayAndRetryProps<T> extends ProcessChunksProps<T> {
chunks: T[][];
delayBetweenChunks: number;
}
export declare const processChunksWithDelayAndRetry: <T>({ chunks, delayBetweenChunks, logTemplate, logger, ...rest }: ProcessChunksWithDelayAndRetryProps<T>) => Promise<PromiseSettledResult<unknown>[]>;
export {};