@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
TypeScript
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 {};