13.1.0
13.0.0
12.0.0
- Fix bug where \$elemMatch tested objects: e.g:
sift({a: {$elemMatch: 1}})({ a: { b: 1}}). \$elemMatch now expects arrays based on Mongodb syntax. E.g: sift({a: {$elemMatch: 1}})({ a: { b: 1}})
11.0.0
- new custom operations syntax (see API readme)
- null & undefined are not treated equally (change has been added to keep spec as functionality as possible to MongoDB)
select option has been removed
compare option now expects boolean return value instead of an integer
- nested queries are no-longer supported
expressions option is now operations
operations parameter now expects new operations API
- ImmutableJS support removed for now
- Remove bower support
9.0.0
- (behavior change) toJSON works for vanilla objects.
8.5.1
- Fix dependency vulnerability
- Fix #158
8.5.0
8.4.0
8.3.2
- Query properties now excpect exact object shape (based on https://github.com/crcn/sift.js/issues/152). E.g:
[{a: { b: 1}}, {a: { b: 1, c: 2}}]].filter(sift({ a: { b: 1} })) === [{a: {b: 1}], and [{a: 1, b: 1}, {a: 1}]].filter(sift({ a: 1 })) === [{a: 1, b: 1}, {a: 1}].
8.0.0
- DEPRECATED
indexOf in favor of array.findIndex(sift(query))
- second param is now
options instead of select function. E.g: sift(query, { expressions: customExpressions, select: selectValue })
- DEPRECATED
sift(query, array). You must now use array.filter(sift(query))
- Queries now expect exact object shape (based on https://github.com/crcn/sift.js/issues/117). E.g:
[{a: 1, b: 1}, {a: 1}]].filter(sift({ a: 1 })) === [{a: 1}]
7.0.0
- Remove global
*.use() function.
- converted to ES6
3.3.x
$in now uses toString() when evaluating objects. Fixes #116.
2.x
use() now uses a different format:
sift.use({
$operator: function(a) {
return function(b) {
// compare here
};
}
});
- all operators are traversable now
- fix #58.