@supabase/supabase-js 1.36.0-next.21 → 1.36.0-next.22
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/SupabaseClient.d.ts +15 -24
- package/dist/main/SupabaseClient.d.ts.map +1 -1
- package/dist/main/SupabaseClient.js +22 -63
- package/dist/main/SupabaseClient.js.map +1 -1
- package/dist/main/index.d.ts +1 -1
- package/dist/main/index.d.ts.map +1 -1
- package/dist/main/lib/types.d.ts +0 -11
- package/dist/main/lib/types.d.ts.map +1 -1
- package/dist/main/lib/version.d.ts +1 -1
- package/dist/main/lib/version.js +1 -1
- package/dist/module/SupabaseClient.d.ts +15 -24
- package/dist/module/SupabaseClient.d.ts.map +1 -1
- package/dist/module/SupabaseClient.js +22 -63
- package/dist/module/SupabaseClient.js.map +1 -1
- package/dist/module/index.d.ts +1 -1
- package/dist/module/index.d.ts.map +1 -1
- package/dist/module/lib/types.d.ts +0 -11
- package/dist/module/lib/types.d.ts.map +1 -1
- package/dist/module/lib/version.d.ts +1 -1
- package/dist/module/lib/version.js +1 -1
- package/dist/umd/supabase.js +1 -1
- package/package.json +2 -2
- package/src/SupabaseClient.ts +24 -72
- package/src/index.ts +1 -1
- package/src/lib/types.ts +0 -12
- package/src/lib/version.ts +1 -1
- package/dist/main/lib/SupabaseRealtimeChannel.d.ts +0 -37
- package/dist/main/lib/SupabaseRealtimeChannel.d.ts.map +0 -1
- package/dist/main/lib/SupabaseRealtimeChannel.js +0 -123
- package/dist/main/lib/SupabaseRealtimeChannel.js.map +0 -1
- package/dist/module/lib/SupabaseRealtimeChannel.d.ts +0 -37
- package/dist/module/lib/SupabaseRealtimeChannel.d.ts.map +0 -1
- package/dist/module/lib/SupabaseRealtimeChannel.js +0 -119
- package/dist/module/lib/SupabaseRealtimeChannel.js.map +0 -1
- package/src/lib/SupabaseRealtimeChannel.ts +0 -138
package/src/lib/types.ts
CHANGED
|
@@ -57,18 +57,6 @@ export type SupabaseClientOptions<SchemaName> = {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
export type SupabaseRealtimePayload<T> = {
|
|
61
|
-
commit_timestamp: string
|
|
62
|
-
eventType: 'INSERT' | 'UPDATE' | 'DELETE'
|
|
63
|
-
schema: string
|
|
64
|
-
table: string
|
|
65
|
-
/** The new record. Present for 'INSERT' and 'UPDATE' events. */
|
|
66
|
-
new: T
|
|
67
|
-
/** The previous record. Present for 'UPDATE' and 'DELETE' events. */
|
|
68
|
-
old: T
|
|
69
|
-
errors: string[] | null
|
|
70
|
-
}
|
|
71
|
-
|
|
72
60
|
export type GenericTable = {
|
|
73
61
|
Row: Record<string, unknown>
|
|
74
62
|
Insert: Record<string, unknown>
|
package/src/lib/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.36.0-next.
|
|
1
|
+
export const version = '1.36.0-next.22'
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { RealtimeChannel, RealtimeClient } from '@supabase/realtime-js';
|
|
2
|
-
export declare class SupabaseRealtimeChannel {
|
|
3
|
-
socket: RealtimeClient;
|
|
4
|
-
channel: RealtimeChannel;
|
|
5
|
-
constructor(name: string, opts: {
|
|
6
|
-
[key: string]: any;
|
|
7
|
-
} | undefined, socket: RealtimeClient);
|
|
8
|
-
/**
|
|
9
|
-
* The event you want to listen to.
|
|
10
|
-
*
|
|
11
|
-
* @param event The event
|
|
12
|
-
* @param filter An object that specifies what you want to listen to from the event.
|
|
13
|
-
* @param callback A callback function that is called whenever the event occurs.
|
|
14
|
-
*/
|
|
15
|
-
on(event: string, filter?: Record<string, string>, callback?: (payload: any) => void): this;
|
|
16
|
-
/**
|
|
17
|
-
* Enables the channel.
|
|
18
|
-
*/
|
|
19
|
-
subscribe(callback?: Function): RealtimeChannel;
|
|
20
|
-
presenceList(): any[];
|
|
21
|
-
send(payload: {
|
|
22
|
-
type: string;
|
|
23
|
-
[key: string]: any;
|
|
24
|
-
}, opts?: {
|
|
25
|
-
[key: string]: any;
|
|
26
|
-
}): Promise<['ok' | 'timeout', number]>;
|
|
27
|
-
track(payload: {
|
|
28
|
-
[key: string]: any;
|
|
29
|
-
}, opts?: {
|
|
30
|
-
[key: string]: any;
|
|
31
|
-
}): Promise<['ok' | 'timeout', number]>;
|
|
32
|
-
untrack(opts?: {
|
|
33
|
-
[key: string]: any;
|
|
34
|
-
}): Promise<['ok' | 'timeout', number]>;
|
|
35
|
-
private getPayloadRecords;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=SupabaseRealtimeChannel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseRealtimeChannel.d.ts","sourceRoot":"","sources":["../../../src/lib/SupabaseRealtimeChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAgB,MAAM,uBAAuB,CAAA;AAErF,qBAAa,uBAAuB;IAClC,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,EAAE,eAAe,CAAA;gBAEZ,IAAI,EAAE,MAAM,EAAE,IAAI;;iBAA6B,EAAE,MAAM,EAAE,cAAc;IAKnF;;;;;;OAMG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI;IAwBpF;;OAEG;IACH,SAAS,CAAC,QAAQ,GAAE,QAAmB;IA4BvC,YAAY;IAIZ,IAAI,CACF,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAC7C,IAAI,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GAChC,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IAiBhC,KAAK,CACT,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAC/B,IAAI,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GAChC,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IAWhC,OAAO,CAAC,IAAI,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IAUrF,OAAO,CAAC,iBAAiB;CAgB1B"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.SupabaseRealtimeChannel = void 0;
|
|
13
|
-
const realtime_js_1 = require("@supabase/realtime-js");
|
|
14
|
-
class SupabaseRealtimeChannel {
|
|
15
|
-
constructor(name, opts = {}, socket) {
|
|
16
|
-
this.socket = socket;
|
|
17
|
-
this.channel = socket.channel(`realtime:${name}`, opts);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* The event you want to listen to.
|
|
21
|
-
*
|
|
22
|
-
* @param event The event
|
|
23
|
-
* @param filter An object that specifies what you want to listen to from the event.
|
|
24
|
-
* @param callback A callback function that is called whenever the event occurs.
|
|
25
|
-
*/
|
|
26
|
-
on(event, filter, callback) {
|
|
27
|
-
this.channel.on(event, filter !== null && filter !== void 0 ? filter : {}, ({ payload }) => {
|
|
28
|
-
let enrichedPayload = payload;
|
|
29
|
-
if (event === 'realtime') {
|
|
30
|
-
const { schema, table, commit_timestamp, type, errors } = enrichedPayload;
|
|
31
|
-
enrichedPayload = {
|
|
32
|
-
schema: schema,
|
|
33
|
-
table: table,
|
|
34
|
-
commit_timestamp: commit_timestamp,
|
|
35
|
-
eventType: type,
|
|
36
|
-
new: {},
|
|
37
|
-
old: {},
|
|
38
|
-
errors: errors,
|
|
39
|
-
};
|
|
40
|
-
enrichedPayload = Object.assign(Object.assign({}, enrichedPayload), this.getPayloadRecords(payload));
|
|
41
|
-
}
|
|
42
|
-
callback && callback(enrichedPayload);
|
|
43
|
-
});
|
|
44
|
-
return this;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Enables the channel.
|
|
48
|
-
*/
|
|
49
|
-
subscribe(callback = () => { }) {
|
|
50
|
-
// if the socket already has a good accessToken
|
|
51
|
-
// we can just use it straight away
|
|
52
|
-
if (this.socket.accessToken) {
|
|
53
|
-
this.channel.updateJoinPayload({
|
|
54
|
-
user_token: this.socket.accessToken,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
this.channel.onError((e) => callback('CHANNEL_ERROR', e));
|
|
58
|
-
this.channel.onClose(() => callback('CLOSED'));
|
|
59
|
-
this.channel
|
|
60
|
-
.subscribe()
|
|
61
|
-
.receive('ok', () => {
|
|
62
|
-
callback('SUBSCRIBED');
|
|
63
|
-
// re-set the accessToken again in case it was set while
|
|
64
|
-
// the subscription was isJoining
|
|
65
|
-
if (this.socket.accessToken) {
|
|
66
|
-
this.socket.setAuth(this.socket.accessToken);
|
|
67
|
-
}
|
|
68
|
-
})
|
|
69
|
-
.receive('error', (e) => callback('CHANNEL_ERROR', e))
|
|
70
|
-
.receive('timeout', () => callback('RETRYING_AFTER_TIMEOUT'));
|
|
71
|
-
return this.channel;
|
|
72
|
-
}
|
|
73
|
-
presenceList() {
|
|
74
|
-
return this.channel.presence.list();
|
|
75
|
-
}
|
|
76
|
-
send(payload, opts = {}) {
|
|
77
|
-
return new Promise((resolve) => {
|
|
78
|
-
const now = performance.now();
|
|
79
|
-
const timeout = opts.timeout || this.channel.timeout;
|
|
80
|
-
this.channel
|
|
81
|
-
.push(payload.type, payload, timeout)
|
|
82
|
-
.receive('ok', () => {
|
|
83
|
-
const diff = performance.now() - now;
|
|
84
|
-
resolve(['ok', diff]);
|
|
85
|
-
})
|
|
86
|
-
.receive('timeout', () => {
|
|
87
|
-
resolve(['timeout', timeout]);
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
track(payload, opts = {}) {
|
|
92
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
-
return yield this.send({
|
|
94
|
-
type: 'presence',
|
|
95
|
-
event: 'track',
|
|
96
|
-
payload,
|
|
97
|
-
}, opts);
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
untrack(opts = {}) {
|
|
101
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
return yield this.send({
|
|
103
|
-
type: 'presence',
|
|
104
|
-
event: 'untrack',
|
|
105
|
-
}, opts);
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
getPayloadRecords(payload) {
|
|
109
|
-
const records = {
|
|
110
|
-
new: {},
|
|
111
|
-
old: {},
|
|
112
|
-
};
|
|
113
|
-
if (payload.type === 'INSERT' || payload.type === 'UPDATE') {
|
|
114
|
-
records.new = realtime_js_1.Transformers.convertChangeData(payload.columns, payload.record);
|
|
115
|
-
}
|
|
116
|
-
if (payload.type === 'UPDATE' || payload.type === 'DELETE') {
|
|
117
|
-
records.old = realtime_js_1.Transformers.convertChangeData(payload.columns, payload.old_record);
|
|
118
|
-
}
|
|
119
|
-
return records;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
exports.SupabaseRealtimeChannel = SupabaseRealtimeChannel;
|
|
123
|
-
//# sourceMappingURL=SupabaseRealtimeChannel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseRealtimeChannel.js","sourceRoot":"","sources":["../../../src/lib/SupabaseRealtimeChannel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { RealtimeChannel, RealtimeClient } from '@supabase/realtime-js';
|
|
2
|
-
export declare class SupabaseRealtimeChannel {
|
|
3
|
-
socket: RealtimeClient;
|
|
4
|
-
channel: RealtimeChannel;
|
|
5
|
-
constructor(name: string, opts: {
|
|
6
|
-
[key: string]: any;
|
|
7
|
-
} | undefined, socket: RealtimeClient);
|
|
8
|
-
/**
|
|
9
|
-
* The event you want to listen to.
|
|
10
|
-
*
|
|
11
|
-
* @param event The event
|
|
12
|
-
* @param filter An object that specifies what you want to listen to from the event.
|
|
13
|
-
* @param callback A callback function that is called whenever the event occurs.
|
|
14
|
-
*/
|
|
15
|
-
on(event: string, filter?: Record<string, string>, callback?: (payload: any) => void): this;
|
|
16
|
-
/**
|
|
17
|
-
* Enables the channel.
|
|
18
|
-
*/
|
|
19
|
-
subscribe(callback?: Function): RealtimeChannel;
|
|
20
|
-
presenceList(): any[];
|
|
21
|
-
send(payload: {
|
|
22
|
-
type: string;
|
|
23
|
-
[key: string]: any;
|
|
24
|
-
}, opts?: {
|
|
25
|
-
[key: string]: any;
|
|
26
|
-
}): Promise<['ok' | 'timeout', number]>;
|
|
27
|
-
track(payload: {
|
|
28
|
-
[key: string]: any;
|
|
29
|
-
}, opts?: {
|
|
30
|
-
[key: string]: any;
|
|
31
|
-
}): Promise<['ok' | 'timeout', number]>;
|
|
32
|
-
untrack(opts?: {
|
|
33
|
-
[key: string]: any;
|
|
34
|
-
}): Promise<['ok' | 'timeout', number]>;
|
|
35
|
-
private getPayloadRecords;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=SupabaseRealtimeChannel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseRealtimeChannel.d.ts","sourceRoot":"","sources":["../../../src/lib/SupabaseRealtimeChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAgB,MAAM,uBAAuB,CAAA;AAErF,qBAAa,uBAAuB;IAClC,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,EAAE,eAAe,CAAA;gBAEZ,IAAI,EAAE,MAAM,EAAE,IAAI;;iBAA6B,EAAE,MAAM,EAAE,cAAc;IAKnF;;;;;;OAMG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI;IAwBpF;;OAEG;IACH,SAAS,CAAC,QAAQ,GAAE,QAAmB;IA4BvC,YAAY;IAIZ,IAAI,CACF,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAC7C,IAAI,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GAChC,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IAiBhC,KAAK,CACT,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAC/B,IAAI,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GAChC,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IAWhC,OAAO,CAAC,IAAI,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IAUrF,OAAO,CAAC,iBAAiB;CAgB1B"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { Transformers } from '@supabase/realtime-js';
|
|
11
|
-
export class SupabaseRealtimeChannel {
|
|
12
|
-
constructor(name, opts = {}, socket) {
|
|
13
|
-
this.socket = socket;
|
|
14
|
-
this.channel = socket.channel(`realtime:${name}`, opts);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* The event you want to listen to.
|
|
18
|
-
*
|
|
19
|
-
* @param event The event
|
|
20
|
-
* @param filter An object that specifies what you want to listen to from the event.
|
|
21
|
-
* @param callback A callback function that is called whenever the event occurs.
|
|
22
|
-
*/
|
|
23
|
-
on(event, filter, callback) {
|
|
24
|
-
this.channel.on(event, filter !== null && filter !== void 0 ? filter : {}, ({ payload }) => {
|
|
25
|
-
let enrichedPayload = payload;
|
|
26
|
-
if (event === 'realtime') {
|
|
27
|
-
const { schema, table, commit_timestamp, type, errors } = enrichedPayload;
|
|
28
|
-
enrichedPayload = {
|
|
29
|
-
schema: schema,
|
|
30
|
-
table: table,
|
|
31
|
-
commit_timestamp: commit_timestamp,
|
|
32
|
-
eventType: type,
|
|
33
|
-
new: {},
|
|
34
|
-
old: {},
|
|
35
|
-
errors: errors,
|
|
36
|
-
};
|
|
37
|
-
enrichedPayload = Object.assign(Object.assign({}, enrichedPayload), this.getPayloadRecords(payload));
|
|
38
|
-
}
|
|
39
|
-
callback && callback(enrichedPayload);
|
|
40
|
-
});
|
|
41
|
-
return this;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Enables the channel.
|
|
45
|
-
*/
|
|
46
|
-
subscribe(callback = () => { }) {
|
|
47
|
-
// if the socket already has a good accessToken
|
|
48
|
-
// we can just use it straight away
|
|
49
|
-
if (this.socket.accessToken) {
|
|
50
|
-
this.channel.updateJoinPayload({
|
|
51
|
-
user_token: this.socket.accessToken,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
this.channel.onError((e) => callback('CHANNEL_ERROR', e));
|
|
55
|
-
this.channel.onClose(() => callback('CLOSED'));
|
|
56
|
-
this.channel
|
|
57
|
-
.subscribe()
|
|
58
|
-
.receive('ok', () => {
|
|
59
|
-
callback('SUBSCRIBED');
|
|
60
|
-
// re-set the accessToken again in case it was set while
|
|
61
|
-
// the subscription was isJoining
|
|
62
|
-
if (this.socket.accessToken) {
|
|
63
|
-
this.socket.setAuth(this.socket.accessToken);
|
|
64
|
-
}
|
|
65
|
-
})
|
|
66
|
-
.receive('error', (e) => callback('CHANNEL_ERROR', e))
|
|
67
|
-
.receive('timeout', () => callback('RETRYING_AFTER_TIMEOUT'));
|
|
68
|
-
return this.channel;
|
|
69
|
-
}
|
|
70
|
-
presenceList() {
|
|
71
|
-
return this.channel.presence.list();
|
|
72
|
-
}
|
|
73
|
-
send(payload, opts = {}) {
|
|
74
|
-
return new Promise((resolve) => {
|
|
75
|
-
const now = performance.now();
|
|
76
|
-
const timeout = opts.timeout || this.channel.timeout;
|
|
77
|
-
this.channel
|
|
78
|
-
.push(payload.type, payload, timeout)
|
|
79
|
-
.receive('ok', () => {
|
|
80
|
-
const diff = performance.now() - now;
|
|
81
|
-
resolve(['ok', diff]);
|
|
82
|
-
})
|
|
83
|
-
.receive('timeout', () => {
|
|
84
|
-
resolve(['timeout', timeout]);
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
track(payload, opts = {}) {
|
|
89
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
return yield this.send({
|
|
91
|
-
type: 'presence',
|
|
92
|
-
event: 'track',
|
|
93
|
-
payload,
|
|
94
|
-
}, opts);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
untrack(opts = {}) {
|
|
98
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
-
return yield this.send({
|
|
100
|
-
type: 'presence',
|
|
101
|
-
event: 'untrack',
|
|
102
|
-
}, opts);
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
getPayloadRecords(payload) {
|
|
106
|
-
const records = {
|
|
107
|
-
new: {},
|
|
108
|
-
old: {},
|
|
109
|
-
};
|
|
110
|
-
if (payload.type === 'INSERT' || payload.type === 'UPDATE') {
|
|
111
|
-
records.new = Transformers.convertChangeData(payload.columns, payload.record);
|
|
112
|
-
}
|
|
113
|
-
if (payload.type === 'UPDATE' || payload.type === 'DELETE') {
|
|
114
|
-
records.old = Transformers.convertChangeData(payload.columns, payload.old_record);
|
|
115
|
-
}
|
|
116
|
-
return records;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=SupabaseRealtimeChannel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseRealtimeChannel.js","sourceRoot":"","sources":["../../../src/lib/SupabaseRealtimeChannel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { RealtimeChannel, RealtimeClient, Transformers } from '@supabase/realtime-js'
|
|
2
|
-
|
|
3
|
-
export class SupabaseRealtimeChannel {
|
|
4
|
-
socket: RealtimeClient
|
|
5
|
-
channel: RealtimeChannel
|
|
6
|
-
|
|
7
|
-
constructor(name: string, opts: { [key: string]: any } = {}, socket: RealtimeClient) {
|
|
8
|
-
this.socket = socket
|
|
9
|
-
this.channel = socket.channel(`realtime:${name}`, opts) as RealtimeChannel
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* The event you want to listen to.
|
|
14
|
-
*
|
|
15
|
-
* @param event The event
|
|
16
|
-
* @param filter An object that specifies what you want to listen to from the event.
|
|
17
|
-
* @param callback A callback function that is called whenever the event occurs.
|
|
18
|
-
*/
|
|
19
|
-
on(event: string, filter?: Record<string, string>, callback?: (payload: any) => void) {
|
|
20
|
-
this.channel.on(event, filter ?? {}, ({ payload }: { payload: any }) => {
|
|
21
|
-
let enrichedPayload = payload
|
|
22
|
-
|
|
23
|
-
if (event === 'realtime') {
|
|
24
|
-
const { schema, table, commit_timestamp, type, errors } = enrichedPayload
|
|
25
|
-
enrichedPayload = {
|
|
26
|
-
schema: schema,
|
|
27
|
-
table: table,
|
|
28
|
-
commit_timestamp: commit_timestamp,
|
|
29
|
-
eventType: type,
|
|
30
|
-
new: {},
|
|
31
|
-
old: {},
|
|
32
|
-
errors: errors,
|
|
33
|
-
}
|
|
34
|
-
enrichedPayload = { ...enrichedPayload, ...this.getPayloadRecords(payload) }
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
callback && callback(enrichedPayload)
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
return this
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Enables the channel.
|
|
45
|
-
*/
|
|
46
|
-
subscribe(callback: Function = () => {}) {
|
|
47
|
-
// if the socket already has a good accessToken
|
|
48
|
-
// we can just use it straight away
|
|
49
|
-
if (this.socket.accessToken) {
|
|
50
|
-
this.channel.updateJoinPayload({
|
|
51
|
-
user_token: this.socket.accessToken,
|
|
52
|
-
})
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
this.channel.onError((e: Error) => callback('CHANNEL_ERROR', e))
|
|
56
|
-
this.channel.onClose(() => callback('CLOSED'))
|
|
57
|
-
this.channel
|
|
58
|
-
.subscribe()
|
|
59
|
-
.receive('ok', () => {
|
|
60
|
-
callback('SUBSCRIBED')
|
|
61
|
-
|
|
62
|
-
// re-set the accessToken again in case it was set while
|
|
63
|
-
// the subscription was isJoining
|
|
64
|
-
if (this.socket.accessToken) {
|
|
65
|
-
this.socket.setAuth(this.socket.accessToken)
|
|
66
|
-
}
|
|
67
|
-
})
|
|
68
|
-
.receive('error', (e: Error) => callback('CHANNEL_ERROR', e))
|
|
69
|
-
.receive('timeout', () => callback('RETRYING_AFTER_TIMEOUT'))
|
|
70
|
-
|
|
71
|
-
return this.channel
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
presenceList() {
|
|
75
|
-
return this.channel.presence.list()
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
send(
|
|
79
|
-
payload: { type: string; [key: string]: any },
|
|
80
|
-
opts: { [key: string]: any } = {}
|
|
81
|
-
): Promise<['ok' | 'timeout', number]> {
|
|
82
|
-
return new Promise((resolve) => {
|
|
83
|
-
const now = performance.now()
|
|
84
|
-
const timeout = opts.timeout || this.channel.timeout
|
|
85
|
-
|
|
86
|
-
this.channel
|
|
87
|
-
.push(payload.type, payload, timeout)
|
|
88
|
-
.receive('ok', () => {
|
|
89
|
-
const diff = performance.now() - now
|
|
90
|
-
resolve(['ok', diff])
|
|
91
|
-
})
|
|
92
|
-
.receive('timeout', () => {
|
|
93
|
-
resolve(['timeout', timeout])
|
|
94
|
-
})
|
|
95
|
-
})
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
async track(
|
|
99
|
-
payload: { [key: string]: any },
|
|
100
|
-
opts: { [key: string]: any } = {}
|
|
101
|
-
): Promise<['ok' | 'timeout', number]> {
|
|
102
|
-
return await this.send(
|
|
103
|
-
{
|
|
104
|
-
type: 'presence',
|
|
105
|
-
event: 'track',
|
|
106
|
-
payload,
|
|
107
|
-
},
|
|
108
|
-
opts
|
|
109
|
-
)
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
async untrack(opts: { [key: string]: any } = {}): Promise<['ok' | 'timeout', number]> {
|
|
113
|
-
return await this.send(
|
|
114
|
-
{
|
|
115
|
-
type: 'presence',
|
|
116
|
-
event: 'untrack',
|
|
117
|
-
},
|
|
118
|
-
opts
|
|
119
|
-
)
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
private getPayloadRecords(payload: any) {
|
|
123
|
-
const records = {
|
|
124
|
-
new: {},
|
|
125
|
-
old: {},
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (payload.type === 'INSERT' || payload.type === 'UPDATE') {
|
|
129
|
-
records.new = Transformers.convertChangeData(payload.columns, payload.record)
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
if (payload.type === 'UPDATE' || payload.type === 'DELETE') {
|
|
133
|
-
records.old = Transformers.convertChangeData(payload.columns, payload.old_record)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return records
|
|
137
|
-
}
|
|
138
|
-
}
|