@@ -146,6 +146,7 @@ import {
146146 createSyncResponseForRequest ,
147147 findRepoConversation ,
148148 getNormalizedSyncResponseMessages ,
149+ getSyncResponseDeliveryType ,
149150 isValidSyncChainRequestMessage ,
150151 isValidSyncRequestMessage ,
151152 isValidSyncResponseMessage
@@ -1046,25 +1047,12 @@ function handleSyncRequest(msg, fromPeerId) {
10461047 return ;
10471048 }
10481049
1049- // Get conversation messages
1050- const conversationsMap = get ( conversations ) ;
1051- const conversation = findRepoConversation ( conversationsMap , repoFullName , msg . conversationId ) ;
1052-
1053- const response = createSyncResponseForRequest ( msg , conversation ) ;
1054- if ( response . error === 'Conversation not found' ) {
1055- console . warn ( '[PeerJS] Conversation not found:' , msg . conversationId ) ;
1056- sendMessageToPeer ( fromPeerId , response ) ;
1057- return ;
1058- }
1059-
1060- if ( response . type === 'sync_needs_chain' ) {
1061- console . warn ( '[PeerJS] Hash not found in conversation:' , msg . lastHash ) ;
1062- sendMessageToPeer ( fromPeerId , response ) ;
1063- return ;
1064- }
1065-
1066- console . log ( '[PeerJS] Sending' , response . messages . length , 'messages after hash:' , msg . lastHash ) ;
1067- sendMessageToPeer ( fromPeerId , response ) ;
1050+ const response = createSyncResponseForRequest ( msg , getSyncConversation ( msg . conversationId ) ) ;
1051+ sendSyncResponse ( fromPeerId , response , {
1052+ conversation_not_found : ( ) => console . warn ( '[PeerJS] Conversation not found:' , msg . conversationId ) ,
1053+ sync_needs_chain : ( ) => console . warn ( '[PeerJS] Hash not found in conversation:' , msg . lastHash ) ,
1054+ messages : ( ) => console . log ( '[PeerJS] Sending' , response . messages . length , 'messages after hash:' , msg . lastHash )
1055+ } ) ;
10681056}
10691057
10701058// Handle sync request with hash chain
@@ -1076,25 +1064,22 @@ function handleSyncRequestWithChain(msg, fromPeerId) {
10761064 return ;
10771065 }
10781066
1079- // Get conversation messages
1080- const conversationsMap = get ( conversations ) ;
1081- const conversation = findRepoConversation ( conversationsMap , repoFullName , msg . conversationId ) ;
1082-
1083- const response = createSyncResponseForChainRequest ( msg , conversation ) ;
1084- if ( response . error === 'Conversation not found' ) {
1085- console . warn ( '[PeerJS] Conversation not found:' , msg . conversationId ) ;
1086- sendMessageToPeer ( fromPeerId , response ) ;
1087- return ;
1088- }
1067+ const response = createSyncResponseForChainRequest ( msg , getSyncConversation ( msg . conversationId ) ) ;
1068+ sendSyncResponse ( fromPeerId , response , {
1069+ conversation_not_found : ( ) => console . warn ( '[PeerJS] Conversation not found:' , msg . conversationId ) ,
1070+ full_sync : ( ) => console . warn ( '[PeerJS] No common ancestor found with peer' ) ,
1071+ messages : ( ) => console . log ( '[PeerJS] Found common ancestor:' , response . commonAncestor , 'sending' , response . messages . length , 'messages' )
1072+ } ) ;
1073+ }
10891074
1090- if ( response . fullSync ) {
1091- console . warn ( '[PeerJS] No common ancestor found with peer' ) ;
1092- sendMessageToPeer ( fromPeerId , response ) ;
1093- return ;
1094- }
1075+ function getSyncConversation ( conversationId ) {
1076+ return findRepoConversation ( get ( conversations ) , repoFullName , conversationId ) ;
1077+ }
10951078
1096- console . log ( '[PeerJS] Found common ancestor:' , response . commonAncestor , 'sending' , response . messages . length , 'messages' ) ;
1097- sendMessageToPeer ( fromPeerId , response ) ;
1079+ function sendSyncResponse ( peerId , response , deliveryHandlers ) {
1080+ const deliveryType = getSyncResponseDeliveryType ( response ) ;
1081+ deliveryHandlers [ deliveryType ] ?. ( ) ;
1082+ sendMessageToPeer ( peerId , response ) ;
10981083}
10991084
11001085// Handle sync response
0 commit comments