# chronologiejs

> Trigger event at specific timecode

Latest version **1.0.5** (published 2021-03-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install chronologiejs
pnpm add chronologiejs
yarn add chronologiejs
bun add chronologiejs
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.5 |
| Published | 2021-03-20 |
| First published | 2021-03-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 12.0.0 |
| Dependencies | 0 |
| Unpacked size | 21.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Jean-baptiste Bergy |
| Maintainers | jibhey |
| Keywords | chrono, chronologie, chronologiejs, trigger, time, timeline, event, events, functions, function, methods, method, callback |

## Links

- npm: https://www.npmjs.com/package/chronologiejs
- Repository: https://github.com/jbbergy/chronologiejs
- Issues: https://github.com/jbbergy/chronologiejs/issues
- npm.io page: https://npm.io/package/chronologiejs

## Alternatives

- [async-exit-hook](https://npm.io/package/async-exit-hook.md) — 3.7M weekly downloads
- [evnty](https://npm.io/package/evnty.md) — 7.2K weekly downloads
- [eleventy-plugin-asciidoc](https://npm.io/package/eleventy-plugin-asciidoc.md) — 3.5K weekly downloads
- [@jswork/next-get2get](https://npm.io/package/@jswork/next-get2get.md) — 945 weekly downloads
- [@dashersw/axon](https://npm.io/package/@dashersw/axon.md) — 934 weekly downloads

## Recent versions

- 1.0.5 (latest) — 2021-03-20
- 1.0.4 — 2021-03-20
- 1.0.3 — 2021-03-20
- 1.0.2 — 2021-03-19
- 1.0.1 — 2021-03-19
- 1.0.2-beta1 — 2021-03-19
- 1.0.1-beta1 — 2021-03-19
- 1.0.0 — 2021-03-19

## README

# ChronologieJS

This library allow you to trigger functions at a specified time. Like a super setTimeout manager.  
My idea was to make a web tecnologies based cartoon.

## Installation  

```sh
npm i chronologiejs
```

## Usage

```js
import { Chronologie, ChronologieEvent } from 'chronologiejs'

// declare ChronologieJS
const chronologie = new Chronologie()

// declare events you want to trigger
const event1 = new ChronologieEvent( 100, callbackFunction1)
const event2 = new ChronologieEvent( 1500, callbackFunction2)

// add events to the event pool
chronologie.addEvent(event1)
chronologie.addEvent(event2)

// start processing the events pool
chronologie.start()

// stop processing the events pool
chronologie.start()

// stop and start processing the events pool
chronologie.restart()

```

## Classes
`Chronologie` : The core of the library  
`ChronologieEvent` : Event object used to declare your event. Parameters are the timer in milliseconds and the callback function

## Methods  
`addEvent` : Add an event declared with `ChronologieEvent` to the event pool  
`start` : start processing the event pool  
`stop` : stop processing the event pool  
`restart` : stop and start processing the event pool  

## Event pool processing
All your declared events have a callback function. When you call the `start` method, the pool will be processed. when the time you configured in an event is reached, the callback function is triggered.

## Callback function
It's a function made by yourself. In this function you can do what you need : manipulate the DOM, play a sound, etc
```js
function playASound() {
  const mediaElement = document.querySelector('#sound-element')
  mediaElement.volume = 0.30
  mediaElement.currentTime = 0
  mediaElement.play()
}

const myEvent = new ChronologieEvent( 1500, playASound)

chronologie.addEvent(myEvent)

```
## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

---
_Source: https://npm.io/package/chronologiejs · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
