export function callbackToPromise()

in src/common-core/promise_utils.ts [72:94]


export function callbackToPromise<TResult>(callBackOperation: (callback: Callback<TResult>) => void, userCallback?: Callback<TResult>): Promise<TResult> | void {
  if (userCallback) {
    if (!(typeof userCallback === 'function')) {
      throw new TypeError('Callback has to be a Function');
    }

    return callBackOperation(userCallback);
  }

  return new Promise<TResult>((resolve, reject) => {
    try {
      callBackOperation((error, result) => {
        if (error) {
          return reject(error);
        }

        return resolve(result);
      });
    } catch (error) {
      reject(error);
    }
  });
}