0 | module Node.Timers.Static
 1 |
 2 | import Node.Timers.Immediate
 3 | import Node.Timers.Timeout
 4 |
 5 | %foreign "node:lambda: (cb) => setImmediate(cb)"
 6 | ffi_setImmediate : PrimIO () -> PrimIO Immediate
 7 |
 8 | export
 9 | setImmediate : HasIO io => IO () -> io Immediate
10 | setImmediate cb = primIO $ ffi_setImmediate $ toPrim cb
11 |
12 | %foreign "node:lambda: (cb, delay) => setInterval(cb, delay)"
13 | ffi_setInterval : PrimIO () -> Int -> PrimIO Timeout
14 |
15 | export
16 | setInterval : HasIO io => IO () -> Int -> io Timeout
17 | setInterval cb delay = primIO $ ffi_setInterval (toPrim cb) delay
18 |
19 | %foreign "node:lambda: (cb, delay) => setTimeout(cb, delay)"
20 | ffi_setTimeout : PrimIO () -> Int -> PrimIO Timeout
21 |
22 | export
23 | setTimeout : HasIO io => IO () -> Int -> io Timeout
24 | setTimeout cb delay = primIO $ ffi_setTimeout (toPrim cb) delay
25 |
26 | %foreign "node:lambda: (immediate) => clearImmediate(immediate)"
27 | ffi_clearImmediate : Immediate -> PrimIO ()
28 |
29 | export
30 | clearImmediate : HasIO io => Immediate -> io ()
31 | clearImmediate immediate = primIO $ ffi_clearImmediate immediate
32 |
33 | %foreign "node:lambda: (timeout) => clearInterval(timeout)"
34 | ffi_clearInterval : Timeout -> PrimIO ()
35 |
36 | export
37 | clearInterval : HasIO io => Timeout -> io ()
38 | clearInterval timeout = primIO $ ffi_clearInterval timeout
39 |
40 | %foreign "node:lambda: (timeout) => clearTimeout(timeout)"
41 | ffi_clearTimeout : Timeout -> PrimIO ()
42 |
43 | export
44 | clearTimeout : HasIO io => Timeout -> io ()
45 | clearTimeout timeout = primIO $ ffi_clearTimeout timeout
46 |
47 |