diff options
Diffstat (limited to 'node_modules/p-locate/index.d.ts')
-rw-r--r-- | node_modules/p-locate/index.d.ts | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/node_modules/p-locate/index.d.ts b/node_modules/p-locate/index.d.ts new file mode 100644 index 0000000..14115e1 --- /dev/null +++ b/node_modules/p-locate/index.d.ts @@ -0,0 +1,64 @@ +declare namespace pLocate { + interface Options { + /** + Number of concurrently pending promises returned by `tester`. Minimum: `1`. + + @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; + } +} + +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; |