UNPKG

@trieb.work/nextjs-turbo-redis-cache

Version:

The ultimate Redis caching solution for Next.js. Built for production-ready, large-scale projects, it delivers unparalleled performance and efficiency with features tailored for high-traffic applications.

53 lines (49 loc) 2.35 kB
import { CacheHandler, IncrementalCache, CacheHandlerValue } from 'next/dist/server/lib/incremental-cache'; type GetParams = Parameters<IncrementalCache['get']>; type SetParams = Parameters<IncrementalCache['set']>; type RevalidateParams = Parameters<IncrementalCache['revalidateTag']>; type CreateRedisStringsHandlerOptions = { database?: number; keyPrefix?: string; timeoutMs?: number; revalidateTagQuerySize?: number; sharedTagsKey?: string; avgResyncIntervalMs?: number; redisGetDeduplication?: boolean; inMemoryCachingTime?: number; defaultStaleAge?: number; estimateExpireAge?: (staleAge: number) => number; }; declare class RedisStringsHandler implements CacheHandler { private client; private sharedTagsMap; private revalidatedTagsMap; private inMemoryDeduplicationCache; private redisGet; private redisDeduplicationHandler; private deduplicatedRedisGet; private timeoutMs; private keyPrefix; private redisGetDeduplication; private inMemoryCachingTime; private defaultStaleAge; private estimateExpireAge; constructor({ database, keyPrefix, sharedTagsKey, timeoutMs, revalidateTagQuerySize, avgResyncIntervalMs, redisGetDeduplication, inMemoryCachingTime, defaultStaleAge, estimateExpireAge, }: CreateRedisStringsHandlerOptions); resetRequestCache(...args: never[]): void; private assertClientIsReady; get(key: GetParams[0], ctx: GetParams[1]): Promise<(CacheHandlerValue & { lastModified: number; }) | null>; set(key: SetParams[0], data: SetParams[1] & { lastModified: number; }, ctx: SetParams[2]): Promise<void>; revalidateTag(tagOrTags: RevalidateParams[0]): Promise<void>; } declare class CachedHandler implements CacheHandler { constructor(options: CreateRedisStringsHandlerOptions); get(...args: Parameters<RedisStringsHandler["get"]>): ReturnType<RedisStringsHandler["get"]>; set(...args: Parameters<RedisStringsHandler["set"]>): ReturnType<RedisStringsHandler["set"]>; revalidateTag(...args: Parameters<RedisStringsHandler["revalidateTag"]>): ReturnType<RedisStringsHandler["revalidateTag"]>; resetRequestCache(...args: Parameters<RedisStringsHandler["resetRequestCache"]>): ReturnType<RedisStringsHandler["resetRequestCache"]>; } export { CachedHandler as default };