Skip to content

Commit 54fe7ed

Browse files
authored
Updates for 1.0 core libraries (#5)
* Updates for 1.0 core libraries * Bump deps to 1.0
1 parent 8c62acf commit 54fe7ed

File tree

9 files changed

+31
-59
lines changed

9 files changed

+31
-59
lines changed

bower.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
"url": "git://github.com/purescript-node/purescript-node-http.git"
1313
},
1414
"devDependencies": {
15-
"purescript-console": "^0.1.0"
15+
"purescript-console": "^1.0.0"
1616
},
1717
"dependencies": {
18-
"purescript-maps": "^0.5.4",
19-
"purescript-options": "^0.6.0",
20-
"purescript-unsafe-coerce": "^0.1.0",
21-
"purescript-node-streams": "^0.4.0",
22-
"purescript-node-url": "^0.1.1"
18+
"purescript-maps": "^1.0.0",
19+
"purescript-node-streams": "^1.0.0",
20+
"purescript-node-url": "^1.0.0",
21+
"purescript-options": "^1.0.0",
22+
"purescript-unsafe-coerce": "^1.0.0"
2323
}
2424
}

docs/Node/HTTP.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ Get the request URL
8585
#### `requestAsStream`
8686

8787
``` purescript
88-
requestAsStream :: forall eff a. Request -> Readable () (http :: HTTP | eff) a
88+
requestAsStream :: forall eff. Request -> Readable () (http :: HTTP | eff)
8989
```
9090

9191
Coerce the request object into a readable stream.
@@ -125,7 +125,7 @@ Set the status message.
125125
#### `responseAsStream`
126126

127127
``` purescript
128-
responseAsStream :: forall eff a. Response -> Writable () (http :: HTTP | eff) a
128+
responseAsStream :: forall eff. Response -> Writable () (http :: HTTP | eff)
129129
```
130130

131131
Coerce the response object into a writable stream.

docs/Node/HTTP/Client.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,6 @@ newtype RequestHeaders
2727

2828
A HTTP request object
2929

30-
##### Instances
31-
``` purescript
32-
instance requestHeadersIsOption :: IsOption RequestHeaders
33-
```
34-
3530
#### `RequestOptions`
3631

