@@ -223,7 +223,7 @@ export const getBestPhoneFromContactShared = ({
223223 return phone_number ;
224224} ;
225225
226- const abstractMessage = ( token : string ) =>
226+ const toNormalizedEvent = ( token : string ) =>
227227async (
228228 { text, entities, contact, photo, caption, from } : grammy . Message ,
229229) : Promise < ConversationEvent > => ( {
@@ -240,7 +240,7 @@ async (
240240 ownPhone : contact && sharedOwnPhone ( coerce ( from ?. id ) , contact ) ,
241241} ) ;
242242
243- const handler = < T extends TaskHandler > (
243+ const injectDeps = < T extends TaskHandler > (
244244 telegramToken : string ,
245245 id : number ,
246246 tgm : Telegram ,
@@ -261,6 +261,19 @@ const handler = <T extends TaskHandler>(
261261 injectTyping ( makeTyping ( tgm , id ) ) < T > ,
262262 ) ;
263263
264+ export const telegramInjectDepsAndRun =
265+ ( token : string , handler : TaskHandler ) => async ( { message } : grammy . Update ) =>
266+ message ?. from && message . text
267+ ? injectDeps (
268+ token ,
269+ message . from . id ,
270+ new Telegraf ( token , {
271+ handlerTimeout : Number . POSITIVE_INFINITY ,
272+ } ) . telegram ,
273+ await toNormalizedEvent ( token ) ( message ) ,
274+ ) ( handler ) ( )
275+ : Promise . resolve ( ) ;
276+
264277export const makeTelegramHandler = (
265278 telegramToken : string ,
266279 path : string ,
@@ -269,16 +282,6 @@ export const makeTelegramHandler = (
269282 {
270283 bounce : true ,
271284 predicate : ( { url, method } ) => url === path && method === "POST" ,
272- handler : async ( { message } : grammy . Update ) =>
273- message ?. from && message . text
274- ? handler (
275- telegramToken ,
276- message . from . id ,
277- new Telegraf ( telegramToken , {
278- handlerTimeout : Number . POSITIVE_INFINITY ,
279- } ) . telegram ,
280- await abstractMessage ( telegramToken ) ( message ) ,
281- ) ( doTask ) ( )
282- : Promise . resolve ( ) ,
285+ handler : telegramInjectDepsAndRun ( telegramToken , doTask ) ,
283286 }
284287) ;
0 commit comments