{"version":3,"file":"useRetryPlugin.mjs","sources":["../../../../../../../package/hooks/useRequest/src/plugins/useRetryPlugin.ts"],"sourcesContent":["import type { Plugin } from \"../types\";\n\nconst useRetryPlugin: Plugin<any, any[]> = (fetchInstance, { retryInterval, retryCount }) => {\n  let timer: any = 0;\n  let count: number = 0;\n\n  let triggerByRetry: boolean = false;\n\n  if (!retryCount) {\n    return {};\n  }\n\n  return {\n    onBefore: () => {\n      if (!triggerByRetry) {\n        count = 0;\n      }\n      triggerByRetry = false;\n      if (timer) {\n        clearTimeout(timer);\n      }\n    },\n    onSuccess: () => {\n      count = 0;\n    },\n    onError: () => {\n      count += 1;\n      if (retryCount === -1 || count <= retryCount) {\n        // Exponential backoff\n        const timeout = retryInterval ?? Math.min(1000 * 2 ** count, 30000);\n        timer = setTimeout(() => {\n          triggerByRetry = true;\n          fetchInstance.refresh();\n        }, timeout);\n      } else {\n        count = 0;\n      }\n    },\n    onCancel: () => {\n      count = 0;\n      if (timer) {\n        clearTimeout(timer);\n      }\n    }\n  };\n};\n\nexport default useRetryPlugin;\n"],"names":[],"mappings":"AAEA,MAAM,iBAAqC,CAAC,aAAA,EAAe,EAAE,aAAA,EAAe,YAAiB,KAAA;AAC3F,EAAA,IAAI,KAAa,GAAA,CAAA,CAAA;AACjB,EAAA,IAAI,KAAgB,GAAA,CAAA,CAAA;AAEpB,EAAA,IAAI,cAA0B,GAAA,KAAA,CAAA;AAE9B,EAAA,IAAI,CAAC,UAAY,EAAA;AACf,IAAA,OAAO,EAAC,CAAA;AAAA,GACV;AAEA,EAAO,OAAA;AAAA,IACL,UAAU,MAAM;AACd,MAAA,IAAI,CAAC,cAAgB,EAAA;AACnB,QAAQ,KAAA,GAAA,CAAA,CAAA;AAAA,OACV;AACA,MAAiB,cAAA,GAAA,KAAA,CAAA;AACjB,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,OACpB;AAAA,KACF;AAAA,IACA,WAAW,MAAM;AACf,MAAQ,KAAA,GAAA,CAAA,CAAA;AAAA,KACV;AAAA,IACA,SAAS,MAAM;AACb,MAAS,KAAA,IAAA,CAAA,CAAA;AACT,MAAI,IAAA,UAAA,KAAe,CAAM,CAAA,IAAA,KAAA,IAAS,UAAY,EAAA;AAE5C,QAAA,MAAM,UAAU,aAAiB,IAAA,IAAA,GAAA,aAAA,GAAA,IAAA,CAAK,IAAI,GAAO,GAAA,CAAA,IAAK,OAAO,GAAK,CAAA,CAAA;AAClE,QAAA,KAAA,GAAQ,WAAW,MAAM;AACvB,UAAiB,cAAA,GAAA,IAAA,CAAA;AACjB,UAAA,aAAA,CAAc,OAAQ,EAAA,CAAA;AAAA,WACrB,OAAO,CAAA,CAAA;AAAA,OACL,MAAA;AACL,QAAQ,KAAA,GAAA,CAAA,CAAA;AAAA,OACV;AAAA,KACF;AAAA,IACA,UAAU,MAAM;AACd,MAAQ,KAAA,GAAA,CAAA,CAAA;AACR,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,OACpB;AAAA,KACF;AAAA,GACF,CAAA;AACF;;;;"}