Skip to content

Commit e6369db

Browse files
author
Vilson Fabricio Juliatto
committed
Add onUpgrade function (#32)
1 parent 1ff3ba9 commit e6369db

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

bower.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"purescript-foreign-object": "master",
2323
"purescript-maybe": "master",
2424
"purescript-node-buffer": "master",
25+
"purescript-node-net": "master",
2526
"purescript-node-streams": "master",
2627
"purescript-node-url": "master",
2728
"purescript-nullable": "main",

src/Node/HTTP.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,16 @@ exports.listenSocket = function (server) {
4646
};
4747
};
4848

49+
exports.onUpgrade = function (server) {
50+
return function (cb) {
51+
return function () {
52+
server.on("upgrade", function (req, socket, buffer) {
53+
return cb(req)(socket)(buffer)();
54+
});
55+
};
56+
};
57+
};
58+
4959
exports.setHeader = function (res) {
5060
return function (key) {
5161
return function (value) {

src/Node/HTTP.purs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ module Node.HTTP
1010
, close
1111
, ListenOptions
1212
, listenSocket
13+
, onUpgrade
1314

1415
, httpVersion
1516
, requestHeaders
@@ -30,6 +31,8 @@ import Data.Maybe (Maybe)
3031
import Data.Nullable (Nullable, toNullable)
3132
import Effect (Effect)
3233
import Foreign.Object (Object)
34+
import Node.Buffer (Buffer)
35+
import Node.Net.Socket (Socket)
3336
import Node.Stream (Writable, Readable)
3437
import Unsafe.Coerce (unsafeCoerce)
3538

@@ -67,6 +70,9 @@ type ListenOptions =
6770
-- | Listen on a unix socket. The specified callback will be run when setup is complete.
6871
foreign import listenSocket :: Server -> String -> Effect Unit -> Effect Unit
6972

73+
-- | Listen to `upgrade` events on the server
74+
foreign import onUpgrade :: Server -> (Request -> Socket -> Buffer -> Effect Unit) -> Effect Unit
75+
7076
-- | Get the request HTTP version
7177
httpVersion :: Request -> String
7278
httpVersion = _.httpVersion <<< unsafeCoerce

0 commit comments

Comments
 (0)