@@ -7,10 +7,9 @@ export default {
77 ...common . hooks ,
88 async deploy ( ) {
99 const messageIds = await this . getMessageIds ( constants . HISTORICAL_EVENTS ) ;
10- if ( ! messageIds ? .length ) {
11- return ;
10+ if ( messageIds . length ) {
11+ await this . processHistoricalEvents ( messageIds ) ;
1212 }
13- await this . processHistoricalEvents ( messageIds ) ;
1413 } ,
1514 async activate ( ) {
1615 console . log ( `Previous lastDate: ${ this . getLastDate ( ) } ` ) ;
@@ -24,7 +23,7 @@ export default {
2423 return this . db . get ( "lastDate" ) ;
2524 } ,
2625 setLastDate ( lastDate ) {
27- this . db . set ( "lastDate" , lastDate ) ;
26+ this . db . set ( "lastDate" , parseInt ( lastDate ) ) ;
2827 } ,
2928 constructQuery ( lastDate ) {
3029 const { q : query } = this ;
@@ -44,19 +43,18 @@ export default {
4443 labelIds : this . getLabels ( ) ,
4544 maxResults : max ,
4645 } ) ;
47- return messages ?. map ( ( message ) => message . id ) ;
46+ return messages ?. map ( ( message ) => message . id ) ?? [ ] ;
4847 } ,
4948 async processMessageIds ( messageIds , lastDate ) {
5049 let maxDate = lastDate ;
5150 const messages = this . gmail . getAllMessages ( messageIds ) ;
52- console . log ( "Processing messages..." ) ;
5351 for await ( const message of messages ) {
54- if ( message . internalDate >= lastDate ) {
55- this . emitEvent ( message ) ;
56- maxDate = Math . max ( maxDate , message . internalDate ) ;
57- }
52+ this . emitEvent ( message ) ;
53+ maxDate = Math . max ( maxDate , message . internalDate ) ;
54+ }
55+ if ( maxDate !== lastDate ) {
56+ this . setLastDate ( maxDate ) ;
5857 }
59- if ( maxDate ) this . setLastDate ( maxDate ) ;
6058 } ,
6159 async processHistoricalEvents ( messageIds ) {
6260 let messages = await this . gmail . getMessages ( messageIds ) ;
@@ -68,10 +66,11 @@ export default {
6866 async run ( ) {
6967 const lastDate = this . getLastDate ( ) ;
7068 const messageIds = await this . getMessageIds ( constants . DEFAULT_LIMIT , lastDate ) ;
71- if ( ! messageIds ?. length ) {
69+ if ( messageIds . length ) {
70+ console . log ( `Processing ${ messageIds . length } message(s)...` ) ;
71+ await this . processMessageIds ( messageIds . reverse ( ) , lastDate ) ;
72+ } else {
7273 console . log ( "There are no new messages. Exiting..." ) ;
73- return ;
7474 }
75- await this . processMessageIds ( messageIds . reverse ( ) , lastDate ) ;
7675 } ,
7776} ;
0 commit comments