UNPKG

3.98 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/utils/cache.ts"],"names":["MAX_CACHE_SIZE","TTL","Number","MAX_SAFE_INTEGER","Cache","constructor","name","store","fsStore","directory","path","join","process","cwd","init","fs","ensureDirSync","configs","max","ttl","options","caches","map","cache","manager","caching","multiCaching","get","key","Promise","resolve","Error","err","res","undefined","set","value","args"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,MAAMA,cAAc,GAAG,GAAvB;AACA,MAAMC,GAAG,GAAGC,MAAM,CAACC,gBAAnB;;AAOe,MAAMC,KAAN,CAAY;AAKzBC,EAAAA,WAAW,CAAC;AAAEC,IAAAA,IAAI,GAAI,IAAV;AAAeC,IAAAA,KAAK,GAAGC;AAAvB,MAAqD,EAAtD,EAA0D;AACnE,SAAKF,IAAL,GAAYA,IAAZ;AACA,SAAKC,KAAL,GAAaA,KAAb;AACD;;AAED,MAAIE,SAAJ,GAAwB;AACtB,WAAOC,cAAKC,IAAL,CAAUC,OAAO,CAACC,GAAR,EAAV,EAA0B,iBAAgB,KAAKP,IAAK,EAApD,CAAP;AACD;;AAEDQ,EAAAA,IAAI,GAAU;AACZC,qBAAGC,aAAH,CAAiB,KAAKP,SAAtB;;AAEA,UAAMQ,OAAsB,GAAG,CAC7B;AACEV,MAAAA,KAAK,EAAG,QADV;AAEEW,MAAAA,GAAG,EAAElB,cAFP;AAGEmB,MAAAA,GAAG,EAAElB;AAHP,KAD6B,EAM7B;AACEM,MAAAA,KAAK,EAAE,KAAKA,KADd;AAEEY,MAAAA,GAAG,EAAElB,GAFP;AAGEmB,MAAAA,OAAO,EAAE;AACPV,QAAAA,IAAI,EAAE,KAAKD,SADJ;AAEPU,QAAAA,GAAG,EAAElB;AAFE;AAHX,KAN6B,CAA/B;AAgBA,UAAMoB,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYC,KAAK,IAAIC,sBAAQC,OAAR,CAAgBF,KAAhB,CAArB,CAAf;AAEA,SAAKA,KAAL,GAAaC,sBAAQE,YAAR,CAAqBL,MAArB,CAAb;AAEA,WAAO,IAAP;AACD;;AAEDM,EAAAA,GAAG,CAAcC,GAAd,EAA2C;AAC5C,WAAO,IAAIC,OAAJ,CAAYC,OAAO,IAAI;AAC5B,UAAI,CAAC,KAAKP,KAAV,EAAiB;AACf,cAAM,IAAIQ,KAAJ,CACH,gEADG,CAAN;AAGD;;AACD,WAAKR,KAAL,CAAWI,GAAX,CAAkBC,GAAlB,EAAuB,CAACI,GAAD,EAAMC,GAAN,KAAc;AACnCH,QAAAA,OAAO,CAACE,GAAG,GAAGE,SAAH,GAAeD,GAAnB,CAAP;AACD,OAFD;AAGD,KATM,CAAP;AAUD;;AAEDE,EAAAA,GAAG,CACDP,GADC,EAEDQ,KAFC,EAGDC,IAAmB,GAAG;AAAElB,IAAAA,GAAG,EAAElB;AAAP,GAHrB,EAIuB;AACxB,WAAO,IAAI4B,OAAJ,CAAYC,OAAO,IAAI;AAC5B,UAAI,CAAC,KAAKP,KAAV,EAAiB;AACf,cAAM,IAAIQ,KAAJ,CACH,gEADG,CAAN;AAGD;;AACD,WAAKR,KAAL,CAAWY,GAAX,CAAeP,GAAf,EAAoBQ,KAApB,EAA2BC,IAA3B,EAAiCL,GAAG,IAAI;AACtCF,QAAAA,OAAO,CAACE,GAAG,GAAGE,SAAH,GAAeE,KAAnB,CAAP;AACD,OAFD;AAGD,KATM,CAAP;AAUD;;AApEwB","sourcesContent":["import manager, { Store, StoreConfig, CachingConfig } from \"cache-manager\"\nimport fs from \"fs-extra\"\nimport fsStore from \"cache-manager-fs-hash\"\nimport path from \"path\"\n\nconst MAX_CACHE_SIZE = 250\nconst TTL = Number.MAX_SAFE_INTEGER\n\ninterface ICacheProperties {\n name?: string\n store?: Store\n}\n\nexport default class Cache {\n public name: string\n public store: Store\n public cache?: manager.Cache\n\n constructor({ name = `db`, store = fsStore }: ICacheProperties = {}) {\n this.name = name\n this.store = store\n }\n\n get directory(): string {\n return path.join(process.cwd(), `.cache/caches/${this.name}`)\n }\n\n init(): Cache {\n fs.ensureDirSync(this.directory)\n\n const configs: StoreConfig[] = [\n {\n store: `memory`,\n max: MAX_CACHE_SIZE,\n ttl: TTL,\n },\n {\n store: this.store,\n ttl: TTL,\n options: {\n path: this.directory,\n ttl: TTL,\n },\n },\n ]\n\n const caches = configs.map(cache => manager.caching(cache))\n\n this.cache = manager.multiCaching(caches)\n\n return this\n }\n\n get<T = unknown>(key): Promise<T | undefined> {\n return new Promise(resolve => {\n if (!this.cache) {\n throw new Error(\n `Cache wasn't initialised yet, please run the init method first`\n )\n }\n this.cache.get<T>(key, (err, res) => {\n resolve(err ? undefined : res)\n })\n })\n }\n\n set<T>(\n key: string,\n value: T,\n args: CachingConfig = { ttl: TTL }\n ): Promise<T | undefined> {\n return new Promise(resolve => {\n if (!this.cache) {\n throw new Error(\n `Cache wasn't initialised yet, please run the init method first`\n )\n }\n this.cache.set(key, value, args, err => {\n resolve(err ? undefined : value)\n })\n })\n }\n}\n"],"file":"cache.js"}
\No newline at end of file