Skip to content

Commit c722e4a

Browse files
committed
Updates for 0.7.0
1 parent 184c850 commit c722e4a

File tree

7 files changed

+189
-136
lines changed

7 files changed

+189
-136
lines changed

bower.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"tests"
1010
],
1111
"dependencies": {
12-
"purescript-maybe": "~0.2.1"
12+
"purescript-eff": "~0.1.0",
13+
"purescript-maybe": "~0.3.1"
1314
}
1415
}

src/Node/Buffer.js

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
/* global exports */
2+
/* global Buffer */
3+
/* global require */
4+
"use strict";
5+
6+
// module Node.Buffer
7+
8+
exports.showImpl = require('util').inspect;
9+
10+
exports.create = function (size) {
11+
return new Buffer(size);
12+
};
13+
14+
exports.fromArray = function (octets) {
15+
return new Buffer(octets);
16+
};
17+
18+
exports.fromStringImpl = function (str) {
19+
return function (encoding) {
20+
return new Buffer(str, encoding);
21+
};
22+
};
23+
24+
exports.readImpl = function (ty) {
25+
return function (offset) {
26+
return function (buf) {
27+
return buf['read' + ty](offset);
28+
};
29+
};
30+
};
31+
32+
exports.readStringImpl = function (enc) {
33+
return function (start) {
34+
return function (end) {
35+
return function (buff) {
36+
return buff.toString(enc, start, end);
37+
};
38+
};
39+
};
40+
};
41+
42+
exports.toStringImpl = function (enc) {
43+
return function (buff) {
44+
return buff.toString(enc);
45+
};
46+
};
47+
48+
exports.writeImpl = function (ty) {
49+
return function (value) {
50+
return function (offset) {
51+
return function (buf) {
52+
buf['write' + ty](value, offset);
53+
return {};
54+
};
55+
};
56+
};
57+
};
58+
59+
exports.writeStringImpl = function (enc) {
60+
return function (offset) {
61+
return function (length) {
62+
return function (value) {
63+
return function (buff) {
64+
return buff.write(value, offset, length, encoding);
65+
};
66+
};
67+
};
68+
};
69+
};
70+
71+
exports.toArray = function (buff) {
72+
return buff.toJSON();
73+
};
74+
75+
exports.getAtOffsetImpl = function (nothing) {
76+
return function (just) {
77+
return function (buff) {
78+
return function (offset) {
79+
var octet = buff[offset];
80+
return octet == null ? nothing
81+
: just(buff[i]);
82+
};
83+
};
84+
};
85+
};
86+
87+
exports.setAtOffset = function (value) {
88+
return function (offset) {
89+
return function (buff) {
90+
buff[offset] = value;
91+
return {};
92+
};
93+
};
94+
};
95+
96+
exports.size = function (buff) {
97+
return buff.length;
98+
};
99+
100+
101+
102+
exports.concat = function (buffs) {
103+
return Buffer.concat(buffs);
104+
};
105+
106+
exports.concat$prime = function (buffs) {
107+
return function (totalLength) {
108+
return Buffer.concat(buffs, totalLength);
109+
};
110+
};
111+
112+
exports.copy = function (srcStart) {
113+
return function (srcEnd) {
114+
return function (src) {
115+
return function (targStart) {
116+
return function (targ) {
117+
return src.copy(targ, targStart, srcStart, strcEnd);
118+
};
119+
};
120+
};
121+
};
122+
};
123+
124+
exports.fill = function (buff) {
125+
return function (octet) {
126+
return function (start) {
127+
return function (end) {
128+
buff.fill(octet, start, end);
129+
return {};
130+
};
131+
};
132+
};
133+
};

src/Node/Buffer.purs

Lines changed: 26 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ module Node.Buffer
2222
, fill
2323
) where
2424

25+
import Prelude
2526
import Control.Monad.Eff
2627
import Data.Maybe
2728
import Node.Encoding
@@ -45,7 +46,7 @@ foreign import data Buffer :: *
4546
instance showBuffer :: Show Buffer where
4647
show = showImpl
4748

48-
foreign import showImpl "var showImpl = require('util').inspect;" :: Buffer -> String
49+
foreign import showImpl :: Buffer -> String
4950

