0.2.0 • Published 2 years ago

events-player v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

events-player

A JavaScript events player, for browsers or Node.js.

What is events-player?

It is a player of time based events, such as a movie player :movie_camera: but with your events :smile:

It could be used in a browser, or in a Node.js application.

What is an "event"? An event is composed of 2 properties:

  • a delay (number in milliseconds): the time that the player should wait before sending the event data
  • a data (anything you want): the data to send uppon delay expiration

What is not events-player?

It is not a job/task scheduler such as "cron", it is not supposed to be used for scheduling a job/task "every day at 8:00 AM" for example.

Demo

Look at this example for a concrete usage

Installation

npm install events-player

or

yarn add events-player

Usage

The following example...

const player = new EventsPlayer([
    { delay: 6000, data: 42 },
    { delay: 1234, data: 'hello' },                      // could be unordered
    { delay: 7000, data: { id: 1, message: 'world' } },  // could be your own data
    { delay: 7600, data: true }
], (data) => {
    console.info('data:', data);
});
player.on('state', (newState, previousState) => {
    console.info('state:', previousState, '-->', newState);
});
player.start();
...
player.pause();		// after 6000 ms.
...
player.resume();	// after 5 sec.

...will produce the following console output:

state: initialised --> started
data: hello
data: 42
state: started --> paused
state: paused --> resumed
data: { id: 1, message: 'world' }
data: true
state: resumed --> done

...and with a timeline representation:

API

Properties

NameTypeDescription
speednumberthe player speed

Events

NameTypeDefaultDescription
state"initialised","started","paused","resumed","done""initialised"on player's state changed
speednumber1on speed changed
started--on player started
paused--on player paused
resumed--on player resumed
stopped--on player stopped
done--on player done

Methods

NameArgDefaultDescription
start(delay)number0start the player
pause()--pause the player
resume()--resume the player
stop()--stop the player

Issues & Enhancements

GitHub issues GitHub issues

For any bugs, enhancements, or just questions feel free to use the GitHub Issues

Licence

license

This project is licensed under the terms of the MIT license.

FOSSA Status