0 | module Node.HTTP.Request
3 | import Node.Internal.Support
4 | import Node.HTTP.Agent
5 | import public Node.HTTP.Headers
6 | import public Node.Net.Socket.Type
7 | import public Node.Net.Socket.Connect
10 | record Options h where
11 | constructor MkOptions
15 | defaultPort: Maybe Int
16 | family: IpAddressFamily
20 | hostname: Maybe String
21 | insecureHTTPParser: Bool
22 | localAddress: Maybe String
23 | localPort: Maybe Int
25 | maxHeaderSize: Maybe Int
31 | socketPath: Maybe String
36 | defaultOptions : Options h
37 | defaultOptions = MkOptions
40 | , defaultPort = Nothing
43 | , hostname = Nothing
44 | , insecureHTTPParser = False
45 | , localAddress = Nothing
46 | , localPort = Nothing
47 | , maxHeaderSize = Nothing
51 | , protocol = "http:"
53 | , socketPath = Nothing
66 | , insecureHTTPParser
78 | agent: _maybe(agent),
80 | defaultPort: _maybe(defaultPort),
82 | headers: _maybe(headers),
83 | hostname: _maybe(hostname),
84 | insecureHTTPParser: _bool(insecureHTTPParser),
85 | localAddress: _maybe(localAddress),
86 | localPort: _maybe(localPort),
87 | maxHeaderSize: _maybe(maxHeaderSize),
92 | setHost: _bool(setHost),
93 | socketPath: _maybe(socketPath),
94 | timeout: _maybe(timeout)
97 | ffi_convertOptions :
98 | (agent: Maybe Agent)
99 | -> (auth: Maybe String)
100 | -> (defaultPort: Maybe Int)
102 | -> (headers: Maybe h)
103 | -> (hostname: Maybe String)
104 | -> (insecureHTTPParser: Bool)
105 | -> (localAddress: Maybe String)
106 | -> (localPort: Maybe Int)
107 | -> (maxHeaderSize: Maybe Int)
108 | -> (method: String)
109 | -> (path: Maybe String)
110 | -> (port: Maybe Int)
111 | -> (protocol: String)
113 | -> (socketPath: Maybe String)
114 | -> (timeout: Maybe Int)
115 | -> Node $
Request.Options h
118 | convertOptions : Options h -> Node $
Options h
119 | convertOptions o = ffi_convertOptions
123 | (familyAsInt o.family)
126 | o.insecureHTTPParser
141 | record Options (t : SocketType) where
142 | constructor MkOptions
143 | request: Request.Options Headers
144 | socket: Maybe $
Connect.options t
147 | defaultOptions : {auto t : SocketType } -> Command.Options t
148 | defaultOptions = MkOptions
149 | { request = defaultOptions
163 | ffi_convertOptions :
164 | (request : Node $
Request.Options Headers)
165 | -> (socket : Maybe AnyPtr)
166 | -> Node $
Command.Options t
169 | convertOptions : (t : SocketType) -> Command.Options t -> Node $
Command.Options t
170 | convertOptions t o = ffi_convertOptions
171 | (convertOptions o.request)
172 | (believe_me $
convertOptions t <$> o.socket)