UNPKG

@fortedigital/nextjs-cache-handler

Version:
135 lines (133 loc) 4.19 kB
"use strict"; 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); // src/helpers/ioredisAdapter.ts var ioredisAdapter_exports = {}; __export(ioredisAdapter_exports, { ioredisAdapter: () => ioredisAdapter }); module.exports = __toCommonJS(ioredisAdapter_exports); function ioredisAdapter(client) { return new Proxy(client, { get(target, prop, receiver) { if (prop === "isReady") { return target.status === "ready"; } if (prop === "hScan") { return async (key, cursor, options) => { let result; if (options?.COUNT) { result = await target.hscan(key, cursor, "COUNT", options.COUNT); } else { result = await target.hscan(key, cursor); } const [newCursor, items] = result; const entries = []; for (let i = 0; i < items.length; i += 2) { entries.push({ field: items[i], value: items[i + 1] }); } return { cursor: newCursor, entries }; }; } if (prop === "hDel") { return async (key, fields) => { const args = Array.isArray(fields) ? fields : [fields]; if (args.length === 0) { return 0; } return target.hdel(key, ...args); }; } if (prop === "unlink") { return async (keys) => { const args = Array.isArray(keys) ? keys : [keys]; if (args.length === 0) { return 0; } return target.unlink(...args); }; } if (prop === "set") { return async (key, value, options) => { if (!options) { return target.set(key, value); } const extraArgs = []; if (options.EXAT) { extraArgs.push("EXAT", options.EXAT); } else if (options.PXAT) { extraArgs.push("PXAT", options.PXAT); } else if (options.EX) { extraArgs.push("EX", options.EX); } else if (options.PX) { extraArgs.push("PX", options.PX); } else if (options.KEEPTTL) { extraArgs.push("KEEPTTL"); } if (options.NX) { extraArgs.push("NX"); } else if (options.XX) { extraArgs.push("XX"); } if (options.GET) { extraArgs.push("GET"); } const setFn = target.set; return setFn(key, value, ...extraArgs); }; } if (prop === "hmGet") { return async (key, fields) => { const args = Array.isArray(fields) ? fields : [fields]; if (args.length === 0) { return []; } return target.hmget(key, ...args); }; } if (prop === "get") { return target.get.bind(target); } if (prop === "expireAt") { return target.expireat.bind(target); } if (prop === "hSet") { return target.hset.bind(target); } if (prop === "hExists") { return target.hexists.bind(target); } if (prop === "on") { return target.on.bind(target); } if (prop === "destroy") { return async () => { await target.quit(); }; } return Reflect.get(target, prop, receiver); } }); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { ioredisAdapter });