@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.
Files changed (35) hide show
  1. package/dist/main/SupabaseClient.d.ts +15 -24
  2. package/dist/main/SupabaseClient.d.ts.map +1 -1
  3. package/dist/main/SupabaseClient.js +22 -63
  4. package/dist/main/SupabaseClient.js.map +1 -1
  5. package/dist/main/index.d.ts +1 -1
  6. package/dist/main/index.d.ts.map +1 -1
  7. package/dist/main/lib/types.d.ts +0 -11
  8. package/dist/main/lib/types.d.ts.map +1 -1
  9. package/dist/main/lib/version.d.ts +1 -1
  10. package/dist/main/lib/version.js +1 -1
  11. package/dist/module/SupabaseClient.d.ts +15 -24
  12. package/dist/module/SupabaseClient.d.ts.map +1 -1
  13. package/dist/module/SupabaseClient.js +22 -63
  14. package/dist/module/SupabaseClient.js.map +1 -1
  15. package/dist/module/index.d.ts +1 -1
  16. package/dist/module/index.d.ts.map +1 -1
  17. package/dist/module/lib/types.d.ts +0 -11
  18. package/dist/module/lib/types.d.ts.map +1 -1
  19. package/dist/module/lib/version.d.ts +1 -1
  20. package/dist/module/lib/version.js +1 -1
  21. package/dist/umd/supabase.js +1 -1
  22. package/package.json +2 -2
  23. package/src/SupabaseClient.ts +24 -72
  24. package/src/index.ts +1 -1
  25. package/src/lib/types.ts +0 -12
  26. package/src/lib/version.ts +1 -1
  27. package/dist/main/lib/SupabaseRealtimeChannel.d.ts +0 -37
  28. package/dist/main/lib/SupabaseRealtimeChannel.d.ts.map +0 -1
  29. package/dist/main/lib/SupabaseRealtimeChannel.js +0 -123
  30. package/dist/main/lib/SupabaseRealtimeChannel.js.map +0 -1
  31. package/dist/module/lib/SupabaseRealtimeChannel.d.ts +0 -37
  32. package/dist/module/lib/SupabaseRealtimeChannel.d.ts.map +0 -1
  33. package/dist/module/lib/SupabaseRealtimeChannel.js +0 -119
  34. package/dist/module/lib/SupabaseRealtimeChannel.js.map +0 -1
  35. 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>
@@ -1 +1 @@
1
- export const version = '1.36.0-next.21'
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
- }