UNPKG

@comsma/apollo-datasource-grpc

Version:

gRPC implementation of Apollo Server's Datasources. Makes it possible to use Partial Query Caching

22 lines 1.73 kB
import { InMemoryLRUCache } from '@apollo/utils.keyvaluecache'; class GRPCCache { keyValueCache; constructor(keyValueCache) { this.keyValueCache = keyValueCache; if (!this.keyValueCache) this.keyValueCache = new InMemoryLRUCache(); } async get(key) { const entry = await this.keyValueCache.get(`grpccache:${key}`); if (entry) return JSON.parse(entry); return null; } async set(key, value, ttl) { if (ttl > 0) { await this.keyValueCache.set(`grpccache:${key}`, JSON.stringify(value), { ttl }); } } } export default GRPCCache; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR1JQQ0NhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0dSUENDYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsTUFBTSxTQUFTO0lBQ04sYUFBYSxDQUF3QjtJQUU1QyxZQUFZLGFBQW9DO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVc7UUFDbkIsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFL0QsSUFBSSxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVUsRUFBRSxHQUFXO1FBQzVDLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRTtZQUNYLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNsRjtJQUNILENBQUM7Q0FDRjtBQUVELGVBQWUsU0FBUyxDQUFDIn0=