diff --git a/definitions/npm/promise-limit_v2.x.x/flow_v0.25.x-/promise-limit_v2.x.x.js b/definitions/npm/promise-limit_v2.x.x/flow_v0.25.x-/promise-limit_v2.x.x.js new file mode 100644 index 0000000000..a6347acc16 --- /dev/null +++ b/definitions/npm/promise-limit_v2.x.x/flow_v0.25.x-/promise-limit_v2.x.x.js @@ -0,0 +1,21 @@ +/** + * Flow libdef for 'promise-limit' + * See https://www.npmjs.com/package/promise-limit + * by Vincent Driessen, 2019-01-04 + */ + +declare module 'promise-limit' { + declare type limit = limitFunc & limitInterface; + declare type limitFunc = (fn: () => Promise) => Promise; + declare interface limitInterface { + map( + items: $ReadOnlyArray, + mapper: (value: T) => Promise, + ): Promise>; + queue: number; + } + + declare export default function limitFactory( + concurrency?: number, + ): limit; +} diff --git a/definitions/npm/promise-limit_v2.x.x/test_promise-limit_v2.x.x.js b/definitions/npm/promise-limit_v2.x.x/test_promise-limit_v2.x.x.js new file mode 100644 index 0000000000..8fd93fbdd8 --- /dev/null +++ b/definitions/npm/promise-limit_v2.x.x/test_promise-limit_v2.x.x.js @@ -0,0 +1,21 @@ +// @flow strict + +import { describe, it } from "flow-typed-test"; +import limit from "promise-limit"; + +describe("promise-limit", () => { + it("errors", () => { + // $ExpectError + limit(""); + }); + + it("works", () => { + const limiter = limit(3); + + function dosomething_(): Promise { + return Promise.resolve("hi"); + } + const dosomething = () => limiter(() => dosomething_()); + (dosomething: () => Promise); + }); +});