vsfilter
v0.0.3
Published
A type-safe flexible filter function
Downloads
11
Readme
vsfilter
A type-safe, lightweight filter utility for filtering objects by property predicates.
Installation
npm install vsfilterUsage
import { filter, Filter } from "vsfilter";Filter an array
Pass an array and one or more filter objects. All conditions must match (AND logic).
const people = [
{ name: "Liam", age: 29 },
{ name: "Charlotte", age: 28 },
{ name: "Frank", age: 52 },
];
const result = filter(people, [
{ name: (name) => name.startsWith("L") },
{ age: (age) => age < 30 },
]);
// => [{ name: "Liam", age: 29 }]Filter a single object
Returns true if the object matches, false otherwise.
const person = { name: "Liam", age: 29 };
filter(person, { name: (name) => name === "Liam" }); // => true
filter(person, { age: (age) => age > 30 }); // => falseUse inline with Array.filter
const people = [
{ name: "Liam", age: 29 },
{ name: "Charlotte", age: 28 },
{ name: "Frank", age: 52 },
];
const result = people.filter((person) =>
filter(person, { name: (name) => name.startsWith("L") })
);
// => [{ name: "Liam", age: 29 }]Multiple conditions in one filter
Conditions within the same filter object are also AND'd together:
const result = filter(people, {
name: (name) => name.length > 4,
age: (age) => age < 30,
});
// => [{ name: "Charlotte", age: 28 }]API
filter<T>(input: T[], filters): T[]
Filters an array, returning items that match all filter conditions.
filter<T>(input: T, filters): boolean
Checks if a single object matches all filter conditions.
Filter<T>
Type for a filter object. Keys are property names, values are predicate functions:
type Filter<T> = {
[K in keyof T]?: (value: T[K]) => boolean;
};License
MIT
