latest-events

v0.3.0
When add or remove events can be received out of order, but we are only interested in the latest event that occured

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-events

Bower:

$ bower install --save latest-events

Manually: download file

npm i latest-events

Metadata

  • MIT
  • Whatever
  • Kim Joar Bekkelund
  • released 6/29/2014

Downloads

Maintainers