JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 16
  • Score
    100M100P100Q40313F
  • License MIT

A utility library which filters objects from an array of objects based on a set of filter conditions

Package Exports

  • query-objects

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (query-objects) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

query-objects

NPM

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

  1. Create a queryable object using queryable(arr) where arr is the array of objects you want to query.
const q = queryable(arr);
  1. 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 filters

Filters

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.

  1. Fork the repo
  2. Apply your changes
  3. Write tests
  4. Submit your pull request

For feedback or suggestions you can drop us a line at support@avocarrot.com