Logos DX
    Preparing search index...

    Interface MemoizeOptions<T>

    Options for memoization.

    interface MemoizeOptions<T extends Func | AsyncFunc> {
        adapter?: CacheAdapter<ReturnType<T>>;
        cleanupInterval?: number;
        generateKey?: (...args: Parameters<T>) => string;
        maxSize?: number;
        onError?: (error: Error, args: Parameters<T>) => void;
        shouldCache?: (...args: Parameters<T>) => boolean;
        staleIn?: number;
        staleTimeout?: number;
        ttl?: number;
        useWeakRef?: boolean;
    }

    Type Parameters

    Index

    Properties

    Custom cache adapter (Redis, etc.). Default: MapCacheAdapter

    cleanupInterval?: number

    Background cleanup interval in ms. 0 to disable. Default: 60000

    generateKey?: (...args: Parameters<T>) => string

    Custom key generator from function arguments. Default: enhanced serializer

    maxSize?: number

    Maximum cache size. When exceeded, LRU items evicted. Default: 1000

    onError?: (error: Error, args: Parameters<T>) => void

    Error handler for key generation or execution failures

    shouldCache?: (...args: Parameters<T>) => boolean

    Pre-serialization check. Return false to bypass cache and execute the function directly. (Still deduped if deduplication is enabled separately)

    This is called BEFORE key generation/serialization. Use this for conditional caching based on request context or parameters.

    const fetcher = memoize(fetchData, {
    shouldCache: (url, opts) => !opts?.bustCache
    });
    staleIn?: number

    Time in ms when data becomes stale (stale-while-revalidate). Default: undefined

    staleTimeout?: number

    Max wait for fresh data when stale. 0 = return stale immediately. Default: undefined

    ttl?: number

    Time to live in milliseconds. Default: 60000 (1 minute)

    useWeakRef?: boolean

    Use WeakRef for object values (allows GC). Default: false