-function promisify2<T, U, A> (func: (arg1: T, arg2: U, cb: (err: any, result: A) => void) => void): (arg1: T, arg2: U) => Promise<A> {
- return function promisified (arg1: T, arg2: U): Promise<A> {
- return new Promise<A>((resolve: (arg: A) => void, reject: (err: any) => void) => {
- func.apply(null, [ arg1, arg2, (err: any, res: A) => err ? reject(err) : resolve(res) ])
- })
- }
-}