-
-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor TypeScript definition to CommonJS compatible export (#4)
- Loading branch information
1 parent
4426473
commit bab16dd
Showing
4 changed files
with
68 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,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; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters