feat: Split safe-socket function into its own file

This commit is contained in:
Maciej Krüger 2018-05-10 10:45:42 +02:00
parent fc1ea3f89c
commit bf10e2d0e7
No known key found for this signature in database
GPG Key ID: 0D948CE19CF49C5F
3 changed files with 29 additions and 24 deletions

View File

@ -5,6 +5,7 @@ const mafmt = require('mafmt')
const withIs = require('class-is')
const includes = require('lodash.includes')
const Connection = require('interface-connection').Connection
const safe = require('./safe-socket')
const maToUrl = require('./ma-to-url')
const debug = require('debug')
@ -30,7 +31,7 @@ class WebSockets {
}
})
const conn = new Connection(socket)
const conn = new Connection(safe(socket))
conn.getObservedAddrs = (cb) => cb(null, [ma])
conn.close = (cb) => socket.close(cb)

View File

@ -4,32 +4,10 @@ const Connection = require('interface-connection').Connection
const includes = require('lodash.includes')
const multiaddr = require('multiaddr')
const os = require('os')
const pull = require('pull-stream')
const safe = require('./safe-socket')
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
module.exports = (options, handler) => {

26
src/safe-socket.js Normal file
View File

@ -0,0 +1,26 @@
'use strict'
const pull = require('pull-stream')
function toBuffer (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(toBuffer),
conn.sink
),
source: pull(
conn.source,
pull.map(toBuffer)
)
}
}
module.exports = safe