{"version":3,"sources":["../../src/types/Cache.ts"],"sourcesContent":["import { Func } from './Func';\nimport { CacheAge } from './CacheAge';\nimport { Construct } from './Constructor';\nimport { meta } from './Meta';\n\nexport interface Store<To = any, From = any> {\n  execute: (fetch: From, f: Func<Promise<To>, From>) => Promise<To>;\n}\n\nexport type CacheOptions = {\n  expiresIn?: CacheAge;\n  store?: Construct<Store>;\n};\n\nexport const toCacheOptions = (co: Partial<CacheOptions>): CacheOptions => ({\n  expiresIn: co.expiresIn ?? '5m',\n  store: co.store,\n});\n\nexport const cache =\n  (options: Partial<CacheOptions>): ClassDecorator =>\n  (subject: unknown): void => {\n    meta(subject).set('cache', toCacheOptions(options));\n  };\n"],"mappings":";;;;;;;;;;;;;;;;;AAcO,IAAM,iBAAiB,CAAC,QAA6C;AAAA,EAC1E,WAAW,GAAG,aAAa;AAAA,EAC3B,OAAO,GAAG;AACZ;AAEO,IAAM,QACX,CAAC,YACD,CAAC,YAA2B;AAC1B,OAAK,OAAO,EAAE,IAAI,SAAS,eAAe,OAAO,CAAC;AACpD;","names":[]}