UNPKG

@gramio/storage-redis

Version:

Redis Storage for GramIO

30 lines (26 loc) 824 B
'use strict'; var ioredis = require('ioredis'); function redisStorage(optionsRaw = {}) { const isInstanceInOption = optionsRaw instanceof ioredis.Redis; const options = isInstanceInOption ? {} : optionsRaw; const storage = isInstanceInOption ? optionsRaw : new ioredis.Redis(options); return { async get(key) { const data = await storage.get(key); return data ? JSON.parse(data) : void 0; }, async has(key) { return !!await storage.get(key); }, async set(key, value) { const data = JSON.stringify(value); if (options.$ttl) await storage.setex(key, options.$ttl, data); else await storage.set(key, data); }, async delete(key) { const result = await storage.del(key); return result === 1; } }; } exports.redisStorage = redisStorage;