Skip to content

Commit 04a61c2

Browse files
fix tests and cleanup code
1 parent b647de0 commit 04a61c2

File tree

5 files changed

+58
-49
lines changed

5 files changed

+58
-49
lines changed

client.js

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var pull = require('pull-stream')
55
var net = require('net')
66

77
module.exports = function (port, address, cb) {
8+
cb = cb || function () {}
89
port |= 0
910
var clientHandle = new TCP()
1011
var connect = new TCPConnectWrap()
@@ -23,21 +24,13 @@ module.exports = function (port, address, cb) {
2324
err = clientHandle.connect6(connect, address, port)
2425
}
2526

26-
// stream = err ? Handle(clientHandle, function () {}) : pull.error(err)
27-
// if (!err) return Handle(clientHandle, function () {})
28-
// if (err) return cb(new Error('error connecting 2:' + err))
29-
30-
// so, I could actually return the client stream syncly.
31-
32-
if (err) {
33-
console.log('ERROR', err)
34-
err = new Error('connection failed: ' + err)
35-
return {
36-
source: pull.error(err),
37-
sink: function () {
38-
return function (read) { read(err, cb) }
39-
}
40-
}
41-
}
42-
return Handle(clientHandle, cb)
27+
if (err) {
28+
console.log('ERROR', err)
29+
err = new Error('connection failed: ' + err)
30+
return {
31+
source: pull.error(err),
32+
sink: function (read) { read(err, cb) }
33+
}
34+
}
35+
return Handle(clientHandle, cb)
4336
}

handle.js

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,77 @@
1-
const ShutdownWrap = process.binding('stream_wrap').ShutdownWrap;
2-
const WriteWrap = process.binding('stream_wrap').WriteWrap;
3-
const LOW = 32*1024, HIGH = 64*1024
1+
const ShutdownWrap = process.binding('stream_wrap').ShutdownWrap
2+
const WriteWrap = process.binding('stream_wrap').WriteWrap
3+
const LOW = 32 * 1024
4+
const HIGH = 64 * 1024
45

56
function noop () {}
67

78
module.exports = function (handle, cb) {
8-
var queue = [], buffered = 0, waiting = null, ended = null
9+
var queue = []
10+
var buffered = 0
11+
var waiting = null
12+
var ended = null
13+
914
handle.onread = function (n, data) {
10-
if(n <= 0) ended = true
15+
if (n <= 0) ended = true
1116

12-
if(waiting) {
17+
if (waiting) {
1318
var cb = waiting
1419
waiting = null
1520
return cb(ended, data)
1621
}
1722

18-
if(data) {
19-
buffer.push(data)
23+
if (data) {
24+
queue.push(data)
2025
buffered += data.length
21-
if(buffered > HIGH) handle.readStop()
26+
if (buffered > HIGH) handle.readStop()
2227
}
2328
}
2429

2530
function shutdown (cb) {
2631
var end = new ShutdownWrap()
2732
end.async = false
2833
end.handle = handle
29-
end.oncomplete = function (_,_,_, err) { cb(err) }
34+
end.oncomplete = function (_, __, ___, err) {
35+
cb(err)
36+
}
3037
handle.shutdown(end)
3138
}
3239

3340
return {
3441
source: function (abort, _cb) {
35-
if(abort) shutdown(function (err) { _cb(err || abort); cb(err) })
36-
if(queue.length) {
42+
if (abort) {
43+
shutdown(function (err) {
44+
_cb(err || abort)
45+
cb(err)
46+
})
47+
}
48+
49+
if (queue.length) {
3750
var data = queue.shift()
3851
buffered -= data.length
3952
_cb(null, data)
53+
} else if (ended) {
54+
_cb(ended)
55+
} else {
56+
waiting = _cb
4057
}
41-
else if(ended) _cb(ended)
42-
else waiting = _cb
4358

44-
if(!ended && buffered < LOW) handle.readStart()
59+
if (!ended && buffered < LOW) handle.readStart()
4560
},
4661
sink: function (read) {
4762
read(null, function next (err, data) {
48-
if(err) shutdown(cb)
63+
if (err) shutdown(cb)
4964
else {
5065
var write = new WriteWrap()
51-
write.async = false //what does this mean?
66+
write.async = false // what does this mean?
5267
write.handle = handle
53-
//this keep the buffer being GC'd till write is complete (i think)
68+
// this keeps the buffer being GC'd till write is complete (i think)
5469
write.buffer = data
5570
write.oncomplete = function (status, handle, req, err) {
56-
if(err) return read(err, cb)
71+
if (err) return read(err, cb)
5772
else read(null, next)
5873
}
59-
if(0 === handle.writeBuffer(write, data)) {
74+
if (handle.writeBuffer(write, data) === 0) {
6075
write.oncomplete = noop
6176
read(null, next)
6277
}

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "pull-net",
3-
"description": "",
4-
"version": "0.0.0",
3+
"description": "A replacement for net using pull streams all the way",
4+
"version": "0.1.0",
55
"homepage": "https://github.com/dominictarr/pull-net",
66
"repository": {
77
"type": "git",
@@ -13,10 +13,12 @@
1313
},
1414
"devDependencies": {
1515
"pull-stream": "^3.4.0",
16+
"standard": "^7.1.2",
1617
"stream-to-pull-stream": "^1.6.8"
1718
},
1819
"scripts": {
19-
"test": "set -e; for t in test/*.js; do node $t; done"
20+
"test": "set -e; for t in test/*.js; do node $t; done",
21+
"lint": "standard"
2022
},
2123
"author": "'Dominic Tarr' <[email protected]> (dominictarr.com)",
2224
"license": "MIT"

test/echo.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@ var toPull = require('stream-to-pull-stream')
55

66
var createServer = require('../server')
77

8-
var server = createServer(1234, 'localhost', function (stream) {
8+
var server = createServer(function (stream) {
99
console.log(stream)
1010
pull(
1111
stream.source,
1212
pull.through(function (data) {
1313
console.log('THROUGH', data)
14-
},function (err) {
14+
}, function (err) {
1515
console.log('END', err)
1616
}),
1717
stream.sink)
18-
})
18+
}).listen(9090, '127.0.0.1')
1919

20-
var client = net.connect(1234, 'localhost')
20+
var client = net.connect(9090, '127.0.0.1')
2121
pull(
2222
pull.values([new Buffer('HELLO THERE')]),
2323
toPull.duplex(client),

test/echo2js renamed to test/echo2.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ var server = createServer(function (stream) {
99
stream.source,
1010
pull.through(function (data) {
1111
console.log('THROUGH', data)
12-
},function (err) {
12+
}, function (err) {
1313
console.log('END', err)
1414
}),
1515
stream.sink)
1616
}).listen(9988, '127.0.0.1')
1717

1818
console.log('server', server)
1919

20-
//setTimeout(function () {
20+
// setTimeout(function () {
2121

22-
var client = connect(9988, '127.0.0.1')
22+
var client = connect(9988, '127.0.0.1')
2323

2424
//, function (err, stream) {
2525
// if(err) throw err
@@ -33,7 +33,7 @@ var client = connect(9988, '127.0.0.1')
3333
// })
3434
// )
3535
// })
36-
//},100)
36+
// },100)
3737

3838
pull(
3939
pull.values([new Buffer('HELLO THERE')]),
@@ -43,4 +43,3 @@ pull(
4343
server.close()
4444
})
4545
)
46-

0 commit comments

Comments
 (0)