@supabase/realtime-js 2.81.1 → 2.81.2-canary.1
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 +33 -0
- package/dist/main/RealtimeChannel.d.ts.map +1 -1
- package/dist/main/RealtimeChannel.js +33 -0
- package/dist/main/RealtimeChannel.js.map +1 -1
- package/dist/main/RealtimeClient.d.ts +24 -0
- package/dist/main/RealtimeClient.d.ts.map +1 -1
- package/dist/main/RealtimeClient.js +20 -0
- package/dist/main/RealtimeClient.js.map +1 -1
- package/dist/main/RealtimePresence.d.ts +12 -4
- package/dist/main/RealtimePresence.d.ts.map +1 -1
- package/dist/main/RealtimePresence.js +12 -4
- package/dist/main/RealtimePresence.js.map +1 -1
- package/dist/main/lib/constants.d.ts +2 -2
- package/dist/main/lib/constants.d.ts.map +1 -1
- package/dist/main/lib/serializer.d.ts +2 -2
- package/dist/main/lib/serializer.d.ts.map +1 -1
- package/dist/main/lib/serializer.js +23 -16
- package/dist/main/lib/serializer.js.map +1 -1
- package/dist/main/lib/version.d.ts +1 -1
- package/dist/main/lib/version.d.ts.map +1 -1
- package/dist/main/lib/version.js +1 -1
- package/dist/main/lib/version.js.map +1 -1
- package/dist/main/lib/websocket-factory.d.ts +46 -0
- package/dist/main/lib/websocket-factory.d.ts.map +1 -1
- package/dist/main/lib/websocket-factory.js +34 -0
- package/dist/main/lib/websocket-factory.js.map +1 -1
- package/dist/module/RealtimeChannel.d.ts +33 -0
- package/dist/module/RealtimeChannel.d.ts.map +1 -1
- package/dist/module/RealtimeChannel.js +33 -0
- package/dist/module/RealtimeChannel.js.map +1 -1
- package/dist/module/RealtimeClient.d.ts +24 -0
- package/dist/module/RealtimeClient.d.ts.map +1 -1
- package/dist/module/RealtimeClient.js +20 -0
- package/dist/module/RealtimeClient.js.map +1 -1
- package/dist/module/RealtimePresence.d.ts +12 -4
- package/dist/module/RealtimePresence.d.ts.map +1 -1
- package/dist/module/RealtimePresence.js +12 -4
- package/dist/module/RealtimePresence.js.map +1 -1
- package/dist/module/lib/constants.d.ts +2 -2
- package/dist/module/lib/constants.d.ts.map +1 -1
- package/dist/module/lib/serializer.d.ts +2 -2
- package/dist/module/lib/serializer.d.ts.map +1 -1
- package/dist/module/lib/serializer.js +23 -16
- package/dist/module/lib/serializer.js.map +1 -1
- package/dist/module/lib/version.d.ts +1 -1
- package/dist/module/lib/version.d.ts.map +1 -1
- package/dist/module/lib/version.js +1 -1
- package/dist/module/lib/version.js.map +1 -1
- package/dist/module/lib/websocket-factory.d.ts +46 -0
- package/dist/module/lib/websocket-factory.d.ts.map +1 -1
- package/dist/module/lib/websocket-factory.js +34 -0
- package/dist/module/lib/websocket-factory.js.map +1 -1
- package/dist/tsconfig.module.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/RealtimeChannel.ts +33 -0
- package/src/RealtimeClient.ts +24 -0
- package/src/RealtimePresence.ts +12 -4
- package/src/lib/serializer.ts +21 -14
- package/src/lib/version.ts +1 -1
- package/src/lib/websocket-factory.ts +46 -0
|
@@ -7,7 +7,13 @@ export interface WebSocketLike {
|
|
|
7
7
|
readonly url: string
|
|
8
8
|
readonly protocol: string
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Closes the socket, optionally providing a close code and reason.
|
|
12
|
+
*/
|
|
10
13
|
close(code?: number, reason?: string): void
|
|
14
|
+
/**
|
|
15
|
+
* Sends data through the socket using the underlying implementation.
|
|
16
|
+
*/
|
|
11
17
|
send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void
|
|
12
18
|
|
|
13
19
|
onopen: ((this: any, ev: Event) => any) | null
|
|
@@ -15,7 +21,13 @@ export interface WebSocketLike {
|
|
|
15
21
|
onclose: ((this: any, ev: CloseEvent) => any) | null
|
|
16
22
|
onerror: ((this: any, ev: Event) => any) | null
|
|
17
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Registers an event listener on the socket (compatible with browser WebSocket API).
|
|
26
|
+
*/
|
|
18
27
|
addEventListener(type: string, listener: EventListener): void
|
|
28
|
+
/**
|
|
29
|
+
* Removes a previously registered event listener.
|
|
30
|
+
*/
|
|
19
31
|
removeEventListener(type: string, listener: EventListener): void
|
|
20
32
|
|
|
21
33
|
// Add additional properties that may exist on WebSocket implementations
|
|
@@ -32,7 +44,14 @@ export interface WebSocketEnvironment {
|
|
|
32
44
|
workaround?: string
|
|
33
45
|
}
|
|
34
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Utilities for creating WebSocket instances across runtimes.
|
|
49
|
+
*/
|
|
35
50
|
export class WebSocketFactory {
|
|
51
|
+
/**
|
|
52
|
+
* Static-only utility – prevent instantiation.
|
|
53
|
+
*/
|
|
54
|
+
private constructor() {}
|
|
36
55
|
private static detectEnvironment(): WebSocketEnvironment {
|
|
37
56
|
if (typeof WebSocket !== 'undefined') {
|
|
38
57
|
return { type: 'native', constructor: WebSocket }
|
|
@@ -115,6 +134,15 @@ export class WebSocketFactory {
|
|
|
115
134
|
}
|
|
116
135
|
}
|
|
117
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Returns the best available WebSocket constructor for the current runtime.
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```ts
|
|
142
|
+
* const WS = WebSocketFactory.getWebSocketConstructor()
|
|
143
|
+
* const socket = new WS('wss://realtime.supabase.co/socket')
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
118
146
|
public static getWebSocketConstructor(): typeof WebSocket {
|
|
119
147
|
const env = this.detectEnvironment()
|
|
120
148
|
if (env.constructor) {
|
|
@@ -127,11 +155,29 @@ export class WebSocketFactory {
|
|
|
127
155
|
throw new Error(errorMessage)
|
|
128
156
|
}
|
|
129
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Creates a WebSocket using the detected constructor.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```ts
|
|
163
|
+
* const socket = WebSocketFactory.createWebSocket('wss://realtime.supabase.co/socket')
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
130
166
|
public static createWebSocket(url: string | URL, protocols?: string | string[]): WebSocketLike {
|
|
131
167
|
const WS = this.getWebSocketConstructor()
|
|
132
168
|
return new WS(url, protocols)
|
|
133
169
|
}
|
|
134
170
|
|
|
171
|
+
/**
|
|
172
|
+
* Detects whether the runtime can establish WebSocket connections.
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* ```ts
|
|
176
|
+
* if (!WebSocketFactory.isWebSocketSupported()) {
|
|
177
|
+
* console.warn('Falling back to long polling')
|
|
178
|
+
* }
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
135
181
|
public static isWebSocketSupported(): boolean {
|
|
136
182
|
try {
|
|
137
183
|
const env = this.detectEnvironment()
|