mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
Add type definitions for tiny-async-pool (#29373)
This commit is contained in:
parent
b2c9fc89f9
commit
ef23f9bd41
29
types/tiny-async-pool/index.d.ts
vendored
Normal file
29
types/tiny-async-pool/index.d.ts
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
// Type definitions for tiny-async-pool 1.0
|
||||
// Project: https://github.com/rxaviers/async-pool#readme
|
||||
// Definitions by: Karl-Philipp Wulfert <https://github.com/krlwlfrt>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/**
|
||||
* This declaration specifies that the function is the exported object from the file
|
||||
*/
|
||||
export = asyncPool;
|
||||
|
||||
/**
|
||||
* Runs multiple promise-returning & async functions in a limited concurrency pool.
|
||||
* It rejects immediately as soon as one of the promises rejects.
|
||||
* It resolves when all the promises completes.
|
||||
* It calls the iterator function as soon as possible (under concurrency limit).
|
||||
*
|
||||
* @param poolLimit The pool limit number (>= 1).
|
||||
* @param array Input array.
|
||||
* @param iteratorFn Iterator function that takes two arguments (array item and the array itself).
|
||||
* The iterator function should either return a promise or be an async function.
|
||||
*
|
||||
* @template IN Type of the input array
|
||||
* @template OUT Type of the resolves of the promises
|
||||
*/
|
||||
declare function asyncPool<IN, OUT>(
|
||||
poolLimit: number,
|
||||
array: ReadonlyArray<IN>,
|
||||
iteratorFn: (generator: IN) => Promise<OUT>
|
||||
): Promise<OUT[]>;
|
||||
13
types/tiny-async-pool/tiny-async-pool-tests.ts
Normal file
13
types/tiny-async-pool/tiny-async-pool-tests.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import asyncPool = require('tiny-async-pool');
|
||||
|
||||
const expected = JSON.stringify(['A', 'B', 'C']);
|
||||
|
||||
asyncPool(5, ['a', 'b', 'c'], (value) => {
|
||||
return new Promise((resolve) => {
|
||||
resolve(value.toUpperCase);
|
||||
});
|
||||
}).then((results) => {
|
||||
if (JSON.stringify(results) !== expected) {
|
||||
throw new Error('Result is not equal to expected result!');
|
||||
}
|
||||
});
|
||||
23
types/tiny-async-pool/tsconfig.json
Normal file
23
types/tiny-async-pool/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"tiny-async-pool-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/tiny-async-pool/tslint.json
Normal file
1
types/tiny-async-pool/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Loading…
Reference in New Issue
Block a user