UNPKG

@mcabreradev/filter

Version:

A powerful, SQL-like array filtering library for TypeScript and JavaScript with advanced pattern matching, MongoDB-style operators, deep object comparison, and zero dependencies

44 lines (43 loc) 1.46 kB
import type { Expression, FilterConfig } from '../../types'; interface MemoizationCache<R> { get(key: string): R | undefined; set(key: string, value: R): void; clear(): void; size(): number; } export declare class LRUCache<R> implements MemoizationCache<R> { private cache; private maxSize; private maxAge; constructor(maxSize?: number, maxAge?: number); get(key: string): R | undefined; set(key: string, value: R): void; clear(): void; size(): number; } export declare class MemoizationManager { private static instance; private predicateCache; private regexCache; private expressionHashCache; private constructor(); static getInstance(): MemoizationManager; createExpressionHash<T>(expression: Expression<T>, config: FilterConfig): string; private hashObject; private hashOrderBy; private hashValue; getCachedPredicate<T>(key: string): ((item: T) => boolean) | undefined; setCachedPredicate<T>(key: string, predicate: (item: T) => boolean): void; getCachedRegex(pattern: string, flags?: string): RegExp | undefined; setCachedRegex(pattern: string, regex: RegExp, flags?: string): void; clearPredicateCache(): void; clearRegexCache(): void; clearAll(): void; getStats(): CacheStats; } export declare const memoization: MemoizationManager; export interface CacheStats { predicateCacheSize: number; regexCacheSize: number; } export {};