Finder - Search in array with efficiency
Optimized searching utility with support for binary search, fuzzy matching, and smart caching.
Import
import { Finder } from 'nhb-toolbox';
Type Definitions
interface FindOptions<T = unknown> {
fuzzy?: boolean; // Enable fuzzy matching
cacheKey?: string; // Custom cache key
forceBinary?: boolean; // Force binary search
caseInsensitive?: boolean;// Case-insensitive search
needSorting?: boolean; // Auto-sort data
data?: T[] | (() => T[]); // Alternate data source
}
type KeySelector<T> = Extract<OwnKeys<T>, string | number> | ((item: T) => string | number);
type OwnKeys<T> = { [K in keyof T]: {} extends Pick<T, K> ? never : K;}[keyof T];
Constructor
constructor(data: T[] | (() => T[]), ttl?: number)
Parameters
Name | Type | Description | Default |
---|---|---|---|
data | T[] | (() => T[]) | Dataset or provider function | - |
ttl | number | Cache duration in milliseconds | 300000 (5 min) |
Available Methods
- findAll - Returns all items matching criteria
- findOne - Returns first item matching criteria
- findOneAsync - Async version of
findOne
- findAllAsync - Async version of
findAll
- binarySearch - Performs binary search on sorted array
- fuzzySearch - Performs fuzzy string search
- clearCache - Clears cached search results
Notes
- All methods support caching with configurable TTL
- Search operations are optimized for performance
- Supports both exact and fuzzy matching
- Thread-safe implementation
See Also
- Array.search - Native array search