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