filterion

Data structure for filter criteria management

Usage no npm install needed!

<script type="module">
  import filterion from 'https://cdn.skypack.dev/filterion';
</script>

README

Filterion

An immutable data structure for filter criteria management.

Build Status codecov CodeFactor

📦 Install

Install filterion using npm:

npm i filterion

🔨 Usage

Require it into any module and use natively:

import { Filterion } from 'filterion';

const filter = new Filterion()
  .add('device', 'iPhone')
  .add('price', 649);

console.log(filter.getPayload());

/*
{
  device: { '=': [ 'iPhone' ] },
  price: { '=': [ 649 ] }
}
*/

Or leverage the query string API:

import { Filterion } from 'filterion';

const newQuery = new Filterion()
  .fromQueryString('device=iPhone&price=649')
  .remove('price')
  .add('year', 2007)
  .toQueryString();

console.log(newQuery);

/*
device=iPhone&year=2007
*/

Typescript

Filterion can be used in a type-safe context:

import { Filterion } from 'filterion';

const filterion = new Filterion<{ name: string }>()
  .add('price', 649);

/*
error TS2345: Argument of type '"price"' is not assignable to parameter of type '"name"'.
*/

📖 API Reference

// TODO

Inspired by immutable.js, an immutable collections library for JavaScript.

License

MIT