cachified-redis-adapter
Version:
A redis adapter for usage with @epic-web/cachified
96 lines (92 loc) • 2.94 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
// src/index.ts
var src_exports = {};
__export(src_exports, {
redisCacheAdapter: () => redisCacheAdapter
});
module.exports = __toCommonJS(src_exports);
// node_modules/.pnpm/@epic-web+cachified@5.1.2/node_modules/@epic-web/cachified/dist/index.mjs
var HANDLE = Symbol();
var MIGRATED = Symbol();
function staleWhileRevalidate(metadata) {
return (typeof metadata.swr === "undefined" ? metadata.swv : metadata.swr) || null;
}
function totalTtl(metadata) {
if (!metadata) {
return 0;
}
if (metadata.ttl === null) {
return Infinity;
}
return (metadata.ttl || 0) + (staleWhileRevalidate(metadata) || 0);
}
var CACHE_EMPTY = Symbol();
// src/index.ts
function redisCacheAdapter(redisCache) {
return {
name: redisCache.name || "Redis",
set(key, value) {
var _a2;
const ttl = totalTtl(value == null ? void 0 : value.metadata);
const createdTime = (_a2 = value == null ? void 0 : value.metadata) == null ? void 0 : _a2.createdTime;
return redisCache.set(
key,
JSON.stringify(value),
ttl > 0 && ttl < Infinity && typeof createdTime === "number" ? {
// convert the exat to seconds by dividing by 1000
EXAT: Math.ceil((ttl + createdTime) / 1e3)
} : void 0
);
},
get(key) {
return __async(this, null, function* () {
const value = yield redisCache.get(key);
if (value == null) {
return null;
}
return JSON.parse(value);
});
},
delete(key) {
return redisCache.del(key);
}
};
}
//# sourceMappingURL=index.cjs.map