diff --git a/.travis.yml b/.travis.yml index 5102ee5..1336793 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,32 +1,28 @@ -# Warning: This file is automatically synced from https://github.com/ipfs/ci-sync so if you want to change it, please change it there and ask someone to sync all repositories. -sudo: false language: node_js +cache: npm +stages: + - check + - test + - cov -matrix: +node_js: + - '10' + +os: + - linux + - osx + - windows + +script: npx nyc -s npm run test:node +after_success: npx nyc report --reporter=text-lcov > coverage.lcov && npx codecov + +jobs: include: - - node_js: 6 - env: CXX=g++-4.8 - - node_js: 8 - env: CXX=g++-4.8 - # - node_js: stable - # env: CXX=g++-4.8 + - stage: check + script: + - npx aegir commitlint --travis + - npx aegir dep-check + - npm run lint -script: - - npm run lint - - npm run test - - npm run coverage - -before_script: - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start - -after_success: - - npm run coverage-publish - -addons: - firefox: 'latest' - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.8 +notifications: + email: false diff --git a/README.md b/README.md index fe041d8..ea4ed5f 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,14 @@ # js-libp2p-tcp -[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) -[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) -[![Build Status](https://travis-ci.org/libp2p/js-libp2p-tcp.svg?style=flat-square)](https://travis-ci.org/libp2p/js-libp2p-tcp) -[![Coverage Status](https://coveralls.io/repos/github/libp2p/js-libp2p-tcp/badge.svg?branch=master)](https://coveralls.io/github/libp2p/js-libp2p-tcp?branch=master) +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![](https://img.shields.io/codecov/c/github/libp2p/js-libp2p-tcp.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p-tcp) +[![](https://img.shields.io/travis/libp2p/js-libp2p-tcp.svg?style=flat-square)](https://travis-ci.com/libp2p/js-libp2p-tcp) [![Dependency Status](https://david-dm.org/libp2p/js-libp2p-tcp.svg?style=flat-square)](https://david-dm.org/libp2p/js-libp2p-tcp) [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard) -![](https://img.shields.io/badge/npm-%3E%3D3.0.0-orange.svg?style=flat-square) -![](https://img.shields.io/badge/Node.js-%3E%3D6.0.0-orange.svg?style=flat-square) +![](https://img.shields.io/badge/npm-%3E%3D6.0.0-orange.svg?style=flat-square) +![](https://img.shields.io/badge/Node.js-%3E%3D10.0.0-orange.svg?style=flat-square) [![](https://raw.githubusercontent.com/libp2p/interface-transport/master/img/badge.png)](https://github.com/libp2p/interface-transport) [![](https://raw.githubusercontent.com/libp2p/interface-connection/master/img/badge.png)](https://github.com/libp2p/interface-connection) diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 046bf91..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,29 +0,0 @@ -# Warning: This file is automatically synced from https://github.com/ipfs/ci-sync so if you want to change it, please change it there and ask someone to sync all repositories. -version: "{build}" - -environment: - matrix: - - nodejs_version: "6" - - nodejs_version: "8" - -matrix: - fast_finish: true - -install: - # Install Node.js - - ps: Install-Product node $env:nodejs_version - - # Upgrade npm - - npm install -g npm - - # Output our current versions for debugging - - node --version - - npm --version - - # Install our package dependencies - - npm install - -test_script: - - npm run test:node - -build: off diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile deleted file mode 100644 index a7da2e5..0000000 --- a/ci/Jenkinsfile +++ /dev/null @@ -1,2 +0,0 @@ -// Warning: This file is automatically synced from https://github.com/ipfs/ci-sync so if you want to change it, please change it there and ask someone to sync all repositories. -javascript() diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 0009693..0000000 --- a/circle.yml +++ /dev/null @@ -1,15 +0,0 @@ -# Warning: This file is automatically synced from https://github.com/ipfs/ci-sync so if you want to change it, please change it there and ask someone to sync all repositories. -machine: - node: - version: stable - -dependencies: - pre: - - google-chrome --version - - 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 install -f - - sudo apt-get install --only-upgrade lsb-base - - sudo dpkg -i google-chrome.deb - - google-chrome --version diff --git a/package.json b/package.json index a9595c1..ae8c89d 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,10 @@ "description": "Node.js implementation of the TCP module that libp2p uses, which implements the interface-connection and interface-transport interfaces", "leadMaintainer": "Jacob Heun ", "main": "src/index.js", + "files": [ + "dist", + "src" + ], "scripts": { "lint": "aegir lint", "test": "aegir test -t node -f test/**/*.js", @@ -35,19 +39,19 @@ "npm": ">=3.0.0" }, "devDependencies": { - "aegir": "^17.0.1", + "aegir": "^18.2.0", "chai": "^4.2.0", "dirty-chai": "^2.0.1", - "interface-transport": "~0.3.6", + "interface-transport": "~0.3.7", "pull-stream": "^3.6.9" }, "dependencies": { "class-is": "^1.1.0", - "debug": "^4.1.0", - "interface-connection": "~0.3.2", + "debug": "^4.1.1", + "interface-connection": "~0.3.3", "ip-address": "^5.8.9", - "mafmt": "^6.0.2", - "multiaddr": "^5.0.2", + "mafmt": "^6.0.6", + "multiaddr": "^6.0.5", "once": "^1.4.0", "stream-to-pull-stream": "^1.7.2" }, diff --git a/test/listen-dial.spec.js b/test/listen-dial.spec.js index 3013051..20d2e9a 100644 --- a/test/listen-dial.spec.js +++ b/test/listen-dial.spec.js @@ -14,14 +14,19 @@ const isCI = process.env.CI describe('listen', () => { let tcp + let listener beforeEach(() => { tcp = new TCP() }) + afterEach((done) => { + listener ? listener.close(done) : done() + }) + it('close listener with connections, through timeout', (done) => { const mh = multiaddr('/ip4/127.0.0.1/tcp/9090/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw') - const listener = tcp.createListener((conn) => { + listener = tcp.createListener((conn) => { pull(conn, conn) }) @@ -33,78 +38,70 @@ describe('listen', () => { socket1.end() socket1.on('error', () => {}) socket2.on('error', () => {}) - socket1.on('connect', () => { - listener.close(done) - }) + socket1.on('connect', done) }) }) it('listen on port 0', (done) => { const mh = multiaddr('/ip4/127.0.0.1/tcp/0') - const listener = tcp.createListener((conn) => {}) - listener.listen(mh, () => { - listener.close(done) - }) + listener = tcp.createListener((conn) => {}) + listener.listen(mh, done) }) it('listen on IPv6 addr', (done) => { if (isCI) { return done() } const mh = multiaddr('/ip6/::/tcp/9090') - const listener = tcp.createListener((conn) => {}) - listener.listen(mh, () => { - listener.close(done) - }) + listener = tcp.createListener((conn) => {}) + listener.listen(mh, done) }) it('listen on any Interface', (done) => { const mh = multiaddr('/ip4/0.0.0.0/tcp/9090') - const listener = tcp.createListener((conn) => {}) - listener.listen(mh, () => { - listener.close(done) - }) + listener = tcp.createListener((conn) => {}) + listener.listen(mh, done) }) it('getAddrs', (done) => { const mh = multiaddr('/ip4/127.0.0.1/tcp/9090') - const listener = tcp.createListener((conn) => {}) + listener = tcp.createListener((conn) => {}) listener.listen(mh, () => { listener.getAddrs((err, multiaddrs) => { expect(err).to.not.exist() expect(multiaddrs.length).to.equal(1) expect(multiaddrs[0]).to.deep.equal(mh) - listener.close(done) + done() }) }) }) it('getAddrs on port 0 listen', (done) => { const mh = multiaddr('/ip4/127.0.0.1/tcp/0') - const listener = tcp.createListener((conn) => {}) + listener = tcp.createListener((conn) => {}) listener.listen(mh, () => { listener.getAddrs((err, multiaddrs) => { expect(err).to.not.exist() expect(multiaddrs.length).to.equal(1) - listener.close(done) + done() }) }) }) it('getAddrs from listening on 0.0.0.0', (done) => { const mh = multiaddr('/ip4/0.0.0.0/tcp/9090') - const listener = tcp.createListener((conn) => {}) + listener = tcp.createListener((conn) => {}) listener.listen(mh, () => { listener.getAddrs((err, multiaddrs) => { expect(err).to.not.exist() expect(multiaddrs.length > 0).to.equal(true) expect(multiaddrs[0].toString().indexOf('0.0.0.0')).to.equal(-1) - listener.close(done) + done() }) }) }) it('getAddrs from listening on 0.0.0.0 and port 0', (done) => { const mh = multiaddr('/ip4/0.0.0.0/tcp/0') - const listener = tcp.createListener((conn) => {}) + listener = tcp.createListener((conn) => {}) listener.listen(mh, () => { listener.getAddrs((err, multiaddrs) => { expect(err).to.not.exist() @@ -112,14 +109,14 @@ describe('listen', () => { multiaddrs.forEach((m) => { expect(m.toOptions().host).to.not.eql('0.0.0.0') }) - listener.close(done) + done() }) }) }) it('getAddrs from listening on ip6 \'::\'', (done) => { const mh = multiaddr('/ip6/::/tcp/9090') - const listener = tcp.createListener((conn) => {}) + listener = tcp.createListener((conn) => {}) listener.listen(mh, () => { listener.getAddrs((err, multiaddrs) => { expect(err).to.not.exist() @@ -127,20 +124,20 @@ describe('listen', () => { multiaddrs.forEach((m) => { expect(m.toOptions().host).to.not.eql('::') }) - listener.close(done) + done() }) }) }) it('getAddrs preserves IPFS Id', (done) => { const mh = multiaddr('/ip4/127.0.0.1/tcp/9090/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw') - const listener = tcp.createListener((conn) => {}) + listener = tcp.createListener((conn) => {}) listener.listen(mh, () => { listener.getAddrs((err, multiaddrs) => { expect(err).to.not.exist() expect(multiaddrs.length).to.equal(1) expect(multiaddrs[0]).to.deep.equal(mh) - listener.close(done) + done() }) }) })