summaryrefslogtreecommitdiff
path: root/js/src/time.ts
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/time.ts')
-rw-r--r--js/src/time.ts27
1 files changed, 27 insertions, 0 deletions
diff --git a/js/src/time.ts b/js/src/time.ts
new file mode 100644
index 0000000..ce98c9a
--- /dev/null
+++ b/js/src/time.ts
@@ -0,0 +1,27 @@
+interface Time {
+ connect(sig: "now", fn: () => void): number
+ cancel(): void
+}
+
+export default function Time<T extends Time>(Time: {
+ interval(interval: number, closure: any): T
+ timeout(timeout: number, closure: any): T
+ idle(closure: any): T
+}) {
+ function interval(interval: number, callback: () => void) {
+ const t = Time.interval(interval, null)
+ t.connect("now", callback)
+ return t
+ }
+ function timeout(timeout: number, callback: () => void) {
+ const t = Time.timeout(timeout, null)
+ t.connect("now", callback)
+ return t
+ }
+ function idle(callback: () => void) {
+ const t = Time.idle(null)
+ t.connect("now", callback)
+ return t
+ }
+ return { interval, timeout, idle }
+}