@@ -2,32 +2,29 @@ module Test.Main where
22
33import Prelude
44
5- import Control.Monad.Eff (Eff )
6- import Control.Monad.Eff.Console (CONSOLE , log , logShow )
7-
85import Data.Foldable (foldMap )
96import Data.Maybe (Maybe (..))
107import Data.Options (Options , options , (:=))
11-
8+ import Effect (Effect )
9+ import Effect.Console (log , logShow )
1210import Node.Encoding (Encoding (..))
13- import Node.HTTP (HTTP , Request , Response , listen , createServer , setHeader , requestMethod , requestURL , responseAsStream , requestAsStream , setStatusCode )
11+ import Node.HTTP (Request , Response , listen , createServer , setHeader , requestMethod , requestURL , responseAsStream , requestAsStream , setStatusCode )
1412import Node.HTTP.Client as Client
1513import Node.HTTP.Secure as HTTPS
1614import Node.Stream (Writable , end , pipe , writeString )
17-
1815import Partial.Unsafe (unsafeCrashWith )
1916import Unsafe.Coerce (unsafeCoerce )
2017
21- foreign import stdout :: forall eff r . Writable r eff
18+ foreign import stdout :: forall r . Writable r
2219
23- main :: forall eff . Eff ( console :: CONSOLE , http :: HTTP | eff ) Unit
20+ main :: Effect Unit
2421main = do
2522 testBasic
2623 testHttpsServer
2724 testHttps
2825 testCookies
2926
30- respond :: forall eff . Request -> Response -> Eff ( console :: CONSOLE , http :: HTTP | eff ) Unit
27+ respond :: Request -> Response -> Effect Unit
3128respond req res = do
3229 setStatusCode res 200
3330 let inputStream = requestAsStream req
@@ -47,7 +44,7 @@ respond req res = do
4744 " POST" -> void $ pipe inputStream outputStream
4845 _ -> unsafeCrashWith " Unexpected HTTP method"
4946
50- testBasic :: forall eff . Eff ( console :: CONSOLE , http :: HTTP | eff ) Unit
47+ testBasic :: Effect Unit
5148testBasic = do
5249 server <- createServer respond
5350 listen server { hostname: " localhost" , port: 8080 , backlog: Nothing } $ void do
@@ -108,7 +105,7 @@ FO0u08Tb/091Bir5kgglUSi7VnFD3v8ffeKpkkJvtYUj7S9yoH9NQPVhKVCq6mna
108105TbGfXbnVfNmqgQh71+k02p6S
109106-----END PRIVATE KEY-----"""
110107
111- testHttpsServer :: forall eff . Eff ( console :: CONSOLE , http :: HTTP | eff ) Unit
108+ testHttpsServer :: Effect Unit
112109testHttpsServer = do
113110 server <- HTTPS .createServer sslOpts respond
114111 listen server { hostname: " localhost" , port: 8081 , backlog: Nothing } $ void do
@@ -125,30 +122,30 @@ testHttpsServer = do
125122 HTTPS .key := HTTPS .keyString mockKey <>
126123 HTTPS .cert := HTTPS .certString mockCert
127124
128- testHttps :: forall eff . Eff ( console :: CONSOLE , http :: HTTP | eff ) Unit
125+ testHttps :: Effect Unit
129126testHttps =
130127 simpleReq " https://pursuit.purescript.org/packages/purescript-node-http/badge"
131128
132- testCookies :: forall eff . Eff ( console :: CONSOLE , http :: HTTP | eff ) Unit
129+ testCookies :: Effect Unit
133130testCookies =
134131 simpleReq
135132 " https://httpbin.org/cookies/set?cookie1=firstcookie&cookie2=secondcookie"
136133
137- simpleReq :: forall eff . String -> Eff ( console :: CONSOLE , http :: HTTP | eff ) Unit
134+ simpleReq :: String -> Effect Unit
138135simpleReq uri = do
139136 log (" GET " <> uri <> " :" )
140137 req <- Client .requestFromURI uri logResponse
141138 end (Client .requestAsStream req) (pure unit)
142139
143- complexReq :: forall eff . Options Client.RequestOptions -> Eff ( console :: CONSOLE , http :: HTTP | eff ) Unit
140+ complexReq :: Options Client.RequestOptions -> Effect Unit
144141complexReq opts = do
145142 log $ optsR.method <> " " <> optsR.protocol <> " //" <> optsR.hostname <> " :" <> optsR.port <> optsR.path <> " :"
146143 req <- Client .request opts logResponse
147144 end (Client .requestAsStream req) (pure unit)
148145 where
149146 optsR = unsafeCoerce $ options opts
150147
151- logResponse :: forall eff . Client.Response -> Eff ( console :: CONSOLE , http :: HTTP | eff ) Unit
148+ logResponse :: Client.Response -> Effect Unit
152149logResponse response = void do
153150 log " Headers:"
154151 logShow $ Client .responseHeaders response
0 commit comments