UNPKG

@gramio/storage-redis

Version:

Redis Storage for GramIO

28 lines (25 loc) 780 B
import { Redis } from 'ioredis'; function redisStorage(optionsRaw = {}) { const isInstanceInOption = optionsRaw instanceof Redis; const options = isInstanceInOption ? {} : optionsRaw; const storage = isInstanceInOption ? optionsRaw : new 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; } }; } export { redisStorage };