mirror of
https://github.com/fluencelabs/js-libp2p-websockets
synced 2025-05-03 23:42:32 +00:00
fix: replace node buffers with uint8arrays (#115)
* fix: replace node buffers with uint8arrays BREAKING CHANGES: - All deps used by this module now use Uint8Arrays in place of Buffers * chore: remove gh dep
This commit is contained in:
parent
a37c2bd7f7
commit
a277bf6bfb
18
package.json
18
package.json
@ -39,27 +39,25 @@
|
|||||||
"homepage": "https://github.com/libp2p/js-libp2p-websockets#readme",
|
"homepage": "https://github.com/libp2p/js-libp2p-websockets#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"abortable-iterator": "^3.0.0",
|
"abortable-iterator": "^3.0.0",
|
||||||
"buffer": "^5.5.0",
|
|
||||||
"class-is": "^1.1.0",
|
"class-is": "^1.1.0",
|
||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
"err-code": "^2.0.0",
|
"err-code": "^2.0.0",
|
||||||
"it-ws": "^3.0.0",
|
"it-ws": "^3.0.0",
|
||||||
"libp2p-utils": "~0.1.0",
|
"libp2p-utils": "^0.2.0",
|
||||||
"mafmt": "^7.0.0",
|
"mafmt": "^8.0.0",
|
||||||
"multiaddr": "^7.1.0",
|
"multiaddr": "^8.0.0",
|
||||||
"multiaddr-to-uri": "^5.0.0",
|
"multiaddr-to-uri": "^6.0.0",
|
||||||
"p-timeout": "^3.2.0"
|
"p-timeout": "^3.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"abort-controller": "^3.0.0",
|
"abort-controller": "^3.0.0",
|
||||||
"aegir": "^21.4.4",
|
"aegir": "^25.0.0",
|
||||||
"bl": "^4.0.0",
|
"bl": "^4.0.0",
|
||||||
"chai": "^4.2.0",
|
|
||||||
"dirty-chai": "^2.0.1",
|
|
||||||
"it-goodbye": "^2.0.1",
|
"it-goodbye": "^2.0.1",
|
||||||
"it-pipe": "^1.0.1",
|
"it-pipe": "^1.0.1",
|
||||||
"libp2p-interfaces": "^0.2.0",
|
"libp2p-interfaces": "^0.4.0",
|
||||||
"streaming-iterables": "^4.1.0"
|
"streaming-iterables": "^5.0.2",
|
||||||
|
"uint8arrays": "^1.1.0"
|
||||||
},
|
},
|
||||||
"contributors": [
|
"contributors": [
|
||||||
"David Dias <daviddias.p@gmail.com>",
|
"David Dias <daviddias.p@gmail.com>",
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const { Buffer } = require('buffer')
|
|
||||||
const abortable = require('abortable-iterator')
|
const abortable = require('abortable-iterator')
|
||||||
const { CLOSE_TIMEOUT } = require('./constants')
|
const { CLOSE_TIMEOUT } = require('./constants')
|
||||||
const toMultiaddr = require('libp2p-utils/src/ip-port-to-multiaddr')
|
const toMultiaddr = require('libp2p-utils/src/ip-port-to-multiaddr')
|
||||||
@ -24,7 +23,7 @@ module.exports = (stream, options = {}) => {
|
|||||||
await stream.sink((async function * () {
|
await stream.sink((async function * () {
|
||||||
for await (const chunk of source) {
|
for await (const chunk of source) {
|
||||||
// Convert BufferList to Buffer
|
// Convert BufferList to Buffer
|
||||||
yield Buffer.isBuffer(chunk) ? chunk : chunk.slice()
|
yield chunk instanceof Uint8Array ? chunk : chunk.slice()
|
||||||
}
|
}
|
||||||
})())
|
})())
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -1,15 +1,13 @@
|
|||||||
/* eslint-env mocha */
|
/* eslint-env mocha */
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const chai = require('chai')
|
const { expect } = require('aegir/utils/chai')
|
||||||
const dirtyChai = require('dirty-chai')
|
|
||||||
const expect = chai.expect
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
const multiaddr = require('multiaddr')
|
const multiaddr = require('multiaddr')
|
||||||
const pipe = require('it-pipe')
|
const pipe = require('it-pipe')
|
||||||
const goodbye = require('it-goodbye')
|
const goodbye = require('it-goodbye')
|
||||||
const { collect, take } = require('streaming-iterables')
|
const { collect, take } = require('streaming-iterables')
|
||||||
|
const uint8ArrayFromString = require('uint8arrays/from-string')
|
||||||
|
|
||||||
const WS = require('../src')
|
const WS = require('../src')
|
||||||
|
|
||||||
@ -29,7 +27,7 @@ describe('libp2p-websockets', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('echo', async () => {
|
it('echo', async () => {
|
||||||
const message = Buffer.from('Hello World!')
|
const message = uint8ArrayFromString('Hello World!')
|
||||||
const s = goodbye({ source: [message], sink: collect })
|
const s = goodbye({ source: [message], sink: collect })
|
||||||
|
|
||||||
const results = await pipe(s, conn, s)
|
const results = await pipe(s, conn, s)
|
||||||
@ -38,7 +36,7 @@ describe('libp2p-websockets', () => {
|
|||||||
|
|
||||||
describe('stress', () => {
|
describe('stress', () => {
|
||||||
it('one big write', async () => {
|
it('one big write', async () => {
|
||||||
const rawMessage = Buffer.allocUnsafe(1000000).fill('a')
|
const rawMessage = new Uint8Array(1000000).fill('a')
|
||||||
|
|
||||||
const s = goodbye({ source: [rawMessage], sink: collect })
|
const s = goodbye({ source: [rawMessage], sink: collect })
|
||||||
|
|
||||||
@ -52,7 +50,7 @@ describe('libp2p-websockets', () => {
|
|||||||
source: pipe(
|
source: pipe(
|
||||||
{
|
{
|
||||||
[Symbol.iterator] () { return this },
|
[Symbol.iterator] () { return this },
|
||||||
next: () => ({ done: false, value: Buffer.from(Math.random().toString()) })
|
next: () => ({ done: false, value: uint8ArrayFromString(Math.random().toString()) })
|
||||||
},
|
},
|
||||||
take(20000)
|
take(20000)
|
||||||
),
|
),
|
||||||
|
18
test/node.js
18
test/node.js
@ -5,15 +5,13 @@
|
|||||||
const https = require('https')
|
const https = require('https')
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
|
|
||||||
const chai = require('chai')
|
const { expect } = require('aegir/utils/chai')
|
||||||
const dirtyChai = require('dirty-chai')
|
|
||||||
const expect = chai.expect
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
const multiaddr = require('multiaddr')
|
const multiaddr = require('multiaddr')
|
||||||
const goodbye = require('it-goodbye')
|
const goodbye = require('it-goodbye')
|
||||||
const { collect } = require('streaming-iterables')
|
const { collect } = require('streaming-iterables')
|
||||||
const pipe = require('it-pipe')
|
const pipe = require('it-pipe')
|
||||||
const BufferList = require('bl/BufferList')
|
const BufferList = require('bl/BufferList')
|
||||||
|
const uint8ArrayFromString = require('uint8arrays/from-string')
|
||||||
|
|
||||||
const WS = require('../src')
|
const WS = require('../src')
|
||||||
|
|
||||||
@ -211,7 +209,7 @@ describe('dial', () => {
|
|||||||
|
|
||||||
const result = await pipe(s, conn, s)
|
const result = await pipe(s, conn, s)
|
||||||
|
|
||||||
expect(result).to.be.eql([Buffer.from('hey')])
|
expect(result).to.be.eql([uint8ArrayFromString('hey')])
|
||||||
})
|
})
|
||||||
|
|
||||||
it('dial with p2p Id', async () => {
|
it('dial with p2p Id', async () => {
|
||||||
@ -221,7 +219,7 @@ describe('dial', () => {
|
|||||||
|
|
||||||
const result = await pipe(s, conn, s)
|
const result = await pipe(s, conn, s)
|
||||||
|
|
||||||
expect(result).to.be.eql([Buffer.from('hey')])
|
expect(result).to.be.eql([uint8ArrayFromString('hey')])
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should resolve port 0', async () => {
|
it('should resolve port 0', async () => {
|
||||||
@ -276,7 +274,7 @@ describe('dial', () => {
|
|||||||
|
|
||||||
const result = await pipe(s, conn, s)
|
const result = await pipe(s, conn, s)
|
||||||
|
|
||||||
expect(result).to.be.eql([Buffer.from('hey')])
|
expect(result).to.be.eql([uint8ArrayFromString('hey')])
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -299,7 +297,7 @@ describe('dial', () => {
|
|||||||
|
|
||||||
const result = await pipe(s, conn, s)
|
const result = await pipe(s, conn, s)
|
||||||
|
|
||||||
expect(result).to.be.eql([Buffer.from('hey')])
|
expect(result).to.be.eql([uint8ArrayFromString('hey')])
|
||||||
})
|
})
|
||||||
|
|
||||||
it('dial and use BufferList', async () => {
|
it('dial and use BufferList', async () => {
|
||||||
@ -308,7 +306,7 @@ describe('dial', () => {
|
|||||||
|
|
||||||
const result = await pipe(s, conn, s)
|
const result = await pipe(s, conn, s)
|
||||||
|
|
||||||
expect(result).to.be.eql([Buffer.from('hey')])
|
expect(result).to.be.eql([uint8ArrayFromString('hey')])
|
||||||
})
|
})
|
||||||
|
|
||||||
it('dial with p2p Id', async () => {
|
it('dial with p2p Id', async () => {
|
||||||
@ -321,7 +319,7 @@ describe('dial', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const result = await pipe(s, conn, s)
|
const result = await pipe(s, conn, s)
|
||||||
expect(result).to.be.eql([Buffer.from('hey')])
|
expect(result).to.be.eql([uint8ArrayFromString('hey')])
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user