aboutsummaryrefslogtreecommitdiff
path: root/node_modules/p-locate/index.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/p-locate/index.d.ts')
-rw-r--r--node_modules/p-locate/index.d.ts64
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;