Skip to content

Instantly share code, notes, and snippets.

@alxhub
Created March 18, 2016 00:10
Show Gist options
  • Save alxhub/5130575a3131889d104e to your computer and use it in GitHub Desktop.
Save alxhub/5130575a3131889d104e to your computer and use it in GitHub Desktop.
function trackQueryEvents(queries: Observable<Query[]>): Observable<QueryEvent> {
var oldQueries = [];
return queries.flatMap((queries: Query[]) => {
var res = Observable.fromArray([]
.concat(queries
.filter(query =>
oldQueries.find(oldQuery => oldQuery.match(query)) === undefined)
.map(query => {event: 'added', query}))
.concat(oldQueries
.filter(oldQuery => queries.find(query => query.match(oldQuery)) === undefined)
.map(oldQuery => {event: 'removed', query})));
oldQueries = queries;
return res;
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment