@@ -6,25 +6,50 @@ import {
66import { AvatarDownload } from './jobs/AvatarDownloadJob' ;
77import { UserSync } from './jobs/UserSyncJob' ;
88import { 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' ;
916
1017export function persistedJobFromData < T extends TypeOfPersistedData > (
1118 data : T
1219) : PersistedJob < T > | null {
1320 if ( ! data || isEmpty ( data . jobType ) || ! isString ( data ?. jobType ) ) {
1421 return null ;
1522 }
23+ const { jobType } = data ;
1624
17- switch ( data . jobType ) {
25+ switch ( jobType ) {
1826 case 'UserSyncJobType' :
1927 return new UserSync . UserSyncJob ( data ) as unknown as PersistedJob < T > ;
2028 case 'AvatarDownloadJobType' :
2129 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+
2243 case 'FakeSleepForJobType' :
2344 return new FakeSleepForJob ( data ) as unknown as PersistedJob < T > ;
2445 case 'FakeSleepForJobMultiType' :
2546 return new FakeSleepForMultiJob ( data ) as unknown as PersistedJob < T > ;
2647 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+ }
2853 return null ;
2954 }
3055}
0 commit comments