@@ -5,10 +5,34 @@ export class SupabaseRealtimeClient {
5
5
subscription : RealtimeSubscription
6
6
7
7
constructor ( socket : RealtimeClient , schema : string , tableName : string ) {
8
- let topic = tableName == '*' ? `realtime:${ schema } ` : `realtime:${ schema } :${ tableName } `
8
+ const topic = tableName = == '*' ? `realtime:${ schema } ` : `realtime:${ schema } :${ tableName } `
9
9
this . subscription = socket . channel ( topic )
10
10
}
11
11
12
+ private getPayloadRecords ( payload : any ) {
13
+ const records = {
14
+ new : { } ,
15
+ old : { } ,
16
+ }
17
+
18
+ switch ( payload . type ) {
19
+ case 'INSERT' :
20
+ records . new = Transformers . convertChangeData ( payload . columns , payload . record )
21
+ break
22
+
23
+ case 'UPDATE' :
24
+ records . new = Transformers . convertChangeData ( payload . columns , payload . record )
25
+ records . old = Transformers . convertChangeData ( payload . columns , payload . old_record )
26
+ break
27
+
28
+ case 'DELETE' :
29
+ records . old = Transformers . convertChangeData ( payload . columns , payload . old_record )
30
+ break
31
+ }
32
+
33
+ return records
34
+ }
35
+
12
36
/**
13
37
* The event you want to listen to.
14
38
*
@@ -26,23 +50,7 @@ export class SupabaseRealtimeClient {
26
50
old : { } ,
27
51
}
28
52
29
- switch ( payload . type ) {
30
- case 'INSERT' :
31
- enrichedPayload . new = Transformers . convertChangeData ( payload . columns , payload . record )
32
- break
33
-
34
- case 'UPDATE' :
35
- enrichedPayload . new = Transformers . convertChangeData ( payload . columns , payload . record )
36
- enrichedPayload . old = Transformers . convertChangeData ( payload . columns , payload . old_record )
37
- break
38
-
39
- case 'DELETE' :
40
- enrichedPayload . old = Transformers . convertChangeData ( payload . columns , payload . old_record )
41
- break
42
-
43
- default :
44
- break
45
- }
53
+ enrichedPayload = { ...enrichedPayload , ...this . getPayloadRecords ( payload ) }
46
54
47
55
callback ( enrichedPayload )
48
56
} )
0 commit comments