export function promiseFromCallback()

in lib/common/utils/index.ts [23:54]


export function promiseFromCallback(
  fn: (callback: (err: Error, result: any) => void) => void,
): Promise<any> {
  return new Promise((resolve, reject) => {
    fn((err, result) => {
      if (err) {
        const error = err.message.split(": ");

        if (isClientError(err)) {
          reject({
            code: err["response"].status,
            name: error[1],
            message: error[3],
          });
        }
        if (isServerError(err)) {
          reject({
            code: err["response"].status,
            name: error[2]?.match(/"xsi:type":"(.*)"},/)?.[1] ?? "",
            message: error[1],
            details: JSON.parse(error[2] ?? "{}"),
          });
        }

        reject(err);
        return;
      }

      resolve(result);
    });
  });
}