UNPKG

bucklescript-tea

Version:
71 lines (65 loc) 1.99 kB
// Generated by BUCKLESCRIPT, PLEASE EDIT WITH CARE 'use strict'; var Curry = require("bs-platform/lib/js/curry.js"); var Tea_sub = require("./tea_sub.js"); function every($staropt$star, tagger) { var key = $staropt$star !== undefined ? $staropt$star : ""; var enableCall = function (callbacks) { var lastTime = { contents: Date.now() }; var id = { contents: undefined }; var onFrame = function (_time) { var time = Date.now(); var match = id.contents; if (match !== undefined) { var ret_delta = time < lastTime.contents ? 0.0 : time - lastTime.contents; var ret = { time: time, delta: ret_delta }; lastTime.contents = time; Curry._1(callbacks.enqueue, Curry._1(tagger, ret)); var match$1 = id.contents; if (match$1 !== undefined) { id.contents = window.requestAnimationFrame(onFrame); return /* () */0; } else { return /* () */0; } } else { return /* () */0; } }; id.contents = window.requestAnimationFrame(onFrame); return (function (param) { var match = id.contents; if (match !== undefined) { window.cancelAnimationFrame(match); id.contents = undefined; return /* () */0; } else { return /* () */0; } }); }; return Tea_sub.registration(key, enableCall); } function times($staropt$star, tagger) { var key = $staropt$star !== undefined ? $staropt$star : ""; return every(undefined, (function (ev) { return Curry._2(tagger, key, ev.time); })); } function diffs($staropt$star, tagger) { var key = $staropt$star !== undefined ? $staropt$star : ""; return every(undefined, (function (ev) { return Curry._2(tagger, key, ev.delta); })); } exports.every = every; exports.times = times; exports.diffs = diffs; /* No side effect */