UNPKG

pnpm

Version:

A fast implementation of npm install

44 lines 1.83 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments)).next()); }); }; const cacheManager = require('cache-manager'); const fsStore = require('cache-manager-fs'); const thenify = require('thenify'); const logger = require('@zkochan/logger'); function createCache(opts) { const diskCache = cacheManager.caching({ store: fsStore, options: { ttl: opts.ttl, maxsize: 1000 * 1000 * 1000, path: opts.path, preventfill: opts.ttl === 0, }, }); const cacheManagerOpts = {}; const getCache = thenify(diskCache.get.bind(diskCache)); const setCache = thenify(diskCache.set.bind(diskCache)); return { set: (key, value) => setCache(key, value, cacheManagerOpts), get: function (id) { return __awaiter(this, void 0, void 0, function* () { try { return yield getCache(id, cacheManagerOpts); } catch (err) { logger.error('cache', id); return null; // ignore errors. The data can be requested. } }); }, }; } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createCache; //# sourceMappingURL=createCache.js.map