0 | module Node.Event.Internal
 1 |
 2 | export
 3 | on0 : HasIO io => (a -> PrimIO () -> PrimIO ()) -> a -> IO () -> io ()
 4 | on0 fn a cb = primIO $ fn a $ toPrim cb
 5 |
 6 | export
 7 | on1 : HasIO io => (a -> (e -> PrimIO ()) -> PrimIO ()) -> a -> (e -> IO ()) -> io ()
 8 | on1 fn a cb = primIO $ fn a $ \e => toPrim $ cb e
 9 |
10 | export
11 | on2 : HasIO io => (a -> (b -> c -> PrimIO ()) -> PrimIO ()) -> a -> (b -> c -> IO ()) -> io ()
12 | on2 fn a cb = primIO $ fn a $ \b, c => toPrim $ cb b c
13 |
14 | public export
15 | nodeOn0 : String -> String
16 | nodeOn0 event = "node:lambda: (tya, a, callback) => a.on('\{event}', callback)"
17 |
18 | public export
19 | nodeOn1 : String -> String
20 | nodeOn1 event = "node:lambda: (tya, tyb, a, callback) => a.on('\{event}', b => callback(b)())"
21 |
22 | public export
23 | nodeOn2 : String -> String
24 | nodeOn2 event = "node:lambda: (tya, tyb, tyc, a, callback) => a.on('\{event}', (b, c) => callback(b)(c)())"
25 |
26 |