query-objects v0.0.6
query-objects
Purpose
A utility library which filters objects from an array of objects based on a set of filter conditions.
const queryable = require('query-objects');
const users = [
{
firstName: 'George',
lastName: 'Eracleous',
age: 28
},
{
firstName: 'Erica',
lastName: 'Archer',
age: 50
},
{
firstName: 'Leo',
lastName: 'Andrews',
age: 20
}
];
const filters = [
{
field: 'age',
value: 30,
operator: 'lt'
},
{
field: 'firstName',
value: 'Erica',
operator: 'equals'
}
];
// Filter all users that are less than 30 years old AND their first name is Erica
const res = queryable(users).and(filters);
// Filter all users that are less than 30 years old OR their first name is Erica
const res = queryable(users).or(filters);Contents
Installation
npm install filter-objects
Usage
- Create a queryable object using
queryable(arr)wherearris the array of objects you want to query.
const q = queryable(arr);- Finally get the result array using:
q.and(filters); //returns an array of all objects in `arr` that satisfy EVERY filter
q.or(filters); //returns an array of all objects in `arr` that satisfy SOME of the filtersFilters
field - The name of the property we will filter on
value - The value of the property we will filter on
operator - The filter operator. Supported operators equals, contains, notcontains, gt, gte, lt, lte, ne
matchMissing - If true the filter will be satisfied even if field property is not present on the object. Default is false.
matchEmpty - If true the filter will be satisfied even if value property is empty. Empty values are [], undefined, null, '' and {}. Default is false.
Contributing
This project is work in progress and we'd love more people contributing to it.
- Fork the repo
- Apply your changes
- Write tests
- Submit your pull request
For feedback or suggestions you can drop us a line at support@avocarrot.com
