@nxtedition/deepstream.io-client-js 24.2.8 → 24.2.10

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/deepstream.io-client-js",
3
- "version": "24.2.8",
3
+ "version": "24.2.10",
4
4
  "description": "the javascript client for deepstream.io",
5
5
  "homepage": "http://deepstream.io",
6
6
  "bugs": {
@@ -101,22 +101,24 @@ Connection.prototype.close = function () {
101
101
  }
102
102
 
103
103
  Connection.prototype._createEndpoint = function () {
104
- if (NodeWebSocket) {
104
+ if (utils.isNode) {
105
105
  this._endpoint = new NodeWebSocket(this._url, {
106
106
  generateMask() {},
107
107
  })
108
- this._endpoint.onmessage = ({ data }) => this._onMessage(data.toString())
109
108
  } else {
110
109
  this._endpoint = new BrowserWebSocket(this._url)
111
110
  this._endpoint.binaryType = 'arraybuffer'
112
- const decoder = new TextDecoder()
113
- this._endpoint.onmessage = ({ data }) => this._onMessage(decoder.decode(data))
114
111
  }
115
112
  this._corked = false
116
113
 
117
114
  this._endpoint.onopen = this._onOpen.bind(this)
118
115
  this._endpoint.onerror = this._onError.bind(this)
119
116
  this._endpoint.onclose = this._onClose.bind(this)
117
+
118
+ const decoder = new TextDecoder()
119
+ this._endpoint.onmessage = ({ data }) => {
120
+ this._onMessage(typeof data === 'string' ? data : decoder.decode(data))
121
+ }
120
122
  }
121
123
 
122
124
  Connection.prototype.send = function (message) {
@@ -252,20 +254,20 @@ Connection.prototype._recvMessages = function (deadline) {
252
254
  continue
253
255
  }
254
256
 
255
- try {
256
- messageParser.parseMessage(message, this._client, this._message)
257
+ if (this._logger) {
258
+ this._logger.trace(message, 'receive')
259
+ }
257
260
 
258
- this.emit('recv', this._message)
261
+ messageParser.parseMessage(message, this._client, this._message)
259
262
 
260
- if (this._message.topic === C.TOPIC.CONNECTION) {
261
- this._handleConnectionResponse(this._message)
262
- } else if (this._message.topic === C.TOPIC.AUTH) {
263
- this._handleAuthResponse(this._message)
264
- } else {
265
- this._client._$onMessage(this._message)
266
- }
267
- } catch (err) {
268
- this._onError(err)
263
+ this.emit('recv', this._message)
264
+
265
+ if (this._message.topic === C.TOPIC.CONNECTION) {
266
+ this._handleConnectionResponse(this._message)
267
+ } else if (this._message.topic === C.TOPIC.AUTH) {
268
+ this._handleAuthResponse(this._message)
269
+ } else {
270
+ this._client._$onMessage(this._message)
269
271
  }
270
272
  }
271
273
 
@@ -97,19 +97,11 @@ class RecordHandler {
97
97
  this._connection = connection
98
98
  this._client = client
99
99
  this._records = new Map()
100
- this._cache = new Map()
101
100
  this._listeners = new Map()
102
101
  this._pruning = new Set()
103
102
  this._patching = new Map()
104
103
  this._updating = new Map()
105
104
 
106
- this._registry = new FinalizationRegistry((name) => {
107
- const entry = this._cache.get(name)
108
- if (entry && entry.deref && entry.deref() === undefined) {
109
- this._cache.delete(name)
110
- }
111
- })
112
-
113
105
  this._connected = 0
114
106
  this._stats = {
115
107
  updating: 0,
@@ -142,11 +134,6 @@ class RecordHandler {
142
134
  for (const rec of pruning) {
143
135
  rec._$dispose()
144
136
  this._records.delete(rec.name)
145
-
146
- if (!this._cache.has(rec.name)) {
147
- this._cache.set(rec.name, new WeakRef(rec))
148
- this._registry.register(rec, rec.name)
149
- }
150
137
  }
151
138
 
152
139
  this._stats.pruning -= pruning.size
@@ -232,7 +219,7 @@ class RecordHandler {
232
219
  let record = this._records.get(name)
233
220
 
234
221
  if (!record) {
235
- record = this._cache.get(name)?.deref() ?? new Record(name, this)
222
+ record = new Record(name, this)
236
223
  this._stats.records += 1
237
224
  this._stats.created += 1
238
225
  this._records.set(name, record)
@@ -11,7 +11,10 @@ class Record {
11
11
  static STATE = C.RECORD_STATE
12
12
 
13
13
  constructor(name, handler) {
14
+ const connection = handler._connection
15
+
14
16
  this._handler = handler
17
+
15
18
  this._name = name
16
19
  this._version = ''
17
20
  this._data = jsonPath.EMPTY
@@ -21,7 +24,7 @@ class Record {
21
24
  this._emitting = false
22
25
  /** @type Map? */ this._updating = null
23
26
  /** @type Array? */ this._patching = null
24
- this._subscribed = false
27
+ this._subscribed = connection.sendMsg1(C.TOPIC.RECORD, C.ACTIONS.SUBSCRIBE, this._name)
25
28
  }
26
29
 
27
30
  /** @type {string} */