diff --git a/.aegir.js b/.aegir.js new file mode 100644 index 0000000..f9106e2 --- /dev/null +++ b/.aegir.js @@ -0,0 +1,28 @@ +'use strict' + +const WebRTCDirect = require('./src') +const pull = require('pull-stream') +const multiaddr = require('multiaddr') + +const ma = multiaddr('/ip4/127.0.0.1/tcp/12345/http/p2p-webrtc-direct') +let listener + +function boot (done) { + const wd = new WebRTCDirect() + listener = wd.createListener((conn) => pull(conn, conn)) + listener.listen(ma, done) + listener.on('listening', () => { + console.log('gulp listener started on:', ma.toString()) + }) +} + +function shutdown (done) { + listener.close(done) +} + +module.exports = { + hooks: { + pre: boot, + post: shutdown + } +} diff --git a/package.json b/package.json index 97b74e2..3009c3e 100644 --- a/package.json +++ b/package.json @@ -9,16 +9,16 @@ "request": "xhr" }, "scripts": { - "lint": "gulp lint", - "build": "gulp build", - "test": "gulp test --dom", - "test:node": "gulp test:node", - "test:browser": "gulp test:browser --dom", - "release": "gulp release --dom", - "release-minor": "gulp release --type minor --dom", - "release-major": "gulp release --type major --dom", - "coverage": "gulp coverage", - "coverage-publish": "aegir-coverage publish" + "lint": "aegir lint", + "build": "aegir build", + "test": "aegir test --target node --target browser", + "test:node": "aegir test --target node", + "test:browser": "aegir test --target browser", + "release": "aegir test release --target node --target browser", + "release-minor": "aegir release --type minor --target node --target browser", + "release-major": "aegir release --type major --target node --target browser", + "coverage": "aegir coverage", + "coverage-publish": "aegir coverage --provider coveralls" }, "pre-commit": [ "lint", @@ -44,19 +44,19 @@ }, "homepage": "https://github.com/libp2p/js-libp2p-webrtc-direct#readme", "devDependencies": { - "aegir": "^11.0.2", + "aegir": "^12.0.8", "chai": "^4.1.2", "dirty-chai": "^2.0.1", "gulp": "^3.9.1", + "multiaddr": "^3.0.0", "pre-commit": "^1.2.2", - "webrtcsupport": "^2.2.0", - "multiaddr": "^3.0.0" + "webrtcsupport": "^2.2.0" }, "dependencies": { "concat-stream": "^1.6.0", "detect-node": "^2.0.3", "interface-connection": "~0.3.2", - "mafmt": "^3.0.0", + "mafmt": "^3.0.1", "multibase": "~0.3.4", "once": "^1.4.0", "request": "^2.81.0", @@ -69,4 +69,4 @@ "David Dias ", "greenkeeper[bot] " ] -} \ No newline at end of file +} diff --git a/src/index.js b/src/index.js index a658712..fff0c6b 100644 --- a/src/index.js +++ b/src/index.js @@ -165,7 +165,12 @@ class WebRTCDirect { if (!Array.isArray(multiaddrs)) { multiaddrs = [multiaddrs] } + return multiaddrs.filter((ma) => { + if (ma.protoNames().indexOf('p2p-circuit') > -1) { + return false + } + return mafmt.WebRTCDirect.matches(ma) }) } diff --git a/test/filter.spec.js b/test/filter.spec.js index 336a9fa..cc91282 100644 --- a/test/filter.spec.js +++ b/test/filter.spec.js @@ -16,7 +16,9 @@ describe('filter', () => { multiaddr('/ip4/1.2.3.4/tcp/3456/http/p2p-webrtc-direct'), multiaddr('/ip4/127.0.0.1/tcp/9090/ws'), multiaddr('/ip4/127.0.0.1/tcp/9090/ws/p2p-webrtc-direct/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo2'), - multiaddr('/ip4/127.0.0.1/tcp/9090/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4') + multiaddr('/ip4/127.0.0.1/tcp/9090/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4'), + multiaddr('/ip4/127.0.0.1/tcp/9090/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4' + + '/p2p-circuit/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo5') ] const filtered = wd.filter(maArr)