5051
-- |
5152
-- Effect for buffer modification.
@@ -90,18 +91,12 @@ instance showBufferValueType :: Show BufferValueType where
9091
-- |
9192
-- Creates a new buffer of the specified size.
9293
--
93-
foreign import create
94-
"function create (size) { \
95-
\ return new Buffer(size); \
96-
\}" :: Number -> Buffer
94+
foreign import create :: Int -> Buffer
9795

9896
-- |
9997
-- Creates a new buffer from an array of octets, sized to match the array.
10098
--
101-
foreign import fromArray
102-
"function fromArray (octets) { \
103-
\ return new Buffer(octets); \
104-
\}" :: [Octet] -> Buffer
99+
foreign import fromArray :: Array Octet -> Buffer
105100

106101
-- |
107102
-- Creates a new buffer from a string with the specified encoding, sized to
@@ -110,76 +105,40 @@ foreign import fromArray
110105
fromString :: String -> Encoding -> Buffer
111106
fromString str = fromStringImpl str <<< show
112107

113-
foreign import fromStringImpl
114-
"function fromStringImpl (str) { \
115-
\ return function (encoding) { \
116-
\ return new Buffer(str, encoding); \
117-
\ }; \
118-
\}" :: String -> String -> Buffer
108+
foreign import fromStringImpl :: String -> String -> Buffer
119109

120110
-- |
121111
-- Reads a numeric value from a buffer at the specified offset.
122112
--
123113
read :: BufferValueType -> Offset -> Buffer -> Number
124114
read = readImpl <<< show
125115

126-
foreign import readImpl
127-
"function readImpl (ty) { \
128-
\ return function (offset) { \
129-
\ return function (buf) { \
130-
\ return buf['read' + ty](offset); \
131-
\ }; \
132-
\ }; \
133-
\}" :: String -> Offset -> Buffer -> Number
134-
116+
foreign import readImpl :: String -> Offset -> Buffer -> Number
135117

136118
-- |
137119
-- Reads a section of a buffer as a string with the specified encoding.
138120
--
139121
readString :: forall e. Encoding -> Offset -> Offset -> Buffer -> String
140122
readString = readStringImpl <<< show
141123

142-
foreign import readStringImpl
143-
"function readStringImpl (enc) { \
144-
\ return function (start) { \
145-
\ return function (end) { \
146-
\ return function (buff) { \
147-
\ return buff.toString(enc, start, end); \
148-
\ } \
149-
\ } \
150-
\ } \
151-
\}":: String -> Offset -> Offset -> Buffer -> String
124+
foreign import readStringImpl :: String -> Offset -> Offset -> Buffer -> String
152125

153126
-- |
154127
-- Reads the buffer as a string with the specified encoding.
155128
--
156129
toString :: forall e. Encoding -> Buffer -> String
157130
toString = toStringImpl <<< show
158131

159-
foreign import toStringImpl
160-
"function toStringImpl (enc) { \
161-
\ return function (buff) { \
162-
\ return buff.toString(enc); \
163-
\ } \
164-
\}":: String -> Buffer -> String
132+
foreign import toStringImpl :: String -> Buffer -> String
165133

166134
-- |
167135
-- Writes a numeric value to a buffer at the specified offset.
168136
--
169137
write :: forall e. BufferValueType -> Number -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e) Unit
170138
write = writeImpl <<< show
171139

172-
foreign import writeImpl
173-
"function writeImpl (ty) { \
174-
\ return function (value) { \
175-
\ return function (offset) { \
176-
\ return function (buf) { \
177-
\ buf['write' + ty](value, offset); \
178-
\ return {}; \
179-
\ }; \
180-
\ }; \
181-
\ }; \
182-
\}" :: forall e. String -> Number -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e) Unit
140+
foreign import writeImpl ::
141+
forall e. String -> Number -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e) Unit
183142

184143
-- |
185144
-- Writes octets from a string to a buffer at the specified offset. Multi-byte
@@ -189,107 +148,53 @@ foreign import writeImpl
189148
writeString :: forall e. Encoding -> Offset -> Number -> String -> Buffer -> Eff (buffer :: BufferWrite | e) Number
190149
writeString = writeStringImpl <<< show
191150

