latest-events
v0.3.0
Published
When add or remove events can be received out of order, but we are only interested in the latest event that occured
Readme
Keep latest events
When add or remove events can be received out of order, but we are only interested in the latest event that occured for a given id.
Example:
var latest = latestEvents();
// first
latest.process({ action: 'remove', id: 1, date: secondDate });
// then later
latest.process({ action: 'add', id: 1, date: firstDate });
latest.process({ action: 'add', id: 2, date: secondDate });
latest();
// [{ action: 'add', id: 2, date: secondDate }]
// does not contain event with `id == 1` as `remove` has a later date.date is anything that can be handled by Date.parse.
We can also process arrays:
var latest = latestEvents();
var events = [
{ action: 'add', id: 1, date: firstDate },
{ action: 'remove', id: 1, date: secondDate },
{ action: 'add', id: 2, date: secondDate }
];
latest.process(events);
latest.process({ action: 'add', id: 3, date: thirdDate });
latest();
// [
// { action: 'add', id: 2, date: secondDate },
// { action: 'add', id: 3, date: thirdDate }
// ]Install
npm:
$ npm install --save latest-eventsBower:
$ bower install --save latest-eventsManually: download file
