UNPKG

rsxjs

Version:

Resilience Extensions for JS.

32 lines (31 loc) 1.08 kB
/** * @file src/pool/types.ts * @copyright 2018-present Karim Alibhai. All rights reserved. */ export interface PoolOptions { } export declare type PoolOptionsGiven = Partial<PoolOptions>; export declare function defaults(_?: PoolOptionsGiven): PoolOptions; export interface Worker { isAvailable(): boolean; } export declare function isWorkerAvailable<T extends Worker>(worker: T): boolean; export declare class GenericPool<T extends Worker> { private head?; private tail?; addWorker(worker: T): void; getExistingWorker(): T | void; } export declare class SyncPool<T extends Worker> extends GenericPool<T> { readonly it: Iterator<T>; readonly options: PoolOptions; constructor(it: Iterator<T>, options: PoolOptions); getWorker(): T; } export declare class AsyncPool<T extends Worker> extends GenericPool<T> { readonly it: AsyncIterator<T>; readonly options: PoolOptions; constructor(it: AsyncIterator<T>, options: PoolOptions); getWorker(): Promise<T>; } export declare type Pool<T extends Worker> = SyncPool<T> | AsyncPool<T>;