Skip to content

Commit 4d9adbe

Browse files
Update handlers to drop suffix
1 parent 1e17e63 commit 4d9adbe

File tree

4 files changed

+107
-104
lines changed

4 files changed

+107
-104
lines changed

src/Node/Http2/Server.purs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
module Node.Http2.Server
22
( toTlsServer
33
, createSecureServer
4-
, checkContinueHandle
5-
, requestHandle
6-
, sessionHandle
7-
, sessionErrorHandle
8-
, streamHandle
9-
, timeoutHandle
10-
, unknownProtocolHandle
4+
, checkContinueH
5+
, requestH
6+
, sessionH
7+
, sessionErrorH
8+
, streamH
9+
, timeoutH
10+
, unknownProtocolH
1111
, setTimeout
1212
, timeout
1313
, updateSettings
@@ -41,26 +41,26 @@ createSecureServer options = runEffectFn1 createSecureServerImpl options
4141

4242
foreign import createSecureServerImpl :: forall r. EffectFn1 { | r } (Http2SecureServer)
4343

44-
checkContinueHandle :: EventHandle2 Http2SecureServer Http2ServerRequest Http2ServerResponse
45-
checkContinueHandle = EventHandle "checkContinue" \cb -> mkEffectFn2 \a b -> cb a b
44+
checkContinueH :: EventHandle2 Http2SecureServer Http2ServerRequest Http2ServerResponse
45+
checkContinueH = EventHandle "checkContinue" \cb -> mkEffectFn2 \a b -> cb a b
4646

47-
requestHandle :: EventHandle2 Http2SecureServer Http2ServerRequest Http2ServerResponse
48-
requestHandle = EventHandle "request" \cb -> mkEffectFn2 \a b -> cb a b
47+
requestH :: EventHandle2 Http2SecureServer Http2ServerRequest Http2ServerResponse
48+
requestH = EventHandle "request" \cb -> mkEffectFn2 \a b -> cb a b
4949

50-
sessionHandle :: EventHandle1 Http2SecureServer (Http2Session Server)
51-
sessionHandle = EventHandle "session" mkEffectFn1
50+
sessionH :: EventHandle1 Http2SecureServer (Http2Session Server)
51+
sessionH = EventHandle "session" mkEffectFn1
5252

53-
sessionErrorHandle :: EventHandle2 Http2SecureServer Error (Http2Session Server)
54-
sessionErrorHandle = EventHandle "sessionError" \cb -> mkEffectFn2 \a b -> cb a b
53+
sessionErrorH :: EventHandle2 Http2SecureServer Error (Http2Session Server)
54+
sessionErrorH = EventHandle "sessionError" \cb -> mkEffectFn2 \a b -> cb a b
5555

56-
streamHandle :: EventHandle4 Http2SecureServer (Http2Stream Server) (Headers) BitwiseFlag (Array String)
57-
streamHandle = EventHandle "stream" \cb -> mkEffectFn4 \a b c d -> cb a b c d
56+
streamH :: EventHandle4 Http2SecureServer (Http2Stream Server) (Headers) BitwiseFlag (Array String)
57+
streamH = EventHandle "stream" \cb -> mkEffectFn4 \a b c d -> cb a b c d
5858

59-
timeoutHandle :: EventHandle0 TlsServer
60-
timeoutHandle = EventHandle "timeout" identity
59+
timeoutH :: EventHandle0 TlsServer
60+
timeoutH = EventHandle "timeout" identity
6161

62-
unknownProtocolHandle :: EventHandle1 Http2SecureServer Duplex
63-
unknownProtocolHandle = EventHandle "unknownProtocol" mkEffectFn1
62+
unknownProtocolH :: EventHandle1 Http2SecureServer Duplex
63+
unknownProtocolH = EventHandle "unknownProtocol" mkEffectFn1
6464

6565
setTimeout :: Http2SecureServer -> Milliseconds -> Effect Http2SecureServer
6666
setTimeout s ms = runEffectFn2 setTimeoutImpl s ms

src/Node/Http2/Session.purs

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
module Node.Http2.Session
22
( toEventEmitter
3-
, closeHandle
4-
, connectHandle
5-
, errorHandle
6-
, frameErrorHandle
7-
, goAwayHandle
8-
, localSettingsHandle
9-
, pingHandle
10-
, remoteSettingsHandle
11-
, streamHandle
12-
, timeoutHandle
3+
, closeH
4+
, connectH
5+
, errorH
6+
, frameErrorH
7+
, goAwayH
8+
, localSettingsH
9+
, pingH
10+
, remoteSettingsH
11+
, streamH
12+
, timeoutH
1313
, alpnProtocol
1414
, close
1515
, closed
@@ -72,40 +72,40 @@ import Unsafe.Coerce (unsafeCoerce)
7272
toEventEmitter :: forall endpoint. Http2Session endpoint -> EventEmitter
7373
toEventEmitter = unsafeCoerce
7474

75-
closeHandle :: forall endpoint. EventHandle0 (Http2Session endpoint)
76-
closeHandle = EventHandle "close" identity
75+
closeH :: forall endpoint. EventHandle0 (Http2Session endpoint)
76+
closeH = EventHandle "close" identity
7777

78-
connectHandle :: forall endpoint. EventHandle2 (Http2Session endpoint) (Http2Session endpoint) (Socket TCP)
79-
connectHandle = EventHandle "connect" \cb -> mkEffectFn2 \a b -> cb a b
78+
connectH :: forall endpoint. EventHandle2 (Http2Session endpoint) (Http2Session endpoint) (Socket TCP)
79+
connectH = EventHandle "connect" \cb -> mkEffectFn2 \a b -> cb a b
8080

81-
errorHandle :: forall endpoint. EventHandle1 (Http2Session endpoint) Error
82-
errorHandle = EventHandle "error" mkEffectFn1
81+
errorH :: forall endpoint. EventHandle1 (Http2Session endpoint) Error
82+
errorH = EventHandle "error" mkEffectFn1
8383

84-
frameErrorHandle :: forall endpoint. EventHandle3 (Http2Session endpoint) FrameType ErrorCode StreamId
85-
frameErrorHandle = EventHandle "frameError" \cb -> mkEffectFn3 \a b c -> cb a b c
84+
frameErrorH :: forall endpoint. EventHandle3 (Http2Session endpoint) FrameType ErrorCode StreamId
85+
frameErrorH = EventHandle "frameError" \cb -> mkEffectFn3 \a b c -> cb a b c
8686

87-
goAwayHandle
87+
goAwayH
8888
:: forall endpoint
8989
. EventHandle
9090
(Http2Session endpoint)
9191
(ErrorCode -> StreamId -> (Maybe Buffer) -> Effect Unit)
9292
(EffectFn3 ErrorCode StreamId (Nullable Buffer) Unit)
93-
goAwayHandle = EventHandle "goAway" \cb -> mkEffectFn3 \a b c -> cb a b (toMaybe c)
93+
goAwayH = EventHandle "goAway" \cb -> mkEffectFn3 \a b c -> cb a b (toMaybe c)
9494

95-
localSettingsHandle :: forall endpoint. EventHandle1 (Http2Session endpoint) Settings
96-
localSettingsHandle = EventHandle "localSettings" mkEffectFn1
95+
localSettingsH :: forall endpoint. EventHandle1 (Http2Session endpoint) Settings
96+
localSettingsH = EventHandle "localSettings" mkEffectFn1
9797

98-
pingHandle :: forall endpoint. EventHandle1 (Http2Session endpoint) Buffer
99-
pingHandle = EventHandle "ping" mkEffectFn1
98+
pingH :: forall endpoint. EventHandle1 (Http2Session endpoint) Buffer
99+
pingH = EventHandle "ping" mkEffectFn1
100100

101-
remoteSettingsHandle :: forall endpoint. EventHandle1 (Http2Session endpoint) Settings
102-
remoteSettingsHandle = EventHandle "remoteSettings" mkEffectFn1
101+
remoteSettingsH :: forall endpoint. EventHandle1 (Http2Session endpoint) Settings
102+
remoteSettingsH = EventHandle "remoteSettings" mkEffectFn1
103103

104-
streamHandle :: forall endpoint. EventHandle4 (Http2Session endpoint) (Http2Stream endpoint) Headers BitwiseFlag (Array String)
105-
streamHandle = EventHandle "stream" \cb -> mkEffectFn4 \a b c d -> cb a b c d
104+
streamH :: forall endpoint. EventHandle4 (Http2Session endpoint) (Http2Stream endpoint) Headers BitwiseFlag (Array String)
105+
streamH = EventHandle "stream" \cb -> mkEffectFn4 \a b c d -> cb a b c d
106106

107-
timeoutHandle :: forall endpoint. EventHandle0 (Http2Session endpoint)
108-
timeoutHandle = EventHandle "timeout" identity
107+
timeoutH :: forall endpoint. EventHandle0 (Http2Session endpoint)
108+
timeoutH = EventHandle "timeout" identity
109109

110110
alpnProtocol :: forall endpoint. Http2Session endpoint -> Effect (Maybe String)
111111
alpnProtocol session = map toMaybe $ runEffectFn1 alpnProtocolImpl session

src/Node/Http2/Stream.purs

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
module Node.Http2.Stream
22
( toDuplex
3-
, abortedHandle
4-
, closeHandle
5-
, errorHandle
6-
, frameErrorHandle
7-
, readyHandle
8-
, timeoutHandle
9-
, trailersHandle
10-
, wantTrailersHandle
3+
, abortedH
4+
, closeH
5+
, errorH
6+
, frameErrorH
7+
, readyH
8+
, timeoutH
9+
, trailersH
10+
, wantTrailersH
1111
, bufferSize
1212
, close
1313
, closed
@@ -38,10 +38,10 @@ module Node.Http2.Stream
3838
, respondWithFd
3939
, RespondWithFileOptions
4040
, respondWithFile
41-
, continueHandle
42-
, headersHandle
43-
, pushHandle
44-
, responseHandle
41+
, continueH
42+
, headersH
43+
, pushH
44+
, responseH
4545
) where
4646

4747
import Prelude
@@ -70,29 +70,29 @@ import Unsafe.Coerce (unsafeCoerce)
7070
toDuplex :: forall endpoint. Http2Stream endpoint -> Duplex
7171
toDuplex = unsafeCoerce
7272

73-
abortedHandle :: forall endpoint. EventHandle0 (Http2Stream endpoint)
74-
abortedHandle = EventHandle "aborted" identity
73+
abortedH :: forall endpoint. EventHandle0 (Http2Stream endpoint)
74+
abortedH = EventHandle "aborted" identity
7575

76-
closeHandle :: forall endpoint. EventHandle0 (Http2Stream endpoint)
77-
closeHandle = EventHandle "close" identity
76+
closeH :: forall endpoint. EventHandle0 (Http2Stream endpoint)
77+
closeH = EventHandle "close" identity
7878

79-
errorHandle :: forall endpoint. EventHandle1 (Http2Stream endpoint) Error
80-
errorHandle = EventHandle "error" mkEffectFn1
79+
errorH :: forall endpoint. EventHandle1 (Http2Stream endpoint) Error
80+
errorH = EventHandle "error" mkEffectFn1
8181

82-
frameErrorHandle :: forall endpoint. EventHandle3 (Http2Stream endpoint) FrameType ErrorCode StreamId
83-
frameErrorHandle = EventHandle "frameError" \cb -> mkEffectFn3 \a b c -> cb a b c
82+
frameErrorH :: forall endpoint. EventHandle3 (Http2Stream endpoint) FrameType ErrorCode StreamId
83+
frameErrorH = EventHandle "frameError" \cb -> mkEffectFn3 \a b c -> cb a b c
8484

85-
readyHandle :: forall endpoint. EventHandle0 (Http2Stream endpoint)
86-
readyHandle = EventHandle "ready" identity
85+
readyH :: forall endpoint. EventHandle0 (Http2Stream endpoint)
86+
readyH = EventHandle "ready" identity
8787

88-
timeoutHandle :: forall endpoint. EventHandle0 (Http2Stream endpoint)
89-
timeoutHandle = EventHandle "timeout" identity
88+
timeoutH :: forall endpoint. EventHandle0 (Http2Stream endpoint)
89+
timeoutH = EventHandle "timeout" identity
9090

91-
trailersHandle :: forall endpoint. EventHandle2 (Http2Stream endpoint) Settings BitwiseFlag
92-
trailersHandle = EventHandle "trailers" \cb -> mkEffectFn2 \a b -> cb a b
91+
trailersH :: forall endpoint. EventHandle2 (Http2Stream endpoint) Settings BitwiseFlag
92+
trailersH = EventHandle "trailers" \cb -> mkEffectFn2 \a b -> cb a b
9393

94-
wantTrailersHandle :: forall endpoint. EventHandle0 (Http2Stream endpoint)
95-
wantTrailersHandle = EventHandle "wantTrailers" identity
94+
wantTrailersH :: forall endpoint. EventHandle0 (Http2Stream endpoint)
95+
wantTrailersH = EventHandle "wantTrailers" identity
9696

9797
bufferSize :: forall endpoint. Http2Stream endpoint -> Effect Int
9898
bufferSize s = runEffectFn1 bufferSizeImpl s
@@ -285,15 +285,15 @@ respondWithFile s fp h o = runEffectFn4 respondWithFileImpl s fp h o
285285

286286
foreign import respondWithFileImpl :: EffectFn4 (Http2Stream Server) (FilePath) (Headers) (RespondWithFileOptions) (Unit)
287287

288-
continueHandle :: EventHandle0 (Http2Stream Client)
289-
continueHandle = EventHandle "continue" identity
288+
continueH :: EventHandle0 (Http2Stream Client)
289+
continueH = EventHandle "continue" identity
290290

291-
headersHandle :: EventHandle2 (Http2Stream Client) Headers BitwiseFlag
292-
headersHandle = EventHandle "headers" \cb -> mkEffectFn2 \a b -> cb a b
291+
headersH :: EventHandle2 (Http2Stream Client) Headers BitwiseFlag
292+
headersH = EventHandle "headers" \cb -> mkEffectFn2 \a b -> cb a b
293293

294-
pushHandle :: EventHandle2 (Http2Stream Client) Headers BitwiseFlag
295-
pushHandle = EventHandle "push" \cb -> mkEffectFn2 \a b -> cb a b
294+
pushH :: EventHandle2 (Http2Stream Client) Headers BitwiseFlag
295+
pushH = EventHandle "push" \cb -> mkEffectFn2 \a b -> cb a b
296296

297-
responseHandle :: EventHandle2 (Http2Stream Client) Headers BitwiseFlag
298-
responseHandle = EventHandle "response" \cb -> mkEffectFn2 \a b -> cb a b
297+
responseH :: EventHandle2 (Http2Stream Client) Headers BitwiseFlag
298+
responseH = EventHandle "response" \cb -> mkEffectFn2 \a b -> cb a b
299299

test/Test/Main.purs

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@ import Effect.Class.Console (log)
88
import Effect.Exception as Exception
99
import Effect.Ref as Ref
1010
import Node.Buffer as Buffer
11-
import Node.Buffer.Immutable (ImmutableBuffer)
1211
import Node.Encoding (Encoding(..))
13-
import Node.EventEmitter (on)
12+
import Node.EventEmitter (on_)
1413
import Node.FS.Sync as FS
1514
import Node.Http2.Client as Client
1615
import Node.Http2.ErrorCode as ErrorCode
@@ -24,6 +23,7 @@ import Node.Http2.Types (Http2Session)
2423
import Node.Net.Server as NServer
2524
import Node.Path as Path
2625
import Node.Stream as Stream
26+
import Node.TLS.Server as Tls
2727
import Unsafe.Coerce (unsafeCoerce)
2828

2929
logWith :: String -> String -> Effect Unit
@@ -40,20 +40,23 @@ main = do
4040
{ key: [ privateKey ]
4141
, cert: [ cert ]
4242
}
43-
on Server.checkContinueHandle server.http2 \req res -> do
43+
let
44+
tlsServer = Server.toTlsServer server
45+
tcpServer = Tls.toTcpServer tlsServer
46+
server # on_ Server.checkContinueH \req res -> do
4447
log "server - onCheckContinue"
45-
on NServer.connectionHandle server.net \duplex -> do
48+
tcpServer # on_ NServer.connectionH \duplex -> do
4649
log "server - onConnection"
47-
on Server.sessionHandle server.http2 \session -> do
50+
server # on_ Server.sessionH \session -> do
4851
log "server - onSession"
4952
log "Testing properties for any thrown errors"
5053
printHttp2SessionState session
5154

52-
on Server.sessionErrorHandle server.http2 \err session -> do
55+
server # on_ Server.sessionErrorH \err session -> do
5356
log "server - onSessionError"
5457
log (unsafeCoerce err)
5558
printHttp2SessionState session
56-
on Server.streamHandle server.http2 \stream headers flags rawHeaders -> do
59+
server # on_ Server.streamH \stream headers flags rawHeaders -> do
5760
streamId <- H2Stream.id stream
5861
log $ "server - onStream for id: " <> show streamId
5962
log $ printHeaders' "\n" headers
@@ -65,28 +68,28 @@ main = do
6568
, waitForTrailers: true
6669
}
6770
-- H2Stream.close stream ErrorCode.noError
68-
Stream.writeStringCb_ duplex UTF8 "hello from server" \err -> do
71+
void $ Stream.writeString' duplex UTF8 "hello from server" \err -> do
6972
log (unsafeCoerce err)
7073
Stream.end' duplex \_ -> do
7174
log $ "server - onStream - closing for id: " <> show streamId
7275
H2Stream.close stream ErrorCode.noError
7376

74-
on Server.timeoutHandle server.tls do
77+
tlsServer # on_ Server.timeoutH do
7578
log "onTimeout"
76-
on Server.unknownProtocolHandle server.http2 \duplex -> do
79+
server # on_ Server.unknownProtocolH \duplex -> do
7780
log "onUnknownProtocol"
7881
-- https://stackoverflow.com/a/63173619
7982
-- "In UNIX-like systems, non-root users are unable to bind to ports lower than 1024."
8083
let httpsPort = 8443
81-
NServer.listenTcp server.net
84+
NServer.listenTcp tcpServer
8285
{ port: httpsPort
8386
}
84-
on NServer.listeningHandle server.net do
87+
tcpServer # on_ NServer.listeningH do
8588
log "server listening"
8689
session <- Client.connect' ("https://localhost:" <> show httpsPort)
8790
{ ca: [ cert ]
8891
}
89-
on Session.errorHandle session \error ->
92+
session # on_ Session.errorH \error ->
9093
log $ "Client session encountered error: " <> Exception.message error
9194
stream <- Session.request session
9295
( unsafeCoerce
@@ -96,21 +99,21 @@ main = do
9699
)
97100
let duplex = toDuplex stream
98101
Stream.end duplex
99-
on H2Stream.responseHandle stream \headers flags -> do
102+
stream # on_ H2Stream.responseH \headers flags -> do
100103
log "client - onResponse"
101104
log $ printHeaders' "\n" headers
102105
log $ "Flags: " <> printFlags flags
103106
chunksRef <- Ref.new []
104-
on Stream.dataHandle duplex \buf ->
107+
duplex # on_ Stream.dataH \buf ->
105108
Ref.modify_ (flip Array.snoc buf) chunksRef
106-
on Stream.endHandle duplex do
109+
duplex # on_ Stream.endH do
107110
chunks <- Ref.read chunksRef
108111
buffer <- Buffer.concat chunks :: Effect Buffer.Buffer
109112
str <- Buffer.toString UTF8 buffer :: Effect String
110113
log $ "client - onResponse body: " <> show str
111114
H2Stream.close stream ErrorCode.noError
112115
Session.destroy session
113-
NServer.close server.net
116+
NServer.close tcpServer
114117

115118
printHttp2SessionState :: forall endpoint. Http2Session endpoint -> Effect Unit
116119
printHttp2SessionState session = do

0 commit comments

Comments
 (0)