@@ -15,7 +15,7 @@ export default {
15
15
name : "New Email Received" ,
16
16
description : "Emit new event when a new email is received." ,
17
17
type : "source" ,
18
- version : "0.1.5 " ,
18
+ version : "0.1.6 " ,
19
19
dedupe : "unique" ,
20
20
props : {
21
21
gmail,
@@ -383,6 +383,20 @@ export default {
383
383
)
384
384
: history . filter ( ( item ) => item . messagesAdded ?. length ) ;
385
385
} ,
386
+ async getMessageDetails ( ids ) {
387
+ const messages = await Promise . all ( ids . map ( async ( id ) => {
388
+ try {
389
+ const message = await this . gmail . getMessage ( {
390
+ id,
391
+ } ) ;
392
+ return message ;
393
+ } catch {
394
+ console . log ( `Could not find message ${ id } ` ) ;
395
+ return null ;
396
+ }
397
+ } ) ) ;
398
+ return messages ;
399
+ } ,
386
400
} ,
387
401
async run ( event ) {
388
402
if ( this . triggerType === "polling" ) {
@@ -464,7 +478,7 @@ export default {
464
478
465
479
// Fetch full message details for new messages
466
480
const newMessageIds = newMessages ?. map ( ( { id } ) => id ) || [ ] ;
467
- const messageDetails = await this . gmail . getMessages ( newMessageIds ) ;
481
+ const messageDetails = await this . getMessageDetails ( newMessageIds ) ;
468
482
469
483
if ( ! messageDetails ?. length ) {
470
484
return ;
@@ -477,7 +491,11 @@ export default {
477
491
this . _setLastProcessedHistoryId ( latestHistoryId ) ;
478
492
console . log ( "Updated lastProcessedHistoryId:" , latestHistoryId ) ;
479
493
480
- messageDetails . forEach ( ( message ) => this . emitEvent ( message ) ) ;
494
+ messageDetails . forEach ( ( message ) => {
495
+ if ( message ?. id ) {
496
+ this . emitEvent ( message ) ;
497
+ }
498
+ } ) ;
481
499
}
482
500
} ,
483
501
} ;
0 commit comments