0 | module Node.Timers.Static
2 | import Node.Timers.Immediate
3 | import Node.Timers.Timeout
5 | %foreign "node:lambda: (cb) => setImmediate(cb)"
6 | ffi_setImmediate : PrimIO () -> PrimIO Immediate
9 | setImmediate : HasIO io => IO () -> io Immediate
10 | setImmediate cb = primIO $
ffi_setImmediate $
toPrim cb
12 | %foreign "node:lambda: (cb, delay) => setInterval(cb, delay)"
13 | ffi_setInterval : PrimIO () -> Int -> PrimIO Timeout
16 | setInterval : HasIO io => IO () -> Int -> io Timeout
17 | setInterval cb delay = primIO $
ffi_setInterval (toPrim cb) delay
19 | %foreign "node:lambda: (cb, delay) => setTimeout(cb, delay)"
20 | ffi_setTimeout : PrimIO () -> Int -> PrimIO Timeout
23 | setTimeout : HasIO io => IO () -> Int -> io Timeout
24 | setTimeout cb delay = primIO $
ffi_setTimeout (toPrim cb) delay
26 | %foreign "node:lambda: (immediate) => clearImmediate(immediate)"
27 | ffi_clearImmediate : Immediate -> PrimIO ()
30 | clearImmediate : HasIO io => Immediate -> io ()
31 | clearImmediate immediate = primIO $
ffi_clearImmediate immediate
33 | %foreign "node:lambda: (timeout) => clearInterval(timeout)"
34 | ffi_clearInterval : Timeout -> PrimIO ()
37 | clearInterval : HasIO io => Timeout -> io ()
38 | clearInterval timeout = primIO $
ffi_clearInterval timeout
40 | %foreign "node:lambda: (timeout) => clearTimeout(timeout)"
41 | ffi_clearTimeout : Timeout -> PrimIO ()
44 | clearTimeout : HasIO io => Timeout -> io ()
45 | clearTimeout timeout = primIO $
ffi_clearTimeout timeout