@comsma/apollo-datasource-grpc
Version:
gRPC implementation of Apollo Server's Datasources. Makes it possible to use Partial Query Caching
24 lines • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const utils_keyvaluecache_1 = require("@apollo/utils.keyvaluecache");
class GRPCCache {
keyValueCache;
constructor(keyValueCache) {
this.keyValueCache = keyValueCache;
if (!this.keyValueCache)
this.keyValueCache = new utils_keyvaluecache_1.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 });
}
}
}
exports.default = GRPCCache;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR1JQQ0NhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0dSUENDYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFFQUE4RTtBQUU5RSxNQUFNLFNBQVM7SUFDTixhQUFhLENBQXdCO0lBRTVDLFlBQVksYUFBb0M7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHNDQUFnQixFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBVztRQUNuQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUvRCxJQUFJLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBVSxFQUFFLEdBQVc7UUFDNUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQ1gsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ2xGO0lBQ0gsQ0FBQztDQUNGO0FBRUQsa0JBQWUsU0FBUyxDQUFDIn0=