Skip to content

Commit f1b3686

Browse files
authored
Merge pull request #117 from ftonato/refactor/reduce-realtimeclient-class-complexity
refactor: reducing the complexity of the SupabaseRealtimeClient class
2 parents 7a03c0f + 0268f73 commit f1b3686

File tree

1 file changed

+26
-18
lines changed

1 file changed

+26
-18
lines changed

src/lib/SupabaseRealtimeClient.ts

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,34 @@ export class SupabaseRealtimeClient {
55
subscription: RealtimeSubscription
66

77
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}`
99
this.subscription = socket.channel(topic)
1010
}
1111

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+
1236
/**
1337
* The event you want to listen to.
1438
*
@@ -26,23 +50,7 @@ export class SupabaseRealtimeClient {
2650
old: {},
2751
}
2852

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) }
4654

4755
callback(enrichedPayload)
4856
})

0 commit comments

Comments
 (0)