setup-kubectl/node_modules/throat/index.d.ts
github-actions[bot] 7ad2aa66bb
Add node modules and new code for release (#39)
Co-authored-by: tbarnes94 <tbarnes94@users.noreply.github.com>
2022-01-05 11:26:06 -05:00

32 lines
1,003 B
TypeScript

/**
* Throttle the given function to only run `size` times in parallel.
* Extra calls will be queued until one of the earlier calls completes.
*/
declare function throat<TResult, TArgs extends any[]>(
size: number,
fn: (...args: TArgs) => Promise<TResult>
): (...args: TArgs) => Promise<TResult>;
/**
* Throttle the given function to only run `size` times in parallel.
* Extra calls will be queued until one of the earlier calls completes.
*/
declare function throat<TResult, TArgs extends any[]>(
fn: (...args: TArgs) => Promise<TResult>,
size: number
): (...args: TArgs) => Promise<TResult>;
/**
* Create a throttle that only allows `size` calls in parallel.
* Extra calls will be queued until one of the earlier calls completes.
*
* To create an exclusive lock, just use a `size` of `1`.
*/
declare function throat(
size: number
): <TResult, TArgs extends any[] = []>(
fn: (...args: TArgs) => Promise<TResult>,
...args: TArgs
) => Promise<TResult>;
export default throat;