192-
foreign import writeStringImpl
193-
"function writeStringImpl (enc) { \
194-
\ return function (offset) { \
195-
\ return function (length) { \
196-
\ return function (value) { \
197-
\ return function (buff) { \
198-
\ return buff.write(value, offset, length, encoding); \
199-
\ }; \
200-
\ }; \
201-
\ }; \
202-
\ }; \
203-
\}" :: forall e. String -> Offset -> Number -> String -> Buffer -> Eff (buffer :: BufferWrite | e) Number
151+
foreign import writeStringImpl ::
152+
forall e. String -> Offset -> Number -> String -> Buffer -> Eff (buffer :: BufferWrite | e) Number
204153

205154
-- |
206155
-- Creates an array of octets from a buffer's contents.
207156
--
208-
foreign import toArray
209-
"function toArray (buff) { \
210-
\ return buff.toJSON(); \
211-
\}" :: Buffer -> [Octet]
157+
foreign import toArray :: Buffer -> Array Octet
212158

213159
-- |
214160
-- Reads an octet from a buffer at the specified offset.
215161
--
216-
foreign import getAtOffset
217-
"function getAtOffset (buff) { \
218-
\ return function (offset) { \
219-
\ var octet = buff[offset]; \
220-
\ return octet == null ? _ps.Data_Maybe.Nothing \
221-
\ : _ps.Data_Maybe.Just(buff[i]); \
222-
\ } \
223-
\}" :: Offset -> Buffer -> Maybe Octet
162+
getAtOffset :: Offset -> Buffer -> Maybe Octet
163+
getAtOffset = getAtOffsetImpl Just Nothing
164+
165+
foreign import getAtOffsetImpl ::
166+
(Octet -> Maybe Octet) -> Maybe Octet -> Offset -> Buffer -> Maybe Octet
224167

225168
-- |
226169
-- Writes an octet in the buffer at the specified offset.
227170
--
228-
foreign import setAtOffset
229-
"function setAtOffset (value) { \
230-
\ return function (offset) { \
231-
\ return function (buff) { \
232-
\ buff[offset] = value; \
233-
\ return {}; \
234-
\ } \
235-
\ } \
236-
\}" :: forall e. Octet -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e) Unit
171+
foreign import setAtOffset ::
172+
forall e. Octet -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e) Unit
237173

238174
-- |
239175
-- Returns the size of a buffer.
240176
--
241-
foreign import size
242-
"function size (buff) { \
243-
\ return buff.length; \
244-
\}" :: forall e. Buffer -> Number
177+
foreign import size :: Buffer -> Number
245178

246179
-- |
247180
-- Concatenates a list of buffers.
248181
--
249-
foreign import concat
250-
"function concat (buffs) { \
251-
\ return Buffer.concat(buffs); \
252-
\}" :: [Buffer] -> Buffer
182+
foreign import concat :: Array Buffer -> Buffer
253183

254184
-- |
255185
-- Concatenates a list of buffers, combining them into a new buffer of the
256186
-- specified length.
257187
--
258-
foreign import concat'
259-
"function concat$prime (buffs) { \
260-
\ return function (totalLength) { \
261-
\ return Buffer.concat(buffs, totalLength); \
262-
\ } \
263-
\}" :: [Buffer] -> Number -> Buffer
188+
foreign import concat' :: Array Buffer -> Number -> Buffer
264189

265190
-- |
266191
-- Copies a section of a source buffer into a target buffer at the specified
267192
-- offset.
268193
--
269-
foreign import copy
270-
"function copy (srcStart) { \
271-
\ return function (srcEnd) { \
272-
\ return function (src) { \
273-
\ return function (targStart) { \
274-
\ return function (targ) { \
275-
\ return src.copy(targ, targStart, srcStart, strcEnd); \
276-
\ } \
277-
\ } \
278-
\ } \
279-
\ } \
280-
\}" :: Offset -> Offset -> Buffer -> Offset -> Buffer -> Buffer
194+
foreign import copy :: Offset -> Offset -> Buffer -> Offset -> Buffer -> Buffer
281195

282196
-- |
283197
-- Fills a range in a buffer with the specified octet.
284198
--
285-
foreign import fill
286-
"function fill (buff) { \
287-
\ return function (octet) { \
288-
\ return function (start) { \
289-
\ return function (end) { \
290-
\ buff.fill(octet, start, end); \
291-
\ return {}; \
292-
\ } \
293-
\ } \
294-
\ } \
295-
\}" :: forall e. Octet -> Offset -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e) Unit
199+
foreign import fill ::
200+
forall e. Octet -> Offset -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e) Unit

0 commit comments

Comments
 (0)