diff options
Diffstat (limited to 'js/src/time.ts')
-rw-r--r-- | js/src/time.ts | 27 |
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 } +} |