diff --git a/.gitignore b/.gitignore index e3386ccc..d5c87456 100644 --- a/.gitignore +++ b/.gitignore @@ -29,5 +29,6 @@ node_modules coverage -.jshintrc -.jshintignore + +dist +lib \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index b0136dec..d689c795 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,8 @@ sudo: false language: node_js node_js: - - "4.0" + - 4 + - 5 # Make sure we have new NPM. before_install: diff --git a/tests/browser-nodejs/test.js b/gulpfile.js similarity index 75% rename from tests/browser-nodejs/test.js rename to gulpfile.js index 9f54de2a..b8b7f375 100644 --- a/tests/browser-nodejs/test.js +++ b/gulpfile.js @@ -1,16 +1,17 @@ -const Server = require('karma').Server -const path = require('path') +'use strict' +const gulp = require('gulp') const Peer = require('peer-info') const Id = require('peer-id') const WebSockets = require('libp2p-websockets') -const Swarm = require('./../../src') + +const Swarm = require('./src') const multiaddr = require('multiaddr') -var swarmA -var swarmB +let swarmA +let swarmB -function createListeners (done) { +gulp.task('test:browser:before', (done) => { function createListenerA (cb) { const b58IdA = 'QmWg2L4Fucx1x4KXJTfKHGixBJvveubzcd7DdhB2Mqwfh1' const peerA = new Peer(Id.createFromB58String(b58IdA)) @@ -35,7 +36,7 @@ function createListeners (done) { swarmB.handle('/echo/1.0.0', echo) } - var count = 0 + let count = 0 const ready = () => ++count === 2 ? done() : null createListenerA(ready) @@ -44,22 +45,14 @@ function createListeners (done) { function echo (conn) { conn.pipe(conn) } -} +}) -function stop (done) { - var count = 0 +gulp.task('test:browser:after', (done) => { + let count = 0 const ready = () => ++count === 2 ? done() : null swarmA.transport.close('ws', ready) swarmB.transport.close('ws', ready) -} +}) -function run (done) { - const karma = new Server({ - configFile: path.join(__dirname, '../../karma.conf.js') - }, done) - - karma.start() -} - -createListeners(() => run(() => stop(() => null))) +require('dignified.js/gulp')(gulp) diff --git a/karma.conf.js b/karma.conf.js deleted file mode 100644 index 42617833..00000000 --- a/karma.conf.js +++ /dev/null @@ -1,54 +0,0 @@ -const path = require('path') - -module.exports = function (config) { - const nodeForgePath = path.resolve(__dirname, 'node_modules/peer-id/deps/forge.bundle.js') - - config.set({ - basePath: '', - frameworks: ['mocha'], - - files: [ - nodeForgePath, - 'tests/browser-nodejs/browser.js' - ], - - preprocessors: { - 'tests/*': ['webpack'], - 'tests/browser-nodejs/*': ['webpack'] - }, - - webpack: { - resolve: { - extensions: ['', '.js', '.json'] - }, - externals: { - fs: '{}', - 'node-forge': 'forge' - }, - node: { - Buffer: true - }, - module: { - loaders: [ - { test: /\.json$/, loader: 'json' } - ] - } - }, - - webpackMiddleware: { - noInfo: true, - stats: { - colors: true - } - }, - reporters: ['spec'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: false, - browsers: process.env.TRAVIS ? ['Firefox'] : ['Chrome'], - captureTimeout: 60000, - browserNoActivityTimeout: 20000, - singleRun: true - }) -} diff --git a/package.json b/package.json index 20a443c9..0ca8c7a1 100644 --- a/package.json +++ b/package.json @@ -2,13 +2,16 @@ "name": "libp2p-swarm", "version": "0.9.2", "description": "libp2p swarm implementation in JavaScript", - "main": "src/index.js", + "main": "lib/index.js", + "jsnext:main": "src/index.js", "scripts": { - "test:node": "mocha tests/*-test.js", - "test:browser": "node tests/browser-nodejs/test.js", - "test": "npm run test:node && npm run test:browser", - "coverage": "istanbul cover --print both -- _mocha tests/*-test.js", - "lint": "standard" + "lint": "dignified-lint", + "build": "dignified-build", + "test": "gulp test", + "test:node": "gulp test:node", + "test:browser": "gulp test:browser", + "release": "dignified-release", + "coverage": "istanbul cover --print both -- _mocha test/node.js" }, "repository": { "type": "git", @@ -34,31 +37,32 @@ "bl": "^1.1.2", "buffer-loader": "0.0.1", "chai": "^3.5.0", + "dignified.js": "^1.0.0", + "gulp": "^3.9.1", "istanbul": "^0.4.2", - "json-loader": "^0.5.4", - "karma": "^0.13.22", - "karma-chrome-launcher": "^0.2.2", - "karma-firefox-launcher": "^0.1.7", - "karma-mocha": "^0.2.2", - "karma-spec-reporter": "0.0.24", - "karma-webpack": "^1.7.0", "libp2p-multiplex": "^0.2.1", "libp2p-spdy": "^0.2.3", "libp2p-tcp": "^0.4.0", "libp2p-websockets": "^0.2.1", - "mocha": "^2.4.5", "multiaddr": "^1.3.0", "peer-id": "^0.6.0", "peer-info": "^0.6.0", "pre-commit": "^1.1.2", - "standard": "^6.0.7", - "stream-pair": "^1.0.3", - "webpack": "^2.1.0-beta.4" + "stream-pair": "^1.0.3" }, "dependencies": { "duplex-passthrough": "github:diasdavid/duplex-passthrough", "ip-address": "^5.0.2", "multistream-select": "^0.6.1", "protocol-buffers-stream": "^1.2.0" + }, + "dignified": { + "webpack": { + "resolve": { + "alias": { + "node-forge": "../deps/forge.bundle.js" + } + } + } } } diff --git a/src/identify.js b/src/identify.js index 35a2de20..516c6aa8 100644 --- a/src/identify.js +++ b/src/identify.js @@ -5,6 +5,8 @@ * established, so a conn can be reused */ +'use strict' + const multistream = require('multistream-select') const fs = require('fs') const path = require('path') diff --git a/src/index.js b/src/index.js index eddc858b..89ca24c8 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,5 @@ +'use strict' + const multistream = require('multistream-select') const identify = require('./identify') const DuplexPassThrough = require('duplex-passthrough') diff --git a/tests/00-basic-test.js b/test/00-basic.node.js similarity index 94% rename from tests/00-basic-test.js rename to test/00-basic.node.js index ef5d96ea..4c946546 100644 --- a/tests/00-basic-test.js +++ b/test/00-basic.node.js @@ -1,4 +1,5 @@ /* eslint-env mocha */ +'use strict' const expect = require('chai').expect diff --git a/tests/01-transport-tcp-test.js b/test/01-transport-tcp.node.js similarity index 99% rename from tests/01-transport-tcp-test.js rename to test/01-transport-tcp.node.js index 641f6323..3d020fad 100644 --- a/tests/01-transport-tcp-test.js +++ b/test/01-transport-tcp.node.js @@ -1,4 +1,5 @@ /* eslint-env mocha */ +'use strict' const expect = require('chai').expect diff --git a/tests/02-transport-utp-test.js b/test/02-transport-utp.node.js similarity index 95% rename from tests/02-transport-utp-test.js rename to test/02-transport-utp.node.js index 7b3714db..f8f046da 100644 --- a/tests/02-transport-utp-test.js +++ b/test/02-transport-utp.node.js @@ -1,4 +1,5 @@ /* eslint-env mocha */ +'use strict' describe('transport - utp', function () { this.timeout(10000) diff --git a/tests/03-transport-websockets-test.js b/test/03-transport-websockets.node.js similarity index 99% rename from tests/03-transport-websockets-test.js rename to test/03-transport-websockets.node.js index 2a6246fe..ab4c1126 100644 --- a/tests/03-transport-websockets-test.js +++ b/test/03-transport-websockets.node.js @@ -1,4 +1,5 @@ /* eslint-env mocha */ +'use strict' const expect = require('chai').expect diff --git a/tests/04-muxing-multiplex-test.js b/test/04-muxing-multiplex.node.js similarity index 99% rename from tests/04-muxing-multiplex-test.js rename to test/04-muxing-multiplex.node.js index a16872f9..d8a8507a 100644 --- a/tests/04-muxing-multiplex-test.js +++ b/test/04-muxing-multiplex.node.js @@ -1,4 +1,5 @@ /* eslint-env mocha */ +'use strict' const expect = require('chai').expect diff --git a/tests/05-muxing-spdy-test.js b/test/05-muxing-spdy.node.js similarity index 99% rename from tests/05-muxing-spdy-test.js rename to test/05-muxing-spdy.node.js index 85961672..cbfc5fa6 100644 --- a/tests/05-muxing-spdy-test.js +++ b/test/05-muxing-spdy.node.js @@ -1,4 +1,5 @@ /* eslint-env mocha */ +'use strict' const expect = require('chai').expect diff --git a/tests/06-conn-upgrade-secio-test.js b/test/06-conn-upgrade-secio.node.js similarity index 95% rename from tests/06-conn-upgrade-secio-test.js rename to test/06-conn-upgrade-secio.node.js index 18e4887f..1f33224c 100644 --- a/tests/06-conn-upgrade-secio-test.js +++ b/test/06-conn-upgrade-secio.node.js @@ -1,4 +1,5 @@ /* eslint-env mocha */ +'use strict' describe('secio conn upgrade (on TCP)', function () { this.timeout(20000) diff --git a/tests/07-conn-upgrade-tls-test.js b/test/07-conn-upgrade-tls.node.js similarity index 95% rename from tests/07-conn-upgrade-tls-test.js rename to test/07-conn-upgrade-tls.node.js index 2fe9c4e8..b3be730e 100644 --- a/tests/07-conn-upgrade-tls-test.js +++ b/test/07-conn-upgrade-tls.node.js @@ -1,4 +1,5 @@ /* eslint-env mocha */ +'use strict' describe('tls conn upgrade (on TCP)', function () { before((done) => { done() }) diff --git a/tests/08-swarm-without-muxing-test.js b/test/08-swarm-without-muxing.node.js similarity index 99% rename from tests/08-swarm-without-muxing-test.js rename to test/08-swarm-without-muxing.node.js index c41813fb..41950581 100644 --- a/tests/08-swarm-without-muxing-test.js +++ b/test/08-swarm-without-muxing.node.js @@ -1,4 +1,5 @@ /* eslint-env mocha */ +'use strict' const expect = require('chai').expect diff --git a/tests/09-swarm-with-muxing-test.js b/test/09-swarm-with-muxing.node.js similarity index 99% rename from tests/09-swarm-with-muxing-test.js rename to test/09-swarm-with-muxing.node.js index 998a6ee2..0039ecd1 100644 --- a/tests/09-swarm-with-muxing-test.js +++ b/test/09-swarm-with-muxing.node.js @@ -1,4 +1,5 @@ /* eslint-env mocha */ +'use strict' const expect = require('chai').expect diff --git a/tests/browser-nodejs/browser.js b/test/browser.js similarity index 98% rename from tests/browser-nodejs/browser.js rename to test/browser.js index 6b6a7ed0..bcd92cbd 100644 --- a/tests/browser-nodejs/browser.js +++ b/test/browser.js @@ -1,13 +1,15 @@ /* eslint-env mocha */ +'use strict' const expect = require('chai').expect const multiaddr = require('multiaddr') const Id = require('peer-id') const Peer = require('peer-info') -const Swarm = require('./../../src') const WebSockets = require('libp2p-websockets') const bl = require('bl') +const Swarm = require('../src') + describe('basics', () => { it('throws on missing peerInfo', (done) => { expect(Swarm).to.throw(Error) diff --git a/test/node.js b/test/node.js new file mode 100644 index 00000000..35984790 --- /dev/null +++ b/test/node.js @@ -0,0 +1,12 @@ +/* eslint-env mocha */ +'use strict' + +const fs = require('fs') + +describe('libp2p-swarm', () => { + fs.readdirSync(__dirname) + .filter((file) => file.match(/\.node\.js$/)) + .forEach((file) => { + require(`./${file}`) + }) +})