2017-09-23 16:30:22 +02:00
|
|
|
// milliseconds per second
|
|
|
|
const SECOND = 1000
|
|
|
|
let timer = null
|
|
|
|
|
2018-12-17 17:34:32 +01:00
|
|
|
export default context => {
|
2017-09-23 16:30:22 +02:00
|
|
|
context.clock = {
|
|
|
|
start (signalPath) {
|
|
|
|
const signal = context.controller.getSignal(signalPath)
|
|
|
|
|
|
|
|
function tick () {
|
|
|
|
const now = Date.now()
|
|
|
|
|
2018-12-17 17:34:32 +01:00
|
|
|
signal({ now })
|
2017-09-23 16:30:22 +02:00
|
|
|
|
|
|
|
timer = setTimeout(tick, SECOND - (now % SECOND))
|
|
|
|
}
|
|
|
|
|
|
|
|
tick()
|
|
|
|
},
|
|
|
|
stop () {
|
|
|
|
clearTimeout(timer)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return context
|
|
|
|
}
|