{"version":3,"sources":["../src/utils/asyncAutoRetry.ts"],"names":[],"mappings":";AAAA,eAAsB,cAAA,CACpB,MAAA,EACA,OAAA,GAGI,EAAC,EACO;AACZ,EAAA,MAAM,KAAA,GAAQ,QAAQ,KAAA,IAAS,EAAA;AAC/B,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,WAAA,KAAgB,MAAM,IAAA,CAAA;AAElD,EAAA,IAAI,mBAAA,GAAsB,KAAA;AAC1B,EAAA,OAAO,IAAA,EAAM;AACX,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,MAAA,EAAO;AAAA,IACtB,SAAS,KAAA,EAAO;AACd,MAAA,mBAAA,IAAuB,CAAA;AAEvB,MAAA,IAAI,mBAAA,IAAuB,CAAA,IAAK,WAAA,CAAY,KAAK,CAAA,EAAG;AAClD,QAAA,MAAM,IAAI,OAAA,CAAQ,CAAC,YAAY,UAAA,CAAW,OAAA,EAAS,GAAI,CAAC,CAAA;AACxD,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AACF","file":"chunk-4JABE7US.mjs","sourcesContent":["export async function asyncAutoRetry<T>(\n  action: () => Promise<T>,\n  options: {\n    count?: number;\n    isNeedRetry?: (error: any) => boolean;\n  } = {}\n): Promise<T> {\n  const count = options.count ?? 20;\n  const isNeedRetry = options.isNeedRetry ?? (() => true);\n\n  let remainingRetryCount = count;\n  while (true) {\n    try {\n      return await action();\n    } catch (error) {\n      remainingRetryCount -= 1;\n\n      if (remainingRetryCount >= 0 && isNeedRetry(error)) {\n        await new Promise((resolve) => setTimeout(resolve, 1000));\n        continue;\n      }\n\n      throw error;\n    }\n  }\n}\n"]}