{"version":3,"sources":["../../../src/queues/errors/calculateBackoffWaitUntil.ts"],"sourcesContent":["import type { RetryConfig } from '../config/types/taskTypes.js'\n\nimport { getCurrentDate } from '../utilities/getCurrentDate.js'\n\nexport function calculateBackoffWaitUntil({\n  retriesConfig,\n  totalTried,\n}: {\n  retriesConfig: number | RetryConfig\n  totalTried: number\n}): Date {\n  const now = getCurrentDate()\n  let waitUntil: Date = now\n\n  if (typeof retriesConfig === 'object') {\n    if (retriesConfig.backoff) {\n      if (retriesConfig.backoff.type === 'fixed') {\n        waitUntil = retriesConfig.backoff.delay\n          ? new Date(now.getTime() + retriesConfig.backoff.delay)\n          : now\n      } else if (retriesConfig.backoff.type === 'exponential') {\n        // 2 ^ (attempts - 1) * delay (current attempt is not included in totalTried, thus no need for -1)\n        const delay = retriesConfig.backoff.delay ? retriesConfig.backoff.delay : 0\n        waitUntil = new Date(now.getTime() + Math.pow(2, totalTried) * delay)\n      }\n    }\n  }\n\n  return waitUntil\n}\n"],"names":["getCurrentDate","calculateBackoffWaitUntil","retriesConfig","totalTried","now","waitUntil","backoff","type","delay","Date","getTime","Math","pow"],"mappings":"AAEA,SAASA,cAAc,QAAQ,iCAAgC;AAE/D,OAAO,SAASC,0BAA0B,EACxCC,aAAa,EACbC,UAAU,EAIX;IACC,MAAMC,MAAMJ;IACZ,IAAIK,YAAkBD;IAEtB,IAAI,OAAOF,kBAAkB,UAAU;QACrC,IAAIA,cAAcI,OAAO,EAAE;YACzB,IAAIJ,cAAcI,OAAO,CAACC,IAAI,KAAK,SAAS;gBAC1CF,YAAYH,cAAcI,OAAO,CAACE,KAAK,GACnC,IAAIC,KAAKL,IAAIM,OAAO,KAAKR,cAAcI,OAAO,CAACE,KAAK,IACpDJ;YACN,OAAO,IAAIF,cAAcI,OAAO,CAACC,IAAI,KAAK,eAAe;gBACvD,kGAAkG;gBAClG,MAAMC,QAAQN,cAAcI,OAAO,CAACE,KAAK,GAAGN,cAAcI,OAAO,CAACE,KAAK,GAAG;gBAC1EH,YAAY,IAAII,KAAKL,IAAIM,OAAO,KAAKC,KAAKC,GAAG,CAAC,GAAGT,cAAcK;YACjE;QACF;IACF;IAEA,OAAOH;AACT"}