mirror of
https://github.com/fluencelabs/js-libp2p-websockets
synced 2025-04-25 21:32:28 +00:00
feat: Split safe-socket function into its own file
This commit is contained in:
parent
fc1ea3f89c
commit
bf10e2d0e7
@ -5,6 +5,7 @@ const mafmt = require('mafmt')
|
|||||||
const withIs = require('class-is')
|
const withIs = require('class-is')
|
||||||
const includes = require('lodash.includes')
|
const includes = require('lodash.includes')
|
||||||
const Connection = require('interface-connection').Connection
|
const Connection = require('interface-connection').Connection
|
||||||
|
const safe = require('./safe-socket')
|
||||||
|
|
||||||
const maToUrl = require('./ma-to-url')
|
const maToUrl = require('./ma-to-url')
|
||||||
const debug = require('debug')
|
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.getObservedAddrs = (cb) => cb(null, [ma])
|
||||||
conn.close = (cb) => socket.close(cb)
|
conn.close = (cb) => socket.close(cb)
|
||||||
|
|
||||||
|
@ -4,32 +4,10 @@ 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')
|
const safe = require('./safe-socket')
|
||||||
|
|
||||||
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) => {
|
||||||
|
26
src/safe-socket.js
Normal file
26
src/safe-socket.js
Normal 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
|
Loading…
x
Reference in New Issue
Block a user