diff --git a/.aegir.js b/.aegir.js new file mode 100644 index 0000000..9953ffa --- /dev/null +++ b/.aegir.js @@ -0,0 +1,22 @@ +const multiaddr = require('multiaddr') +const pull = require('pull-stream') + +const WS = require('./src') + +let listener + +module.exports = { + hooks: { + browser: { + pre (callback) { + const ws = new WS() + const ma = multiaddr('/ip4/127.0.0.1/tcp/9090/ws') + listener = ws.createListener((conn) => pull(conn, conn)) + listener.listen(ma, callback) + }, + post (callback) { + listener.close(callback) + } + } + } +} diff --git a/.gitignore b/.gitignore index c1af64b..4ed491a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +package-lock.json +yarn.lock + # Logs logs *.log @@ -36,3 +39,4 @@ node_modules *.swp dist + diff --git a/.travis.yml b/.travis.yml index 2957a4b..8c39794 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,14 +3,12 @@ language: node_js matrix: include: - - node_js: 4 - env: CXX=g++-4.8 - node_js: 6 env: - SAUCE=true - CXX=g++-4.8 - node_js: "stable" - env: + env: - CXX=g++-4.8 # Make sure we have new NPM. diff --git a/circle.yml b/circle.yml index 434211a..56f7efb 100644 --- a/circle.yml +++ b/circle.yml @@ -5,8 +5,10 @@ machine: dependencies: pre: - google-chrome --version - - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - - - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' + - curl -L -o google-chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb + - sudo dpkg -i google-chrome.deb || true - sudo apt-get update - - sudo apt-get --only-upgrade install google-chrome-stable + - sudo apt-get install -f + - sudo apt-get install --only-upgrade lsb-base + - sudo dpkg -i google-chrome.deb - google-chrome --version diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index a3457e2..0000000 --- a/gulpfile.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict' - -const gulp = require('gulp') -const multiaddr = require('multiaddr') -const pull = require('pull-stream') - -const WS = require('./src') - -let listener - -gulp.task('test:browser:before', (done) => { - const ws = new WS() - const ma = multiaddr('/ip4/127.0.0.1/tcp/9090/ws') - listener = ws.createListener((conn) => { - pull(conn, conn) - }) - listener.listen(ma, done) -}) - -gulp.task('test:browser:after', (done) => { - listener.close(done) -}) - -require('aegir/gulp')(gulp) diff --git a/package.json b/package.json index 6912f5b..27b7817 100644 --- a/package.json +++ b/package.json @@ -4,16 +4,16 @@ "description": "JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec", "main": "src/index.js", "scripts": { - "lint": "aegir-lint", - "test": "gulp test", - "test:node": "gulp test:node", - "test:browser": "gulp test:browser", - "build": "gulp build", - "release": "gulp release", - "release-minor": "gulp release --type minor", - "release-major": "gulp release --type major", - "coverage": "gulp coverage", - "coverage-publish": "aegir-coverage publish" + "lint": "aegir lint", + "test": "aegir test", + "test:node": "aegir test --target=node", + "test:browser": "aegir test --target=browser", + "build": "aegir build", + "release": "aegir release", + "release-minor": "aegir release --type minor", + "release-major": "aegir release --type major", + "coverage": "aegir coverage", + "coverage-publish": "aegir coverage --upload" }, "browser": { "pull-ws/server": false @@ -42,7 +42,7 @@ "pull-ws": "^3.2.9" }, "devDependencies": { - "aegir": "^11.0.2", + "aegir": "github:ipfs/aegir", "chai": "^4.1.1", "dirty-chai": "^2.0.1", "gulp": "^3.9.1", @@ -50,7 +50,8 @@ "multiaddr": "^3.0.1", "pre-commit": "^1.2.2", "pull-goodbye": "0.0.2", - "pull-stream": "^3.6.0" + "pull-stream": "^3.6.0", + "safe-buffer": "^5.1.1" }, "contributors": [ "Chris Campbell ", diff --git a/src/index.js b/src/index.js index 2d01764..ba6394a 100644 --- a/src/index.js +++ b/src/index.js @@ -24,12 +24,14 @@ class WebSockets { log('dialing %s', url) const socket = connect(url, { binary: true, - onConnect: (err) => callback(err) + onConnect: (err) => { + callback(err) + } }) const conn = new Connection(socket) - conn.getObservedAddrs = (callback) => callback(null, [ma]) - conn.close = (callback) => socket.close(callback) + conn.getObservedAddrs = (cb) => cb(null, [ma]) + conn.close = (cb) => socket.close(cb) return conn } diff --git a/test/browser.js b/test/browser.js index 1003a95..c210f3c 100644 --- a/test/browser.js +++ b/test/browser.js @@ -20,7 +20,10 @@ describe('libp2p-websockets', () => { beforeEach((done) => { ws = new WS() expect(ws).to.exist() - conn = ws.dial(ma, done) + conn = ws.dial(ma, (err, res) => { + expect(err).to.not.exist() + done() + }) }) it('echo', (done) => { @@ -30,7 +33,7 @@ describe('libp2p-websockets', () => { source: pull.values([message]), sink: pull.collect((err, results) => { expect(err).to.not.exist() - expect(results).to.be.eql([message]) + expect(results).to.eql([message]) done() }) }) @@ -40,13 +43,13 @@ describe('libp2p-websockets', () => { describe('stress', () => { it('one big write', (done) => { - const rawMessage = new Buffer(1000000).fill('a') + const rawMessage = Buffer.allocUnsafe(1000000).fill('a') const s = goodbye({ source: pull.values([rawMessage]), sink: pull.collect((err, results) => { expect(err).to.not.exist() - expect(results).to.be.eql([rawMessage]) + expect(results).to.eql([rawMessage]) done() }) }) @@ -58,7 +61,7 @@ describe('libp2p-websockets', () => { source: pull( pull.infinite(), pull.take(1000), - pull.map((val) => Buffer(val.toString())) + pull.map((val) => Buffer.from(val.toString())) ), sink: pull.collect((err, result) => { expect(err).to.not.exist()