Skip to main content

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

NameTypeDescriptionDefault
dataT[] | (() => T[])Dataset or provider function-
ttlnumberCache duration in milliseconds300000 (5 min)

Available Methods

  1. findAll - Returns all items matching criteria
  2. findOne - Returns first item matching criteria
  3. findOneAsync - Async version of findOne
  4. findAllAsync - Async version of findAll
  5. binarySearch - Performs binary search on sorted array
  6. fuzzySearch - Performs fuzzy string search
  7. 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