ssb-conn-hub
Advanced tools
Comparing version 0.2.4 to 0.2.5
@@ -14,6 +14,7 @@ "use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
@@ -65,6 +66,6 @@ }); | ||
}; | ||
var __values = (this && this.__values) || function (o) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; | ||
var __values = (this && this.__values) || function(o) { | ||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; | ||
if (m) return m.call(o); | ||
return { | ||
if (o && typeof o.length === "number") return { | ||
next: function () { | ||
@@ -75,2 +76,3 @@ if (o && i >= o.length) o = void 0; | ||
}; | ||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); | ||
}; | ||
@@ -105,2 +107,3 @@ var run = require("promisify-tuple"); | ||
} | ||
function noop() { } | ||
function inferPeerType(address) { | ||
@@ -131,4 +134,6 @@ if (address.startsWith('bt:')) | ||
return; | ||
if (_this._server.ready && !_this._server.ready()) | ||
return rpc.close(); | ||
if (_this._server.ready && !_this._server.ready()) { | ||
rpc.close(true, noop); | ||
return; | ||
} | ||
var peer = _this._getPeerByKey(rpc.id); | ||
@@ -160,4 +165,4 @@ if (!peer && isClient) { | ||
var state = 'connected'; | ||
var disconnect = function (cb) { return rpc.close(true, cb); }; | ||
_this._setPeer(address, __assign({}, data, { state: state, disconnect: disconnect })); | ||
var disconnect = function (cb) { return rpc.close(true, cb || noop); }; | ||
_this._setPeer(address, __assign(__assign({}, data), { state: state, disconnect: disconnect })); | ||
debug('connected to %s', address); | ||
@@ -212,3 +217,3 @@ _this._notifyEvent({ | ||
}); | ||
this._peers.set(address, __assign({}, previousData, { hubUpdated: hubUpdated }, data)); | ||
this._peers.set(address, __assign(__assign(__assign({}, previousData), { hubUpdated: hubUpdated }), data)); | ||
} | ||
@@ -265,3 +270,3 @@ else if (!data.state) { | ||
if (data) { | ||
this._setPeer(address, __assign({}, data, { state: state, key: key })); | ||
this._setPeer(address, __assign(__assign({}, data), { state: state, key: key })); | ||
} | ||
@@ -376,5 +381,5 @@ else { | ||
try { | ||
for (var _b = __values(this._server.peers[id]), _c = _b.next(); !_c.done; _c = _b.next()) { | ||
for (var _b = (e_2 = void 0, __values(this._server.peers[id])), _c = _b.next(); !_c.done; _c = _b.next()) { | ||
var peer = _c.value; | ||
peer.close(true); | ||
peer.close(true, noop); | ||
} | ||
@@ -381,0 +386,0 @@ } |
{ | ||
"name": "ssb-conn-hub", | ||
"description": "Module that manages active connections to SSB peers", | ||
"version": "0.2.4", | ||
"version": "0.2.5", | ||
"homepage": "https://github.com/staltz/ssb-conn-hub", | ||
@@ -30,3 +30,3 @@ "main": "lib/index.js", | ||
"tape": "^4.9.2", | ||
"typescript": "3.3.x" | ||
"typescript": "3.6.x" | ||
}, | ||
@@ -33,0 +33,0 @@ "scripts": { |
@@ -33,2 +33,4 @@ import {ConnectionData as Data, ListenEvent, Address} from './types'; | ||
function noop() {} | ||
// TODO perhaps the `type` should be provided by each multiserver plugin? | ||
@@ -129,3 +131,6 @@ // like when multiserver plugins provide the `stream.address` to secret-stack | ||
// If ssb-db is (available and) not ready, close this connection ASAP: | ||
if (this._server.ready && !this._server.ready()) return rpc.close(); | ||
if (this._server.ready && !this._server.ready()) { | ||
rpc.close(true, noop); | ||
return; | ||
} | ||
@@ -167,3 +172,3 @@ const peer = this._getPeerByKey(rpc.id); | ||
const state = 'connected'; | ||
const disconnect: Data['disconnect'] = cb => rpc.close(true, cb); | ||
const disconnect: Data['disconnect'] = cb => rpc.close(true, cb || noop); | ||
this._setPeer(address, {...data, state, disconnect}); | ||
@@ -271,3 +276,3 @@ debug('connected to %s', address); | ||
if (peer.disconnect) { | ||
const [err] = await run<never>(peer.disconnect)(); | ||
const [err] = await run(peer.disconnect)(); | ||
if (err) { | ||
@@ -321,3 +326,3 @@ debug('failed to disconnect from %s', address); | ||
for (let peer of this._server.peers[id]) { | ||
peer.close(true); | ||
peer.close(true, noop); | ||
} | ||
@@ -324,0 +329,0 @@ } |
118894
1044