0 | module Node.Net.CreateServer
 1 |
 2 | import Node
 3 | import Node.Internal.Support
 4 |
 5 | public export
 6 | record Options where
 7 |   constructor MkOptions
 8 |   allowHalfOpen : Bool
 9 |   pauseOnConnect : Bool
10 |   noDelay : Bool
11 |   keepAlive : Bool
12 |   keepAliveInitialDelay : Int
13 |
14 | export
15 | defaultOptions : CreateServer.Options
16 | defaultOptions = MkOptions
17 |   { allowHalfOpen = False
18 |   , pauseOnConnect = False
19 |   , noDelay = False
20 |   , keepAlive = False
21 |   , keepAliveInitialDelay = 0
22 |   }
23 |
24 | %foreign """
25 |   node:lambda:
26 |   ( allowHalfOpen
27 |   , pauseOnConnect
28 |   , noDelay
29 |   , keepAlive
30 |   , keepAliveInitialDelay
31 |   ) => _keepDefined({
32 |     allowHalfOpen: _bool(allowHalfOpen),
33 |     pauseOnConnect: _bool(pauseOnConnect),
34 |     noDelay: _bool(noDelay),
35 |     keepAlive: _bool(keepAlive),
36 |     keepAliveInitialDelay
37 |   })
38 |   """
39 | ffi_convertOptions :
40 |   (allowHalfOpen : Bool) ->
41 |   (pauseOnConnect : Bool) ->
42 |   (noDelay : Bool) ->
43 |   (keepAlive : Bool) ->
44 |   (keepAliveInitialDelay : Int) ->
45 |   Node CreateServer.Options
46 |
47 | export
48 | convertOptions : CreateServer.Options -> Node CreateServer.Options
49 | convertOptions o = ffi_convertOptions
50 |   o.allowHalfOpen
51 |   o.pauseOnConnect
52 |   o.noDelay
53 |   o.keepAlive
54 |   o.keepAliveInitialDelay
55 |
56 |