hypercore 10.0.0-alpha.27 → 10.0.0-alpha.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +8 -14
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -51,7 +51,7 @@ module.exports = class Hypercore extends EventEmitter {
51
51
  this.core = null
52
52
  this.replicator = null
53
53
  this.encryption = null
54
- this.extensions = opts.extensions || new Map()
54
+ this.extensions = new Map()
55
55
  this.cache = opts.cache === true ? new Xache({ maxSize: 65536, maxAge: 0 }) : (opts.cache || null)
56
56
 
57
57
  this.valueEncoding = null
@@ -157,7 +157,6 @@ module.exports = class Hypercore extends EventEmitter {
157
157
  const Clz = opts.class || Hypercore
158
158
  const s = new Clz(this.storage, this.key, {
159
159
  ...opts,
160
- extensions: this.extensions,
161
160
  _opening: this.opening,
162
161
  _sessions: this.sessions
163
162
  })
@@ -182,12 +181,7 @@ module.exports = class Hypercore extends EventEmitter {
182
181
  async _openFromExisting (from, opts) {
183
182
  await from.opening
184
183
 
185
- for (const [name, ext] of this.extensions) {
186
- from.extensions.register(name, null, ext)
187
- }
188
-
189
184
  this._passCapabilities(from)
190
- this.extensions = from.extensions
191
185
  this.sessions = from.sessions
192
186
  this.storage = from.storage
193
187
 
@@ -411,14 +405,14 @@ module.exports = class Hypercore extends EventEmitter {
411
405
  _onpeerupdate (added, peer) {
412
406
  const name = added ? 'peer-add' : 'peer-remove'
413
407
 
414
- if (added) {
415
- for (const ext of this.extensions.values()) {
416
- peer.extensions.set(ext.name, ext)
417
- }
418
- }
419
-
420
408
  for (let i = 0; i < this.sessions.length; i++) {
421
409
  this.sessions[i].emit(name, peer)
410
+
411
+ if (added) {
412
+ for (const ext of this.sessions[i].extensions.values()) {
413
+ peer.extensions.set(ext.name, ext)
414
+ }
415
+ }
422
416
  }
423
417
  }
424
418
 
@@ -610,7 +604,7 @@ module.exports = class Hypercore extends EventEmitter {
610
604
  },
611
605
  destroy () {
612
606
  for (const peer of this.session.peers) {
613
- peer.extensions.delete(name)
607
+ if (peer.extensions.get(name) === ext) peer.extensions.delete(name)
614
608
  }
615
609
  this.session.extensions.delete(name)
616
610
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hypercore",
3
- "version": "10.0.0-alpha.27",
3
+ "version": "10.0.0-alpha.28",
4
4
  "description": "Hypercore 10",
5
5
  "main": "index.js",
6
6
  "scripts": {