This commit is contained in:
mkg20001 2018-02-27 20:04:11 +01:00 committed by Maciej Krüger
parent 17daae05ca
commit a19e68af68
No known key found for this signature in database
GPG Key ID: 0D948CE19CF49C5F
3 changed files with 30 additions and 6 deletions

View File

@ -51,6 +51,7 @@
"multiaddr": "^5.0.0", "multiaddr": "^5.0.0",
"pre-commit": "^1.2.2", "pre-commit": "^1.2.2",
"pull-goodbye": "0.0.2", "pull-goodbye": "0.0.2",
"pull-reader": "^1.2.9",
"pull-stream": "^3.6.7" "pull-stream": "^3.6.7"
}, },
"contributors": [ "contributors": [

View File

@ -4,9 +4,32 @@ const Connection = require('interface-connection').Connection
const includes = require('lodash.includes') const includes = require('lodash.includes')
const multiaddr = require('multiaddr') const multiaddr = require('multiaddr')
const os = require('os') const os = require('os')
const pull = require('pull-stream')
function noop () {} function noop () {}
function handle (data) {
if (Buffer.isBuffer(data)) return data
try {
return Buffer.from(data)
} catch (e) {
return Buffer.from('')
}
}
function safe (conn) {
return {
sink: pull(
pull.map(handle),
conn.sink
),
source: pull(
conn.source,
pull.map(handle)
)
}
}
const createServer = require('pull-ws/server') || noop const createServer = require('pull-ws/server') || noop
module.exports = (options, handler) => { module.exports = (options, handler) => {
@ -16,7 +39,7 @@ module.exports = (options, handler) => {
return callback(null, []) return callback(null, [])
} }
handler(new Connection(socket)) handler(new Connection(safe(socket)))
}) })
let listeningMultiaddr let listeningMultiaddr

View File

@ -172,11 +172,11 @@ describe('dial', () => {
const conn = ws.dial(ma) const conn = ws.dial(ma)
const s = goodbye({ const s = goodbye({
source: pull.values(['hey']), source: pull.values([Buffer.from('hey')]),
sink: pull.collect((err, result) => { sink: pull.collect((err, result) => {
expect(err).to.not.exist() expect(err).to.not.exist()
expect(result).to.be.eql(['hey']) expect(result).to.be.eql([Buffer.from('hey')])
done() done()
}) })
}) })
@ -193,11 +193,11 @@ describe('dial', () => {
const conn = ws.dial(ma) const conn = ws.dial(ma)
const s = goodbye({ const s = goodbye({
source: pull.values(['hey']), source: pull.values([Buffer.from('hey')]),
sink: pull.collect((err, result) => { sink: pull.collect((err, result) => {
expect(err).to.not.exist() expect(err).to.not.exist()
expect(result).to.be.eql(['hey']) expect(result).to.be.eql([Buffer.from('hey')])
done() done()
}) })
}) })
@ -221,7 +221,7 @@ describe('dont crash', () => {
pull(conn, reader) // simulate mss-listener pull(conn, reader) // simulate mss-listener
}) })
listener.listen(ma, done) listener.listen(ma, done)
reader.read(1, console.log) reader.read(1, err => err ? done(err) : false)
}) })
afterEach((done) => { afterEach((done) => {