mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
27 lines
440 B
JavaScript
27 lines
440 B
JavaScript
// milliseconds per second
|
|
const SECOND = 1000
|
|
let timer = null
|
|
|
|
export default (context) => {
|
|
context.clock = {
|
|
start (signalPath) {
|
|
const signal = context.controller.getSignal(signalPath)
|
|
|
|
function tick () {
|
|
const now = Date.now()
|
|
|
|
signal({now})
|
|
|
|
timer = setTimeout(tick, SECOND - (now % SECOND))
|
|
}
|
|
|
|
tick()
|
|
},
|
|
stop () {
|
|
clearTimeout(timer)
|
|
}
|
|
}
|
|
|
|
return context
|
|
}
|