@supabase/realtime-js 2.0.0 → 2.1.0
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/dist/main/RealtimeChannel.d.ts +61 -55
- package/dist/main/RealtimeChannel.d.ts.map +1 -1
- package/dist/main/RealtimeChannel.js +32 -1
- package/dist/main/RealtimeChannel.js.map +1 -1
- package/dist/main/RealtimeClient.d.ts +0 -27
- package/dist/main/RealtimeClient.d.ts.map +1 -1
- package/dist/main/RealtimeClient.js +17 -0
- package/dist/main/RealtimeClient.js.map +1 -1
- package/dist/main/RealtimePresence.d.ts +0 -46
- package/dist/main/RealtimePresence.d.ts.map +1 -1
- package/dist/main/RealtimePresence.js +12 -0
- package/dist/main/RealtimePresence.js.map +1 -1
- package/dist/main/index.d.ts +2 -2
- package/dist/main/index.d.ts.map +1 -1
- package/dist/main/index.js.map +1 -1
- package/dist/main/lib/version.d.ts +1 -1
- package/dist/main/lib/version.js +1 -1
- package/dist/module/RealtimeChannel.d.ts +61 -55
- package/dist/module/RealtimeChannel.d.ts.map +1 -1
- package/dist/module/RealtimeChannel.js +32 -1
- package/dist/module/RealtimeChannel.js.map +1 -1
- package/dist/module/RealtimeClient.d.ts +0 -27
- package/dist/module/RealtimeClient.d.ts.map +1 -1
- package/dist/module/RealtimeClient.js +17 -0
- package/dist/module/RealtimeClient.js.map +1 -1
- package/dist/module/RealtimePresence.d.ts +0 -46
- package/dist/module/RealtimePresence.d.ts.map +1 -1
- package/dist/module/RealtimePresence.js +12 -0
- package/dist/module/RealtimePresence.js.map +1 -1
- package/dist/module/index.d.ts +2 -2
- package/dist/module/index.d.ts.map +1 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/lib/version.d.ts +1 -1
- package/dist/module/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/RealtimeChannel.ts +96 -20
- package/src/RealtimeClient.ts +17 -1
- package/src/RealtimePresence.ts +12 -0
- package/src/index.ts +8 -0
- package/src/lib/version.ts +1 -1
package/src/RealtimeClient.ts
CHANGED
|
@@ -274,6 +274,8 @@ export default class RealtimeClient {
|
|
|
274
274
|
|
|
275
275
|
/**
|
|
276
276
|
* Return the next message ref, accounting for overflows
|
|
277
|
+
*
|
|
278
|
+
* @internal
|
|
277
279
|
*/
|
|
278
280
|
_makeRef(): string {
|
|
279
281
|
let newRef = this.ref + 1
|
|
@@ -288,6 +290,8 @@ export default class RealtimeClient {
|
|
|
288
290
|
|
|
289
291
|
/**
|
|
290
292
|
* Unsubscribe from channels with the specified topic.
|
|
293
|
+
*
|
|
294
|
+
* @internal
|
|
291
295
|
*/
|
|
292
296
|
_leaveOpenTopic(topic: string): void {
|
|
293
297
|
let dupChannel = this.channels.find(
|
|
@@ -303,6 +307,8 @@ export default class RealtimeClient {
|
|
|
303
307
|
* Removes a subscription from the socket.
|
|
304
308
|
*
|
|
305
309
|
* @param channel An open subscription.
|
|
310
|
+
*
|
|
311
|
+
* @internal
|
|
306
312
|
*/
|
|
307
313
|
_remove(channel: RealtimeChannel) {
|
|
308
314
|
this.channels = this.channels.filter(
|
|
@@ -312,6 +318,8 @@ export default class RealtimeClient {
|
|
|
312
318
|
|
|
313
319
|
/**
|
|
314
320
|
* Returns the URL of the websocket.
|
|
321
|
+
*
|
|
322
|
+
* @internal
|
|
315
323
|
*/
|
|
316
324
|
private _endPointURL(): string {
|
|
317
325
|
return this._appendParams(
|
|
@@ -320,6 +328,7 @@ export default class RealtimeClient {
|
|
|
320
328
|
)
|
|
321
329
|
}
|
|
322
330
|
|
|
331
|
+
/** @internal */
|
|
323
332
|
private _onConnMessage(rawMessage: { data: any }) {
|
|
324
333
|
this.decode(rawMessage.data, (msg: RealtimeMessage) => {
|
|
325
334
|
let { topic, event, payload, ref } = msg
|
|
@@ -347,6 +356,7 @@ export default class RealtimeClient {
|
|
|
347
356
|
})
|
|
348
357
|
}
|
|
349
358
|
|
|
359
|
+
/** @internal */
|
|
350
360
|
private _onConnOpen() {
|
|
351
361
|
this.log('transport', `connected to ${this._endPointURL()}`)
|
|
352
362
|
this._flushSendBuffer()
|
|
@@ -359,6 +369,7 @@ export default class RealtimeClient {
|
|
|
359
369
|
this.stateChangeCallbacks.open.forEach((callback) => callback())!
|
|
360
370
|
}
|
|
361
371
|
|
|
372
|
+
/** @internal */
|
|
362
373
|
private _onConnClose(event: any) {
|
|
363
374
|
this.log('transport', 'close', event)
|
|
364
375
|
this._triggerChanError()
|
|
@@ -367,18 +378,21 @@ export default class RealtimeClient {
|
|
|
367
378
|
this.stateChangeCallbacks.close.forEach((callback) => callback(event))
|
|
368
379
|
}
|
|
369
380
|
|
|
381
|
+
/** @internal */
|
|
370
382
|
private _onConnError(error: ErrorEvent) {
|
|
371
383
|
this.log('transport', error.message)
|
|
372
384
|
this._triggerChanError()
|
|
373
385
|
this.stateChangeCallbacks.error.forEach((callback) => callback(error))
|
|
374
386
|
}
|
|
375
387
|
|
|
388
|
+
/** @internal */
|
|
376
389
|
private _triggerChanError() {
|
|
377
390
|
this.channels.forEach((channel: RealtimeChannel) =>
|
|
378
391
|
channel._trigger(CHANNEL_EVENTS.error)
|
|
379
392
|
)
|
|
380
393
|
}
|
|
381
394
|
|
|
395
|
+
/** @internal */
|
|
382
396
|
private _appendParams(
|
|
383
397
|
url: string,
|
|
384
398
|
params: { [key: string]: string }
|
|
@@ -392,13 +406,14 @@ export default class RealtimeClient {
|
|
|
392
406
|
return `${url}${prefix}${query}`
|
|
393
407
|
}
|
|
394
408
|
|
|
409
|
+
/** @internal */
|
|
395
410
|
private _flushSendBuffer() {
|
|
396
411
|
if (this.isConnected() && this.sendBuffer.length > 0) {
|
|
397
412
|
this.sendBuffer.forEach((callback) => callback())
|
|
398
413
|
this.sendBuffer = []
|
|
399
414
|
}
|
|
400
415
|
}
|
|
401
|
-
|
|
416
|
+
/** @internal */
|
|
402
417
|
private _sendHeartbeat() {
|
|
403
418
|
if (!this.isConnected()) {
|
|
404
419
|
return
|
|
@@ -422,6 +437,7 @@ export default class RealtimeClient {
|
|
|
422
437
|
this.setAuth(this.accessToken)
|
|
423
438
|
}
|
|
424
439
|
|
|
440
|
+
/** @internal */
|
|
425
441
|
private _throttle(
|
|
426
442
|
callback: Function,
|
|
427
443
|
eventsPerSecondLimit: number = this.eventsPerSecondLimitMs
|
package/src/RealtimePresence.ts
CHANGED
|
@@ -159,6 +159,8 @@ export default class RealtimePresence {
|
|
|
159
159
|
* An optional `onJoin` and `onLeave` callback can be provided to
|
|
160
160
|
* react to changes in the client's local presences across
|
|
161
161
|
* disconnects and reconnects with the server.
|
|
162
|
+
*
|
|
163
|
+
* @internal
|
|
162
164
|
*/
|
|
163
165
|
private static syncState(
|
|
164
166
|
currentState: RealtimePresenceState,
|
|
@@ -216,6 +218,8 @@ export default class RealtimePresence {
|
|
|
216
218
|
* Like `syncState`, `syncDiff` accepts optional `onJoin` and
|
|
217
219
|
* `onLeave` callbacks to react to a user joining or leaving from a
|
|
218
220
|
* device.
|
|
221
|
+
*
|
|
222
|
+
* @internal
|
|
219
223
|
*/
|
|
220
224
|
private static syncDiff(
|
|
221
225
|
state: RealtimePresenceState,
|
|
@@ -276,6 +280,7 @@ export default class RealtimePresence {
|
|
|
276
280
|
return state
|
|
277
281
|
}
|
|
278
282
|
|
|
283
|
+
/** @internal */
|
|
279
284
|
private static map<T = any>(
|
|
280
285
|
obj: RealtimePresenceState,
|
|
281
286
|
func: PresenceChooser<T>
|
|
@@ -303,6 +308,8 @@ export default class RealtimePresence {
|
|
|
303
308
|
* ]
|
|
304
309
|
* }
|
|
305
310
|
* })
|
|
311
|
+
*
|
|
312
|
+
* @internal
|
|
306
313
|
*/
|
|
307
314
|
private static transformState(
|
|
308
315
|
state: RawPresenceState | RealtimePresenceState
|
|
@@ -329,22 +336,27 @@ export default class RealtimePresence {
|
|
|
329
336
|
}, {} as RealtimePresenceState)
|
|
330
337
|
}
|
|
331
338
|
|
|
339
|
+
/** @internal */
|
|
332
340
|
private static cloneDeep(obj: { [key: string]: any }) {
|
|
333
341
|
return JSON.parse(JSON.stringify(obj))
|
|
334
342
|
}
|
|
335
343
|
|
|
344
|
+
/** @internal */
|
|
336
345
|
private onJoin(callback: PresenceOnJoinCallback): void {
|
|
337
346
|
this.caller.onJoin = callback
|
|
338
347
|
}
|
|
339
348
|
|
|
349
|
+
/** @internal */
|
|
340
350
|
private onLeave(callback: PresenceOnLeaveCallback): void {
|
|
341
351
|
this.caller.onLeave = callback
|
|
342
352
|
}
|
|
343
353
|
|
|
354
|
+
/** @internal */
|
|
344
355
|
private onSync(callback: () => void): void {
|
|
345
356
|
this.caller.onSync = callback
|
|
346
357
|
}
|
|
347
358
|
|
|
359
|
+
/** @internal */
|
|
348
360
|
private inPendingSyncState(): boolean {
|
|
349
361
|
return !this.joinRef || this.joinRef !== this.channel._joinRef()
|
|
350
362
|
}
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,11 @@ import RealtimeClient, {
|
|
|
6
6
|
import RealtimeChannel, {
|
|
7
7
|
RealtimeChannelOptions,
|
|
8
8
|
RealtimeChannelSendResponse,
|
|
9
|
+
RealtimePostgresChangesFilter,
|
|
9
10
|
RealtimePostgresChangesPayload,
|
|
11
|
+
RealtimePostgresInsertPayload,
|
|
12
|
+
RealtimePostgresUpdatePayload,
|
|
13
|
+
RealtimePostgresDeletePayload,
|
|
10
14
|
REALTIME_LISTEN_TYPES,
|
|
11
15
|
REALTIME_POSTGRES_CHANGES_LISTEN_EVENT,
|
|
12
16
|
REALTIME_SUBSCRIBE_STATES,
|
|
@@ -26,7 +30,11 @@ export {
|
|
|
26
30
|
RealtimeClient,
|
|
27
31
|
RealtimeClientOptions,
|
|
28
32
|
RealtimeMessage,
|
|
33
|
+
RealtimePostgresChangesFilter,
|
|
29
34
|
RealtimePostgresChangesPayload,
|
|
35
|
+
RealtimePostgresInsertPayload,
|
|
36
|
+
RealtimePostgresUpdatePayload,
|
|
37
|
+
RealtimePostgresDeletePayload,
|
|
30
38
|
RealtimePresenceJoinPayload,
|
|
31
39
|
RealtimePresenceLeavePayload,
|
|
32
40
|
RealtimePresenceState,
|
package/src/lib/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '2.
|
|
1
|
+
export const version = '2.1.0'
|