@@ -129,21 +129,23 @@ export const listRecurringMessages = async (interaction: ChatInputCommandInterac
129
129
( { channelId } ) => interaction . guild ?. channels . cache . has ( channelId ) ,
130
130
) ;
131
131
132
- const messagesByChannelName = messagesInCurrentGuild . reduce (
133
- ( acc , { id, frequency, message, channelId } ) => {
134
- const channel = interaction . guild ?. channels . cache . get ( channelId ) ;
135
- const channelName = channel ?. name ?? 'unknown' ;
132
+ const messagesByChannelName = messagesInCurrentGuild . reduce <
133
+ Record < string , Array < { id : string ; frequency : string ; message : string } > >
134
+ > ( ( acc , { id, frequency, message, channelId } ) => {
135
+ const channel = interaction . guild ?. channels . cache . get ( channelId ) ;
136
+ if ( channel === undefined ) throw new Error ( 'Channel not found' ) ;
136
137
137
- if ( ! acc [ channelName ] ) {
138
- acc [ channelName ] = [ ] ;
139
- }
138
+ const { name } = channel ;
139
+ const currentMessages = acc [ name ] ;
140
140
141
- acc [ channelName ] ! . push ( { id, frequency, message } ) ;
141
+ if ( currentMessages === undefined ) {
142
+ return { ...acc , [ name ] : [ { id, frequency, message } ] } ;
143
+ }
142
144
143
- return acc ;
144
- } ,
145
- { } as Record < string , { id : string ; frequency : string ; message : string } [ ] > ,
146
- ) ;
145
+ currentMessages . push ( { id , frequency , message } ) ;
146
+
147
+ return acc ;
148
+ } , { } ) ;
147
149
148
150
const embeds = Object . entries ( messagesByChannelName ) . map ( ( [ channelName , messages ] ) => {
149
151
const fields = messages . map ( ( { id, frequency, message } ) => ( {
0 commit comments