diff options
Diffstat (limited to 'packages/utils/src/promisify.ts')
-rw-r--r-- | packages/utils/src/promisify.ts | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/packages/utils/src/promisify.ts b/packages/utils/src/promisify.ts deleted file mode 100644 index e82251a0f..000000000 --- a/packages/utils/src/promisify.ts +++ /dev/null @@ -1,19 +0,0 @@ -import * as _ from 'lodash'; - -/** - * Transforms callback-based function -- func(arg1, arg2 .. argN, callback) -- into an ES6-compatible Promise. - * Promisify provides a default callback of the form (error, result) and rejects when `error` is not null. You can also - * supply thisArg object as the second argument which will be passed to `apply`. - */ -// HACK: This can't be properly typed without variadic kinds https://github.com/Microsoft/TypeScript/issues/5453 -export function promisify<T>(originalFn: (...args: any[]) => void, thisArg?: any): (...callArgs: any[]) => Promise<T> { - const promisifiedFunction = async (...callArgs: any[]): Promise<T> => { - return new Promise<T>((resolve, reject) => { - const callback = (err: Error | null, data?: T) => { - _.isNull(err) || _.isUndefined(err) ? resolve(data) : reject(err); - }; - originalFn.apply(thisArg, [...callArgs, callback]); - }); - }; - return promisifiedFunction; -} |