UNPKG

@safaricom-mxl/nextjs-turbo-redis-cache

Version:

Next.js redis cache handler

44 lines (40 loc) 1.45 kB
import RedisStringsHandler, { type CreateRedisStringsHandlerOptions, } from "./RedisStringsHandler"; import { debugVerbose } from "./utils/debug"; let cachedHandler: RedisStringsHandler; // Function to reset the cached handler (for testing) export function resetCachedHandler() { cachedHandler = undefined as any; } export default class CachedHandler { constructor(options: CreateRedisStringsHandlerOptions) { if (!cachedHandler) { cachedHandler = new RedisStringsHandler(options); } } get( ...args: Parameters<RedisStringsHandler["get"]> ): ReturnType<RedisStringsHandler["get"]> { debugVerbose("CachedHandler.get called with", args); return cachedHandler.get(...args); } set( ...args: Parameters<RedisStringsHandler["set"]> ): ReturnType<RedisStringsHandler["set"]> { debugVerbose("CachedHandler.set called with", args); return cachedHandler.set(...args); } revalidateTag( ...args: Parameters<RedisStringsHandler["revalidateTag"]> ): ReturnType<RedisStringsHandler["revalidateTag"]> { debugVerbose("CachedHandler.revalidateTag called with", args); return cachedHandler.revalidateTag(...args); } resetRequestCache( ...args: Parameters<RedisStringsHandler["resetRequestCache"]> ): ReturnType<RedisStringsHandler["resetRequestCache"]> { // debug("CachedHandler.resetRequestCache called with", args); return cachedHandler.resetRequestCache(...args); } }