3732
``` purescript
@@ -113,15 +108,15 @@ Make a HTTP request from a URI string and response callback.
113108
#### `requestAsStream`
114109

115110
``` purescript
116-
requestAsStream :: forall eff r a. Request -> Writable r (http :: HTTP | eff) a
111+
requestAsStream :: forall eff r. Request -> Writable r (http :: HTTP | eff)
117112
```
118113

119114
Create a writable stream from a request object.
120115

121116
#### `responseAsStream`
122117

123118
``` purescript
124-
responseAsStream :: forall eff w a. Response -> Readable w (http :: HTTP | eff) a
119+
responseAsStream :: forall eff w. Response -> Readable w (http :: HTTP | eff)
125120
```
126121

127122
Create a readable stream from a response object.

src/Node/HTTP.js

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
"use strict";
22

3-
// module Node.HTTP
4-
53
var http = require('http');
64

75
exports.createServer = function(handleRequest) {
@@ -24,14 +22,6 @@ exports.listen = function(server) {
2422
};
2523
};
2624

27-
exports.writeString = function(res) {
28-
return function(s) {
29-
return function() {
30-
res.write(s);
31-
};
32-
};
33-
};
34-
3525
exports.setHeader = function(res) {
3626
return function(key) {
3727
return function(value) {
@@ -67,13 +57,3 @@ exports.setStatusMessage = function(res) {
6757
};
6858
};
6959
};
70-
71-
exports.end = function(res) {
72-
return function(done) {
73-
return function() {
74-
res.end(null, function() {
75-
done();
76-
});
77-
};
78-
};
79-
};

src/Node/HTTP.purs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ module Node.HTTP where
44

55
import Prelude
66

7-
import Data.StrMap
8-
import Control.Monad.Eff
9-
import Node.Stream
7+
import Control.Monad.Eff (Eff)
8+
import Data.StrMap (StrMap)
9+
import Node.Stream (Writable, Readable)
1010
import Unsafe.Coerce (unsafeCoerce)
1111

1212
-- | The type of a HTTP server object

src/Node/HTTP/Client.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
"use strict";
22

3-
// module Node.HTTP.Client
4-
53
var http = require('http');
64
var https = require('https');
75

src/Node/HTTP/Client.purs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,13 @@ module Node.HTTP.Client
2525

2626
import Prelude (Unit, (<<<))
2727

28+
import Control.Monad.Eff (Eff)
2829
import Data.Foreign (Foreign, toForeign)
2930
import Data.Options (Options, Option, options, opt)
3031
import Data.StrMap (StrMap())
31-
3232
import Node.HTTP (HTTP())
3333
import Node.Stream (Readable, Writable)
3434
import Node.URL as URL
35-
36-
import Control.Monad.Eff (Eff)
37-
3835
import Unsafe.Coerce (unsafeCoerce)
3936

4037
-- | A HTTP request object

test/Main.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
"use strict";
22

3-
// module Test.Main
4-
53
exports.stdout = process.stdout;

test/Main.purs

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,23 @@ module Test.Main where
22

33
import Prelude
44

5+
import Node.Encoding (Encoding(..))
6+
import Node.HTTP (HTTP, listen, createServer, setHeader, requestMethod, requestURL, responseAsStream, requestAsStream, setStatusCode)
7+
import Node.Stream (Writable, end, pipe, writeString)
8+
import Node.HTTP.Client as Client
9+
import Control.Monad.Eff (Eff)
10+
import Control.Monad.Eff.Console (CONSOLE, log)
511
import Data.Foldable (foldMap)
6-
import Data.Options
7-
8-
import Control.Monad.Eff.Console
9-
10-
import Node.HTTP
11-
import qualified Node.HTTP.Client as Client
12-
import Node.Stream
13-
import Node.Encoding
12+
import Partial.Unsafe (unsafeCrashWith)
1413

1514
foreign import stdout :: forall eff r. Writable r eff
1615

16+
main :: forall eff. Eff (console :: CONSOLE, http :: HTTP | eff) Unit
1717
main = do
1818
testBasic
1919
testHttps
2020

21+
testBasic :: forall eff. Eff (console :: CONSOLE, http :: HTTP | eff) Unit
2122
testBasic = do
2223
server <- createServer respond
2324
listen server 8080 $ void do
@@ -31,24 +32,27 @@ testBasic = do
3132
log (requestMethod req <> " " <> requestURL req)
3233
case requestMethod req of
3334
"GET" -> do
34-
let html = foldMap (<> "\n")
35+
let html = foldMap (_ <> "\n")
3536
[ "<form method='POST' action='/'>"
3637
, " <input name='text' type='text'>"
3738
, " <input type='submit'>"
3839
, "</form>"
3940
]
4041
setHeader res "Content-Type" "text/html"
41-
writeString outputStream UTF8 html(return unit)
42-
end outputStream (return unit)
42+
writeString outputStream UTF8 html (pure unit)
43+
end outputStream (pure unit)
4344
"POST" -> void $ pipe inputStream outputStream
45+
_ -> unsafeCrashWith "Unexpected HTTP method"
4446

47+
testHttps :: forall eff. Eff (console :: CONSOLE, http :: HTTP | eff) Unit
4548
testHttps =
46-
simpleReq "https://api.github.com"
49+
simpleReq "https://pursuit.purescript.org/packages/purescript-node-http/badge"
4750

51+
simpleReq :: forall eff. String -> Eff (console :: CONSOLE, http :: HTTP | eff) Unit
4852
simpleReq uri = do
4953
log ("GET " <> uri <> ":")
5054
req <- Client.requestFromURI uri \response -> void do
5155
log "Response:"
5256
let responseStream = Client.responseAsStream response
5357
pipe responseStream stdout
54-
end (Client.requestAsStream req) (return unit)
58+
end (Client.requestAsStream req) (pure unit)

0 commit comments

Comments
 (0)