Currently, expressions support =
, >=
, <=
, >
, <
and !=
operators. Optionally, you can include a second constructor argument for changing the locale (the default is "en"). Any expressions that do not match a recognized operation get stripped out and are assumed to pass.
For simply matching if a property exists, use the =*
expression. Likewise, use the !
flag on the key name to check for missing/empty values.
Don't worry about type casting—we'll handle that for you.
# Or use npm install
yarn add comparisons
const Comparison = require('comparisons');
const tests = ['foo=bar', 'num>=2', '!quuz'];
const stub = { foo: 'bar', num: 3 };
const runner = new Comparison(tests);
runner.eval(stub); // returns true or false
runner.query(); // returns a Mongo friendly query