matchFilters
matchFilters<
T,C>(item:T,condition:C):item is T & HasFilterValues<T, C>
Defined in: match-filters.ts:20
Checks if an item matches all conditions in a filter object. Returns true if every key in the condition matches the corresponding item value.
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
T extends Record<string, any> |
C extends NestableFilters<T> |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
item | T | The object to test. |
condition | C | The filter conditions to match. |
Returns
Section titled “Returns”item is T & HasFilterValues<T, C>
True if the item matches all filter conditions.
Source
Section titled “Source”This function is useful for filtering objects based on nested or flat filter criteria. It enables type-safe filtering and is commonly used in state machines, event systems, and data processing.
export function matchFilters< T extends Record<string, any>, C extends NestableFilters<T>,>(item: T, condition: C): item is T & HasFilterValues<T, C> { return Object.keys(condition).every((key) => matchKey(condition[key as keyof C], item[key]) );}Example
Section titled “Example”const item = { status: "active", role: "admin" };const filter = { status: "active", role: ["admin", "user"] };matchFilters(item, filter); // true