Package Exports
- filterion
- filterion/build/index.js
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 (filterion) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Filterion
A zero-dependency, immutable data structure for search params management.
📦 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';
// Good
const filterion = new Filterion<{ price: string }>()
.add('price', 649);
// Bad
const filterion = new Filterion<{ name: string }>()
.add('price', 649);
/*
error TS2345: Argument of type '"price"' is not assignable to parameter of type '"name"'.
*/
Inspired by immutable.js, an immutable collections library for JavaScript.
License
MIT