JSPM

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

A declarative JavaScript library for search params orchestration.

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.

TypeScript codecov Release

📦 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