{"version":3,"file":"gcManager.mjs","sources":["../../../src/vanilla/gcManager.ts"],"sourcesContent":["import { UNDEFINED, isServer, isValidTimeout } from './utils'\n\nexport const createGcManager = (onRemove: () => void) => {\n  let gcTime: number\n  let gcTimeout: ReturnType<typeof setTimeout> | undefined\n\n  const scheduleGc = () => {\n    clearGcTimeout()\n\n    if (isValidTimeout(gcTime)) {\n      gcTimeout = setTimeout(() => {\n        onRemove()\n      }, gcTime)\n    }\n  }\n\n  const updateGcTime = (newGcTime: number | undefined) => {\n    // Default to 5 minutes (Infinity for server-side) if no gcTime is set\n    gcTime = Math.max(\n      gcTime || 0,\n      newGcTime ?? (isServer ? Infinity : 5 * 60 * 1000)\n    )\n  }\n\n  const clearGcTimeout = () => {\n    if (gcTimeout) {\n      clearTimeout(gcTimeout)\n      gcTimeout = UNDEFINED\n    }\n  }\n\n  return [updateGcTime, scheduleGc, clearGcTimeout] as const\n}\n"],"names":["createGcManager","onRemove","gcTime","gcTimeout","scheduleGc","clearGcTimeout","isValidTimeout","setTimeout","updateGcTime","newGcTime","Math","max","isServer","Infinity","clearTimeout","UNDEFINED"],"mappings":";;AAEaA,MAAAA,eAAe,GAAIC,QAAoB,IAAK;AACvD,EAAA,IAAIC,MAAc,CAAA;AAClB,EAAA,IAAIC,SAAoD,CAAA;EAExD,MAAMC,UAAU,GAAGA,MAAM;AACvBC,IAAAA,cAAc,EAAE,CAAA;AAEhB,IAAA,IAAIC,cAAc,CAACJ,MAAM,CAAC,EAAE;MAC1BC,SAAS,GAAGI,UAAU,CAAC,MAAM;AAC3BN,QAAAA,QAAQ,EAAE,CAAA;OACX,EAAEC,MAAM,CAAC,CAAA;AACZ,KAAA;GACD,CAAA;EAED,MAAMM,YAAY,GAAIC,SAA6B,IAAK;AACtD;IACAP,MAAM,GAAGQ,IAAI,CAACC,GAAG,CACfT,MAAM,IAAI,CAAC,EACXO,SAAS,IAAA,IAAA,GAATA,SAAS,GAAKG,QAAQ,GAAGC,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAC/C,CAAC,CAAA;GACF,CAAA;EAED,MAAMR,cAAc,GAAGA,MAAM;AAC3B,IAAA,IAAIF,SAAS,EAAE;MACbW,YAAY,CAACX,SAAS,CAAC,CAAA;AACvBA,MAAAA,SAAS,GAAGY,SAAS,CAAA;AACvB,KAAA;GACD,CAAA;AAED,EAAA,OAAO,CAACP,YAAY,EAAEJ,UAAU,EAAEC,cAAc,CAAC,CAAA;AACnD;;;;"}