@kitiumai/utils-ts
Version:
Comprehensive TypeScript utilities for KitiumAI projects
68 lines • 2 kB
TypeScript
/**
* Async/Promise utility functions
*/
/**
* Sleep for specified milliseconds
*/
export declare function sleep(ms: number): Promise<void>;
/**
* Retry options
*/
export interface RetryOptions {
retries?: number;
delay?: number;
backoff?: number;
onRetry?: (error: Error, attempt: number) => void;
}
/**
* Retry async function with exponential backoff
*/
export declare function retry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T>;
/**
* Add timeout to promise
*/
export declare function timeout<T>(promise: Promise<T>, ms: number, message?: string): Promise<T>;
/**
* Run promises in parallel
*/
export declare function parallel<T>(fns: Array<() => Promise<T>>): Promise<T[]>;
/**
* Run promises in series (one after another)
*/
export declare function series<T>(fns: Array<() => Promise<T>>): Promise<T[]>;
/**
* Run async function with concurrency limit
*/
export declare function concurrency<T, R>(items: T[], fn: (item: T) => Promise<R>, limit: number): Promise<R[]>;
/**
* Promisify callback-based function
*/
export declare function promisify<TArgs extends unknown[], R>(fn: (...args: [...TArgs, (error: Error | null, result?: R) => void]) => void): (...args: TArgs) => Promise<R>;
/**
* Wrap promise to never reject
*/
export declare function settled<T>(promise: Promise<T>): Promise<{
success: true;
value: T;
} | {
success: false;
error: Error;
}>;
/**
* Race promises, return first to complete (success or failure)
*/
export declare function race<T>(promises: Array<Promise<T>>): Promise<T>;
/**
* Wait for all promises to settle (fulfilled or rejected)
*/
export declare function allSettled<T>(promises: Array<Promise<T>>): Promise<Array<PromiseSettledResult<T>>>;
/**
* Defer promise creation
*/
export interface Deferred<T> {
promise: Promise<T>;
resolve: (value: T) => void;
reject: (error: Error) => void;
}
export declare function deferred<T>(): Deferred<T>;
//# sourceMappingURL=async.d.ts.map