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:
Alex Potsides 2020-08-11 14:54:49 +01:00 committed by GitHub
parent a37c2bd7f7
commit a277bf6bfb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 29 deletions

View File

@ -39,27 +39,25 @@
"homepage": "https://github.com/libp2p/js-libp2p-websockets#readme",
"dependencies": {
"abortable-iterator": "^3.0.0",
"buffer": "^5.5.0",
"class-is": "^1.1.0",
"debug": "^4.1.1",
"err-code": "^2.0.0",
"it-ws": "^3.0.0",
"libp2p-utils": "~0.1.0",
"mafmt": "^7.0.0",
"multiaddr": "^7.1.0",
"multiaddr-to-uri": "^5.0.0",
"libp2p-utils": "^0.2.0",
"mafmt": "^8.0.0",
"multiaddr": "^8.0.0",
"multiaddr-to-uri": "^6.0.0",
"p-timeout": "^3.2.0"
},
"devDependencies": {
"abort-controller": "^3.0.0",
"aegir": "^21.4.4",
"aegir": "^25.0.0",
"bl": "^4.0.0",
"chai": "^4.2.0",
"dirty-chai": "^2.0.1",
"it-goodbye": "^2.0.1",
"it-pipe": "^1.0.1",
"libp2p-interfaces": "^0.2.0",
"streaming-iterables": "^4.1.0"
"libp2p-interfaces": "^0.4.0",
"streaming-iterables": "^5.0.2",
"uint8arrays": "^1.1.0"
},
"contributors": [
"David Dias <daviddias.p@gmail.com>",

View File

@ -1,6 +1,5 @@
'use strict'
const { Buffer } = require('buffer')
const abortable = require('abortable-iterator')
const { CLOSE_TIMEOUT } = require('./constants')
const toMultiaddr = require('libp2p-utils/src/ip-port-to-multiaddr')
@ -24,7 +23,7 @@ module.exports = (stream, options = {}) => {
await stream.sink((async function * () {
for await (const chunk of source) {
// Convert BufferList to Buffer
yield Buffer.isBuffer(chunk) ? chunk : chunk.slice()
yield chunk instanceof Uint8Array ? chunk : chunk.slice()
}
})())
} catch (err) {

View File

@ -1,15 +1,13 @@
/* eslint-env mocha */
'use strict'
const chai = require('chai')
const dirtyChai = require('dirty-chai')
const expect = chai.expect
chai.use(dirtyChai)
const { expect } = require('aegir/utils/chai')
const multiaddr = require('multiaddr')
const pipe = require('it-pipe')
const goodbye = require('it-goodbye')
const { collect, take } = require('streaming-iterables')
const uint8ArrayFromString = require('uint8arrays/from-string')
const WS = require('../src')
@ -29,7 +27,7 @@ describe('libp2p-websockets', () => {
})
it('echo', async () => {
const message = Buffer.from('Hello World!')
const message = uint8ArrayFromString('Hello World!')
const s = goodbye({ source: [message], sink: collect })
const results = await pipe(s, conn, s)
@ -38,7 +36,7 @@ describe('libp2p-websockets', () => {
describe('stress', () => {
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 })
@ -52,7 +50,7 @@ describe('libp2p-websockets', () => {
source: pipe(
{
[Symbol.iterator] () { return this },
next: () => ({ done: false, value: Buffer.from(Math.random().toString()) })
next: () => ({ done: false, value: uint8ArrayFromString(Math.random().toString()) })
},
take(20000)
),

View File

@ -5,15 +5,13 @@
const https = require('https')
const fs = require('fs')
const chai = require('chai')
const dirtyChai = require('dirty-chai')
const expect = chai.expect
chai.use(dirtyChai)
const { expect } = require('aegir/utils/chai')
const multiaddr = require('multiaddr')
const goodbye = require('it-goodbye')
const { collect } = require('streaming-iterables')
const pipe = require('it-pipe')
const BufferList = require('bl/BufferList')
const uint8ArrayFromString = require('uint8arrays/from-string')
const WS = require('../src')
@ -211,7 +209,7 @@ describe('dial', () => {
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 () => {
@ -221,7 +219,7 @@ describe('dial', () => {
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 () => {
@ -276,7 +274,7 @@ describe('dial', () => {
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)
expect(result).to.be.eql([Buffer.from('hey')])
expect(result).to.be.eql([uint8ArrayFromString('hey')])
})
it('dial and use BufferList', async () => {
@ -308,7 +306,7 @@ describe('dial', () => {
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 () => {
@ -321,7 +319,7 @@ describe('dial', () => {
})
const result = await pipe(s, conn, s)
expect(result).to.be.eql([Buffer.from('hey')])
expect(result).to.be.eql([uint8ArrayFromString('hey')])
})
})
})