p-locate
Advanced tools
Comparing version 4.0.0 to 4.1.0
@@ -1,30 +0,64 @@ | ||
export interface Options { | ||
/** | ||
* Number of concurrently pending promises returned by `tester`. Minimum: `1`. | ||
* | ||
* @default Infinity | ||
*/ | ||
readonly concurrency?: number; | ||
declare namespace pLocate { | ||
interface Options { | ||
/** | ||
Number of concurrently pending promises returned by `tester`. Minimum: `1`. | ||
/** | ||
* Preserve `input` order when searching. | ||
* | ||
* Disable this to improve performance if you don't care about the order. | ||
* | ||
* @default true | ||
*/ | ||
readonly preserveOrder?: boolean; | ||
@default Infinity | ||
*/ | ||
readonly concurrency?: number; | ||
/** | ||
Preserve `input` order when searching. | ||
Disable this to improve performance if you don't care about the order. | ||
@default true | ||
*/ | ||
readonly preserveOrder?: boolean; | ||
} | ||
} | ||
/** | ||
* Get the first fulfilled promise that satisfies the provided testing function. | ||
* | ||
* @param input - An iterable of promises/values to test. | ||
* @param tester - This function will receive resolved values from `input` and is expected to return a `Promise<boolean>` or `boolean`. | ||
* @returns A `Promise` that is fulfilled when `tester` resolves to `true` or the iterable is done, or rejects if any of the promises reject. The fulfilled value is the current iterable value or `undefined` if `tester` never resolved to `true`. | ||
*/ | ||
export default function pLocate<ValueType>( | ||
input: Iterable<PromiseLike<ValueType> | ValueType>, | ||
tester: (element: ValueType) => PromiseLike<boolean> | boolean, | ||
options?: Options | ||
): Promise<ValueType | undefined>; | ||
declare const pLocate: { | ||
/** | ||
Get the first fulfilled promise that satisfies the provided testing function. | ||
@param input - An iterable of promises/values to test. | ||
@param tester - This function will receive resolved values from `input` and is expected to return a `Promise<boolean>` or `boolean`. | ||
@returns A `Promise` that is fulfilled when `tester` resolves to `true` or the iterable is done, or rejects if any of the promises reject. The fulfilled value is the current iterable value or `undefined` if `tester` never resolved to `true`. | ||
@example | ||
``` | ||
import pathExists = require('path-exists'); | ||
import pLocate = require('p-locate'); | ||
const files = [ | ||
'unicorn.png', | ||
'rainbow.png', // Only this one actually exists on disk | ||
'pony.png' | ||
]; | ||
(async () => { | ||
const foundPath = await pLocate(files, file => pathExists(file)); | ||
console.log(foundPath); | ||
//=> 'rainbow' | ||
})(); | ||
``` | ||
*/ | ||
<ValueType>( | ||
input: Iterable<PromiseLike<ValueType> | ValueType>, | ||
tester: (element: ValueType) => PromiseLike<boolean> | boolean, | ||
options?: pLocate.Options | ||
): Promise<ValueType | undefined>; | ||
// TODO: Remove this for the next major release, refactor the whole definition to: | ||
// declare function pLocate<ValueType>( | ||
// input: Iterable<PromiseLike<ValueType> | ValueType>, | ||
// tester: (element: ValueType) => PromiseLike<boolean> | boolean, | ||
// options?: pLocate.Options | ||
// ): Promise<ValueType | undefined>; | ||
// export = pLocate; | ||
default: typeof pLocate; | ||
}; | ||
export = pLocate; |
@@ -51,2 +51,3 @@ 'use strict'; | ||
module.exports = pLocate; | ||
// TODO: Remove this for the next major release | ||
module.exports.default = pLocate; |
{ | ||
"name": "p-locate", | ||
"version": "4.0.0", | ||
"version": "4.1.0", | ||
"description": "Get the first fulfilled promise that satisfies the provided testing function", | ||
@@ -16,3 +16,3 @@ "license": "MIT", | ||
"scripts": { | ||
"test": "xo && ava && tsd-check" | ||
"test": "xo && ava && tsd" | ||
}, | ||
@@ -44,12 +44,12 @@ "files": [ | ||
"dependencies": { | ||
"p-limit": "^2.0.0" | ||
"p-limit": "^2.2.0" | ||
}, | ||
"devDependencies": { | ||
"ava": "^1.3.1", | ||
"ava": "^1.4.1", | ||
"delay": "^4.1.0", | ||
"in-range": "^1.0.0", | ||
"time-span": "^3.0.0", | ||
"tsd-check": "^0.3.0", | ||
"tsd": "^0.7.2", | ||
"xo": "^0.24.0" | ||
} | ||
} |
7285
93
Updatedp-limit@^2.2.0