@@ -15,7 +15,7 @@ export default {
1515 name: "New Email Received",
1616 description: "Emit new event when a new email is received.",
1717 type: "source",
18- version: "0.1.5 ",
18+ version: "0.1.6 ",
1919 dedupe: "unique",
2020 props: {
2121 gmail,
@@ -383,6 +383,20 @@ export default {
383383 )
384384 : history.filter((item) => item.messagesAdded?.length);
385385 },
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+ },
386400 },
387401 async run(event) {
388402 if (this.triggerType === "polling") {
@@ -464,7 +478,7 @@ export default {
464478
465479 // Fetch full message details for new messages
466480 const newMessageIds = newMessages?.map(({ id }) => id) || [];
467- const messageDetails = await this.gmail.getMessages (newMessageIds);
481+ const messageDetails = await this.getMessageDetails (newMessageIds);
468482
469483 if (!messageDetails?.length) {
470484 return;
@@ -477,7 +491,11 @@ export default {
477491 this._setLastProcessedHistoryId(latestHistoryId);
478492 console.log("Updated lastProcessedHistoryId:", latestHistoryId);
479493
480- messageDetails.forEach((message) => this.emitEvent(message));
494+ messageDetails.forEach((message) => {
495+ if (message?.id) {
496+ this.emitEvent(message);
497+ }
498+ });
481499 }
482500 },
483501};
0 commit comments