{"version":3,"sources":["../../src/helpers.ts","../../../../node_modules/.pnpm/@lukeed+ms@2.0.2/node_modules/@lukeed/ms/dist/index.mjs"],"sourcesContent":["import { parse } from '@lukeed/ms';\n\nimport type { Duration } from './types/main';\n\n/**\n * Resolve a TTL value to a number in milliseconds\n */\nexport function resolveTtl(ttl?: Duration, defaultTtl: Duration = 30_000) {\n  if (typeof ttl === 'number') return ttl;\n\n  /**\n   * If the TTL is null, it means the value should never expire\n   */\n  if (ttl === null) {\n    return undefined;\n  }\n\n  if (ttl === undefined) {\n    if (typeof defaultTtl === 'number') return defaultTtl;\n    if (typeof defaultTtl === 'string') return parse(defaultTtl);\n\n    return undefined;\n  }\n\n  return parse(ttl);\n}\n\n/**\n * Useful for creating a return value that can be destructured\n * or iterated over.\n *\n * See : https://antfu.me/posts/destructuring-with-object-or-array\n */\nexport function createIsomorphicDestructurable<\n  T extends Record<string, unknown>,\n  A extends readonly any[],\n>(obj: T, arr: A): T & A {\n  const clone = { ...obj };\n\n  Object.defineProperty(clone, Symbol.iterator, {\n    enumerable: false,\n    value() {\n      let index = 0;\n      return {\n        next: () => ({\n          value: arr[index++],\n          done: index > arr.length,\n        }),\n      };\n    },\n  });\n\n  return clone as T & A;\n}\n","var RGX = /^(-?(?:\\d+)?\\.?\\d+) *(m(?:illiseconds?|s(?:ecs?)?))?(s(?:ec(?:onds?|s)?)?)?(m(?:in(?:utes?|s)?)?)?(h(?:ours?|rs?)?)?(d(?:ays?)?)?(w(?:eeks?|ks?)?)?(y(?:ears?|rs?)?)?$/,\n\tSEC = 1e3,\n\tMIN = SEC * 60,\n\tHOUR = MIN * 60,\n\tDAY = HOUR * 24,\n\tYEAR = DAY * 365.25;\n\nexport function parse(val) {\n\tvar num, arr = val.toLowerCase().match(RGX);\n\tif (arr != null && (num = parseFloat(arr[1]))) {\n\t\tif (arr[3] != null) return num * SEC;\n\t\tif (arr[4] != null) return num * MIN;\n\t\tif (arr[5] != null) return num * HOUR;\n\t\tif (arr[6] != null) return num * DAY;\n\t\tif (arr[7] != null) return num * DAY * 7;\n\t\tif (arr[8] != null) return num * YEAR;\n\t\treturn num;\n\t}\n}\n\nfunction fmt(val, pfx, str, long) {\n\tvar num = (val | 0) === val ? val : ~~(val + 0.5);\n\treturn pfx + num + (long ? (' ' + str + (num != 1 ? 's' : '')) : str[0]);\n}\n\nexport function format(num, long) {\n\tvar pfx = num < 0  ? '-' : '', abs = num < 0 ? -num : num;\n\tif (abs < SEC) return num + (long ? ' ms' : 'ms');\n\tif (abs < MIN) return fmt(abs / SEC, pfx, 'second', long);\n\tif (abs < HOUR) return fmt(abs / MIN, pfx, 'minute', long);\n\tif (abs < DAY) return fmt(abs / HOUR, pfx, 'hour', long);\n\tif (abs < YEAR) return fmt(abs / DAY, pfx, 'day', long);\n\treturn fmt(abs / YEAR, pfx, 'year', long);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAI,MAAM;AAAV,IACC,MAAM;AADP,IAEC,MAAM,MAAM;AAFb,IAGC,OAAO,MAAM;AAHd,IAIC,MAAM,OAAO;AAJd,IAKC,OAAO,MAAM;AAEP,SAAS,MAAM,KAAK;AAC1B,MAAI,KAAK,MAAM,IAAI,YAAY,EAAE,MAAM,GAAG;AAC1C,MAAI,OAAO,SAAS,MAAM,WAAW,IAAI,CAAC,CAAC,IAAI;AAC9C,QAAI,IAAI,CAAC,KAAK,KAAM,QAAO,MAAM;AACjC,QAAI,IAAI,CAAC,KAAK,KAAM,QAAO,MAAM;AACjC,QAAI,IAAI,CAAC,KAAK,KAAM,QAAO,MAAM;AACjC,QAAI,IAAI,CAAC,KAAK,KAAM,QAAO,MAAM;AACjC,QAAI,IAAI,CAAC,KAAK,KAAM,QAAO,MAAM,MAAM;AACvC,QAAI,IAAI,CAAC,KAAK,KAAM,QAAO,MAAM;AACjC,WAAO;AAAA,EACR;AACD;;;ADXO,SAAS,WAAW,KAAgB,aAAuB,KAAQ;AACxE,MAAI,OAAO,QAAQ,SAAU,QAAO;AAKpC,MAAI,QAAQ,MAAM;AAChB,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,QAAW;AACrB,QAAI,OAAO,eAAe,SAAU,QAAO;AAC3C,QAAI,OAAO,eAAe,SAAU,QAAO,MAAM,UAAU;AAE3D,WAAO;AAAA,EACT;AAEA,SAAO,MAAM,GAAG;AAClB;AAQO,SAAS,+BAGd,KAAQ,KAAe;AACvB,QAAM,QAAQ,EAAE,GAAG,IAAI;AAEvB,SAAO,eAAe,OAAO,OAAO,UAAU;AAAA,IAC5C,YAAY;AAAA,IACZ,QAAQ;AACN,UAAI,QAAQ;AACZ,aAAO;AAAA,QACL,MAAM,OAAO;AAAA,UACX,OAAO,IAAI,OAAO;AAAA,UAClB,MAAM,QAAQ,IAAI;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}