@@ -6,25 +6,50 @@ import {
6
6
import { AvatarDownload } from './jobs/AvatarDownloadJob' ;
7
7
import { UserSync } from './jobs/UserSyncJob' ;
8
8
import { PersistedJob , TypeOfPersistedData } from './PersistedJob' ;
9
+ import { assertUnreachable } from '../../../types/sqlSharedTypes' ;
10
+ import { AvatarMigrate } from './jobs/AvatarMigrateJob' ;
11
+ import { FetchMsgExpirySwarm } from './jobs/FetchMsgExpirySwarmJob' ;
12
+ import { GroupInvite } from './jobs/GroupInviteJob' ;
13
+ import { GroupPendingRemovals } from './jobs/GroupPendingRemovalsJob' ;
14
+ import { GroupSync } from './jobs/GroupSyncJob' ;
15
+ import { UpdateMsgExpirySwarm } from './jobs/UpdateMsgExpirySwarmJob' ;
9
16
10
17
export function persistedJobFromData < T extends TypeOfPersistedData > (
11
18
data : T
12
19
) : PersistedJob < T > | null {
13
20
if ( ! data || isEmpty ( data . jobType ) || ! isString ( data ?. jobType ) ) {
14
21
return null ;
15
22
}
23
+ const { jobType } = data ;
16
24
17
- switch ( data . jobType ) {
25
+ switch ( jobType ) {
18
26
case 'UserSyncJobType' :
19
27
return new UserSync . UserSyncJob ( data ) as unknown as PersistedJob < T > ;
20
28
case 'AvatarDownloadJobType' :
21
29
return new AvatarDownload . AvatarDownloadJob ( data ) as unknown as PersistedJob < T > ;
30
+ case 'AvatarMigrateJobType' :
31
+ return new AvatarMigrate . AvatarMigrateJob ( data ) as unknown as PersistedJob < T > ;
32
+ case 'FetchMsgExpirySwarmJobType' :
33
+ return new FetchMsgExpirySwarm . FetchMsgExpirySwarmJob ( data ) as unknown as PersistedJob < T > ;
34
+ case 'GroupInviteJobType' :
35
+ return new GroupInvite . GroupInviteJob ( data ) as unknown as PersistedJob < T > ;
36
+ case 'GroupPendingRemovalJobType' :
37
+ return new GroupPendingRemovals . GroupPendingRemovalsJob ( data ) as unknown as PersistedJob < T > ;
38
+ case 'GroupSyncJobType' :
39
+ return new GroupSync . GroupSyncJob ( data ) as unknown as PersistedJob < T > ;
40
+ case 'UpdateMsgExpirySwarmJobType' :
41
+ return new UpdateMsgExpirySwarm . UpdateMsgExpirySwarmJob ( data ) as unknown as PersistedJob < T > ;
42
+
22
43
case 'FakeSleepForJobType' :
23
44
return new FakeSleepForJob ( data ) as unknown as PersistedJob < T > ;
24
45
case 'FakeSleepForJobMultiType' :
25
46
return new FakeSleepForMultiJob ( data ) as unknown as PersistedJob < T > ;
26
47
default :
27
- window ?. log ?. error ( 'unknown persisted job type:' , ( data as any ) . jobType ) ;
48
+ try {
49
+ assertUnreachable ( jobType , `persistedJobFromData unknown job type: "${ jobType } "` ) ;
50
+ } catch ( e ) {
51
+ window ?. log ?. warn ( 'assertUnreachable failed:' , e . message ) ;
52
+ }
28
53
return null ;
29
54
}
30
55
}
0 commit comments