Skip to content

Commit 8553fac

Browse files
committed
Merge pull request #7 from purescript-node/stuff
A bunch of stuff
2 parents d00d836 + eb41f88 commit 8553fac

File tree

7 files changed

+229
-103
lines changed

7 files changed

+229
-103
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ language: node_js
22
sudo: false
33
node_js:
44
- 0.10
5+
- 0.12
6+
- 4.1
57
env:
68
- PATH=$HOME/purescript:$PATH
79
install:

Gruntfile.js

Lines changed: 0 additions & 30 deletions
This file was deleted.

bower.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,10 @@
1111
"dependencies": {
1212
"purescript-eff": "~0.1.0",
1313
"purescript-maybe": "~0.3.1"
14+
},
15+
"devDependencies": {
16+
"purescript-assert": "~0.1.1",
17+
"purescript-console": "~0.1.1",
18+
"purescript-foldable-traversable": "~0.4.1"
1419
}
1520
}

docs/Node/Buffer.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ An instance of Node's Buffer class.
3030
instance showBuffer :: Show Buffer
3131
```
3232

33-
#### `BufferWrite`
33+
#### `BUFFER`
3434

3535
``` purescript
36-
data BufferWrite :: !
36+
data BUFFER :: !
3737
```
3838

39-
Effect for buffer modification.
39+
Effect for buffer creation, reading, or writing.
4040

4141
#### `BufferValueType`
4242

@@ -68,23 +68,23 @@ instance showBufferValueType :: Show BufferValueType
6868
#### `create`
6969

7070
``` purescript
71-
create :: Int -> Buffer
71+
create :: forall e. Int -> Eff (buffer :: BUFFER | e) Buffer
7272
```
7373

7474
Creates a new buffer of the specified size.
7575

7676
#### `fromArray`
7777

7878
``` purescript
79-
fromArray :: Array Octet -> Buffer
79+
fromArray :: forall e. Array Octet -> Eff (buffer :: BUFFER | e) Buffer
8080
```
8181

8282
Creates a new buffer from an array of octets, sized to match the array.
8383

8484
#### `fromString`
8585

8686
``` purescript
87-
fromString :: String -> Encoding -> Buffer
87+
fromString :: forall e. String -> Encoding -> Eff (buffer :: BUFFER | e) Buffer
8888
```
8989

9090
Creates a new buffer from a string with the specified encoding, sized to
@@ -93,39 +93,39 @@ match the string.
9393
#### `read`
9494

9595
``` purescript
96-
read :: BufferValueType -> Offset -> Buffer -> Int
96+
read :: forall e. BufferValueType -> Offset -> Buffer -> Eff (buffer :: BUFFER | e) Int
9797
```
9898

9999
Reads a numeric value from a buffer at the specified offset.
100100

101101
#### `readString`
102102

103103
``` purescript
104-
readString :: Encoding -> Offset -> Offset -> Buffer -> String
104+
readString :: forall e. Encoding -> Offset -> Offset -> Buffer -> Eff (buffer :: BUFFER | e) String
105105
```
106106

107107
Reads a section of a buffer as a string with the specified encoding.
108108

109109
#### `toString`
110110

111111
``` purescript
112-
toString :: Encoding -> Buffer -> String
112+
toString :: forall e. Encoding -> Buffer -> Eff (buffer :: BUFFER | e) String
113113
```
114114

115115
Reads the buffer as a string with the specified encoding.
116116

117117
#### `write`
118118

119119
``` purescript
120-
write :: forall e. BufferValueType -> Int -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e) Unit
120+
write :: forall e. BufferValueType -> Int -> Offset -> Buffer -> Eff (buffer :: BUFFER | e) Unit
121121
```
122122

123123
Writes a numeric value to a buffer at the specified offset.
124124

125125
#### `writeString`
126126

127127
``` purescript
128-
writeString :: forall e. Encoding -> Offset -> Int -> String -> Buffer -> Eff (buffer :: BufferWrite | e) Int
128+
writeString :: forall e. Encoding -> Offset -> Int -> String -> Buffer -> Eff (buffer :: BUFFER | e) Int
129129
```
130130

131131
Writes octets from a string to a buffer at the specified offset. Multi-byte
@@ -135,47 +135,47 @@ to write them fully. The number of bytes written is returned.
135135
#### `toArray`
136136

137137
``` purescript
138-
toArray :: Buffer -> Array Octet
138+
toArray :: forall e. Buffer -> Eff (buffer :: BUFFER | e) (Array Octet)
139139
```
140140

141141
Creates an array of octets from a buffer's contents.
142142

143143
#### `getAtOffset`
144144

145145
``` purescript
146-
getAtOffset :: Offset -> Buffer -> Maybe Octet
146+
getAtOffset :: forall e. Offset -> Buffer -> Eff (buffer :: BUFFER | e) (Maybe Octet)
147147
```
148148

149149
Reads an octet from a buffer at the specified offset.
150150

151151
#### `setAtOffset`
152152

153153
``` purescript
154-
setAtOffset :: forall e. Octet -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e) Unit
154+
setAtOffset :: forall e. Octet -> Offset -> Buffer -> Eff (buffer :: BUFFER | e) Unit
155155
```
156156

157157
Writes an octet in the buffer at the specified offset.
158158

159159
#### `size`
160160

161161
``` purescript
162-
size :: Buffer -> Int
162+
size :: forall e. Buffer -> Eff (buffer :: BUFFER | e) Int
163163
```
164164

165165
Returns the size of a buffer.
166166

167167
#### `concat`
168168

169169
``` purescript
170-
concat :: Array Buffer -> Buffer
170+
concat :: forall e. Array Buffer -> Eff (buffer :: BUFFER | e) Buffer
171171
```
172172

173173
Concatenates a list of buffers.
174174

175175
#### `concat'`
176176

