filter.js
Filter JSONs using SQL-like syntax!
filter.js is a lightweight JavaScript library that enables you to use a comprehensible string syntax to run complex filter operations on a set of JSONs (or only one for that matter). The syntax is strongly inspired by the syntax for the expression of conditions in SQL and is meant to be simple and intuitive, even for non-technical people. See a demo!
Install
npm i @mg98/filter-js
Example
import { matchCondition } from '@mg98/filter-js';
const clients = [
{
name: 'Batu',
age: 17,
country: 'Turkey'
},
{
name: 'Hai Dang',
age: 24,
country: 'Vietnam'
},
{
name: 'Miles',
age: 16,
country: 'USA'
},
{
name: 'Philipp',
age: 58,
country: 'Germany'
}
]
const alcoholClients = data.filter(client => matchCondition(client,
"(age >= 18 and country in ('Germany', 'Turkey', 'Vietnam') or age >= 21 and country = 'USA') and country != 'Arabia'"
));
console.log(alcoholClients);
// [
// {
// name: 'Hai Dang',
// age: 24,
// country: 'Vietnam'
// },
// {
// name: 'Philipp',
// age: 58,
// country: 'Germany'
// }
// ]
Features
The goal of filter.js is to create a language that is not only a powerful tool, but also a convenient and fault-tolerant one.
=
, !=
, >
, <
, >=
, <=
in
and not in
in combination with array values (('Apple', 'Peach', 'Banana')
)
hobbies > 3
is valid if hobbies
in an array of length > 3)
and
and or
to combine expressions
address.street = 'Elm Str'
)
Not yet supported...