UNPKG

cachly

Version:

Type-safe, production-ready in-memory cache system for Node.js and TypeScript with advanced features.

76 lines 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedisAdapter = void 0; class RedisAdapter { constructor(redisUrl) { this.connected = false; try { const redis = require('redis'); this.client = redis.createClient(redisUrl); this.client.connect().then(() => { this.connected = true; }).catch((error) => { console.error('Failed to connect to Redis:', error); }); } catch (error) { console.error('Redis not available:', error); } } async get(key) { if (!this.connected) return undefined; try { const value = await this.client.get(key); return value ? JSON.parse(value) : undefined; } catch (error) { console.error('Redis get error:', error); return undefined; } } async set(key, value, ttl) { if (!this.connected) return; try { const serialized = JSON.stringify(value); if (ttl) { await this.client.setEx(key, ttl / 1000, serialized); } else { await this.client.set(key, serialized); } } catch (error) { console.error('Redis set error:', error); } } async delete(key) { if (!this.connected) return; try { await this.client.del(key); } catch (error) { console.error('Redis delete error:', error); } } async clear() { if (!this.connected) return; try { await this.client.flushDb(); } catch (error) { console.error('Redis clear error:', error); } } async disconnect() { if (this.connected) { await this.client.quit(); this.connected = false; } } } exports.RedisAdapter = RedisAdapter; //# sourceMappingURL=RedisAdapter.js.map