@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
JavaScript
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=