@@ -934,30 +934,12 @@ const chatgpt = {
934934 return reject ( `🤖 chatgpt.js >> Message/response with index ${ msgToGet + 1 } `
935935 + ` is out of bounds. Only ${ userMessages . length } messages/responses exist!` )
936936
937- const isUserMessageAncestor = ( messageId , targetUserId ) => {
938- let currentId = messageId ;
939- const maxDepth = 10 ; // Protection against infinite loops
940- let depth = 0 ;
941- while ( currentId && depth < maxDepth ) {
942- const currentMessage = data [ currentId ] ;
943- if ( ! currentMessage ?. message ) {
944- return false ;
945- }
946- if ( currentMessage . id === targetUserId ) {
947- return true ;
948- }
949- currentId = currentMessage . parent ;
950- depth ++ ;
951- }
952- return false ;
953- } ;
954-
955937 // Fill [chatGPTMessages]
956938 for ( const userMessage of userMessages ) {
957939 let sub = [ ]
958940 for ( const key in data ) {
959941 if ( data [ key ] . message != null && data [ key ] . message . author . role == 'assistant'
960- && isUserMessageAncestor ( key , userMessage . id ) ) {
942+ && isUserMsgAncestor ( key , userMessage . id ) ) {
961943 sub . push ( data [ key ] . message )
962944 }
963945 }
@@ -992,6 +974,17 @@ const chatgpt = {
992974 return resolve ( msgToGet == 'all' ? msgsToReturn // if 'all' passed, return array
993975 : msgToGet == 'latest' ? msgsToReturn [ msgsToReturn . length - 1 ] // else if 'latest' passed, return latest
994976 : msgsToReturn [ msgToGet ] ) // else return element of array
977+
978+ function isUserMsgAncestor ( messageId , targetUserId ) {
979+ let currentId = messageId ; const maxDepth = 10 ; let depth = 0
980+ while ( currentId && depth < maxDepth ) {
981+ const currentMsg = data [ currentId ]
982+ if ( ! currentMsg ?. message ) return false
983+ if ( currentMsg . id == targetUserId ) return true
984+ currentId = currentMsg . parent ; depth ++
985+ }
986+ return false
987+ }
995988 }
996989 xhr . send ( )
997990 } ) } ) }
0 commit comments