0.0.19 • Published 6 years ago

warped-time v0.0.19

Weekly downloads
28
License
MIT
Repository
github
Last release
6 years ago

warped-time: Control the progression of time npm version Github Stars Twitter URL

▶️ API | Info | redux-time | Example | Source

Simple Javascript library that provides an equivalent to Date.getTime() with variable progression speed.

It has a hook to receive timestamps and estimated latency, which it uses to stay in sync with a backend server's time.

LIVE DEMO

yarn add warped-time    # ⏱

For more details and usage examples see docs on redux-time.

API

window.time = new WarpedTime(window.store, 1)
// takes: optional redux store, initial_speed, initial_timestamp

window.time.getActualTime()
> 1499014500
window.time.getWarpedTime()
> 1499014500

window.time.setSpeed(-1)   // make time start going backwards at -1x

window.time.getActualTime()
> 1499014501
window.time.getWarpedTime()
> 1499014499

window.time.setSpeed(0.01)  // make time progress at 0.01x its actual speed

window.time.getWarpedTime()
> 1499014499.01

const server_time = timestamp_from_server + rtlatency/2
window.time.setWarpedTime(server_time) // set time to the server time instantly

window.time.setWarpedTime(server_time, 1000) // sync to server time over 1000ms

Info

This library is useful for:

  • time-travel debugging
  • animations
  • any situation where you want a version of time that's flowing slower/faster/reversed compared to the actual time
  • keeping a front-end time in sync with a backend time
  • real-time games

We use it for time-travel debugging and animation timing sync in our library redux-time.


MIT License | Monadical SAS 2017 (we're hiring!)

0.0.19

6 years ago

0.0.18

6 years ago

0.0.17

6 years ago

0.0.16

7 years ago

0.0.15

7 years ago

0.0.14

7 years ago

0.0.13

7 years ago

0.0.11

7 years ago

0.0.9

7 years ago

0.0.8

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.1

7 years ago