177177
``` purescript
178-
concat' :: Array Buffer -> Int -> Buffer
178+
concat' :: forall e. Array Buffer -> Int -> Eff (buffer :: BUFFER | e) Buffer
179179
```
180180

181181
Concatenates a list of buffers, combining them into a new buffer of the
@@ -184,16 +184,16 @@ specified length.
184184
#### `copy`
185185

186186
``` purescript
187-
copy :: Offset -> Offset -> Buffer -> Offset -> Buffer -> Buffer
187+
copy :: forall e. Offset -> Offset -> Buffer -> Offset -> Buffer -> Eff (buffer :: BUFFER | e) Int
188188
```
189189

190190
Copies a section of a source buffer into a target buffer at the specified
191-
offset.
191+
offset, and returns the number of octets copied.
192192

193193
#### `fill`
194194

195195
``` purescript
196-
fill :: forall e. Octet -> Offset -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e) Unit
196+
fill :: forall e. Octet -> Offset -> Offset -> Buffer -> Eff (buffer :: BUFFER | e) Unit
197197
```
198198

199199
Fills a range in a buffer with the specified octet.

src/Node/Buffer.js

Lines changed: 50 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,31 @@
88
exports.showImpl = require('util').inspect;
99

1010
exports.create = function (size) {
11-
return new Buffer(size);
11+
return function() {
12+
return new Buffer(size);
13+
};
1214
};
1315

1416
exports.fromArray = function (octets) {
15-
return new Buffer(octets);
17+
return function() {
18+
return new Buffer(octets);
19+
};
1620
};
1721

1822
exports.fromStringImpl = function (str) {
1923
return function (encoding) {
20-
return new Buffer(str, encoding);
24+
return function() {
25+
return new Buffer(str, encoding);
26+
};
2127
};
2228
};
2329

2430
exports.readImpl = function (ty) {
2531
return function (offset) {
2632
return function (buf) {
27-
return buf['read' + ty](offset);
33+
return function() {
34+
return buf['read' + ty](offset);
35+
};
2836
};
2937
};
3038
};
@@ -33,15 +41,19 @@ exports.readStringImpl = function (enc) {
3341
return function (start) {
3442
return function (end) {
3543
return function (buff) {
36-
return buff.toString(enc, start, end);
44+
return function() {
45+
return buff.toString(enc, start, end);
46+
};
3747
};
3848
};
3949
};
4050
};
4151

4252
exports.toStringImpl = function (enc) {
4353
return function (buff) {
44-
return buff.toString(enc);
54+
return function() {
55+
return buff.toString(enc);
56+
};
4557
};
4658
};
4759

@@ -73,16 +85,21 @@ exports.writeStringImpl = function (enc) {
7385
};
7486

7587
exports.toArray = function (buff) {
76-
return buff.toJSON();
88+
return function() {
89+
var json = buff.toJSON()
90+
return json.data || json;
91+
};
7792
};
7893

7994
exports.getAtOffsetImpl = function (nothing) {
8095
return function (just) {
8196
return function (buff) {
8297
return function (offset) {
83-
var octet = buff[offset];
84-
return octet == null ? nothing
85-
: just(buff[i]);
98+
return function() {
99+
var octet = buff[offset];
100+
return octet == null ? nothing
101+
: just(buff[i]);
102+
};
86103
};
87104
};
88105
};
@@ -91,25 +108,33 @@ exports.getAtOffsetImpl = function (nothing) {
91108
exports.setAtOffset = function (value) {
92109
return function (offset) {
93110
return function (buff) {
94-
buff[offset] = value;
95-
return {};
111+
return function() {
112+
buff[offset] = value;
113+
return {};
114+
};
96115
};
97116
};
98117
};
99118

100119
exports.size = function (buff) {
101-
return buff.length;
120+
return function() {
121+
return buff.length;
122+
};
102123
};
103124

104125

105126

106127
exports.concat = function (buffs) {
107-
return Buffer.concat(buffs);
128+
return function() {
129+
return Buffer.concat(buffs);
130+
};
108131
};
109132

110-
exports.concat$prime = function (buffs) {
133+
exports["concat'"] = function (buffs) {
111134
return function (totalLength) {
112-
return Buffer.concat(buffs, totalLength);
135+
return function() {
136+
return Buffer.concat(buffs, totalLength);
137+
};
113138
};
114139
};
115140

@@ -118,21 +143,23 @@ exports.copy = function (srcStart) {
118143
return function (src) {
119144
return function (targStart) {
120145
return function (targ) {
121-
return src.copy(targ, targStart, srcStart, strcEnd);
146+
return function() {
147+
return src.copy(targ, targStart, srcStart, srcEnd);
148+
};
122149
};
123150
};
124151
};
125152
};
126153
};
127154

128-
exports.fill = function (buff) {
129-
return function (octet) {
130-
return function (start) {
131-
return function (end) {
155+
exports.fill = function (octet) {
156+
return function (start) {
157+
return function (end) {
158+
return function (buf) {
132159
return function() {
133-
buff.fill(octet, start, end);
160+
buf.fill(octet, start, end);
134161
return {};
135-
}
162+
};
136163
};
137164
};
138165
};

0 commit comments

Comments
 (0)