{"version":3,"sources":["../../src/lib/with-promise-cache.ts"],"sourcesContent":["import type { LRUCache } from '../server/lib/lru-cache'\n\nexport function withPromiseCache(\n cache: LRUCache>,\n fn: (value: K) => Promise\n): (value: K) => Promise\nexport function withPromiseCache(\n cache: LRUCache>,\n fn: (...values: T) => Promise,\n getKey: (...values: T) => K\n): (...values: T) => Promise\nexport function withPromiseCache(\n cache: LRUCache>,\n fn: (...values: T) => Promise,\n getKey?: (...values: T) => K\n): (...values: T) => Promise {\n return (...values: T) => {\n const key = getKey ? getKey(...values) : values[0]\n let p = cache.get(key)\n if (!p) {\n p = fn(...values)\n p.catch(() => cache.remove(key))\n cache.set(key, p)\n }\n return p\n }\n}\n"],"names":["withPromiseCache","cache","fn","getKey","values","key","p","get","catch","remove","set"],"mappings":";;;;+BAWgBA;;;eAAAA;;;AAAT,SAASA,iBACdC,KAA2B,EAC3BC,EAAgC,EAChCC,MAA4B;IAE5B,OAAO,CAAC,GAAGC;QACT,MAAMC,MAAMF,SAASA,UAAUC,UAAUA,MAAM,CAAC,EAAE;QAClD,IAAIE,IAAIL,MAAMM,GAAG,CAACF;QAClB,IAAI,CAACC,GAAG;YACNA,IAAIJ,MAAME;YACVE,EAAEE,KAAK,CAAC,IAAMP,MAAMQ,MAAM,CAACJ;YAC3BJ,MAAMS,GAAG,CAACL,KAAKC;QACjB;QACA,OAAOA;IACT;AACF","ignoreList":[0]}