UNPKG

@qso-soft/shared

Version:

Shared library for QSO-soft

29 lines (28 loc) 1.34 kB
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 {};