All files / src/monitor/tasks TaskClock.ts

23.07% Statements 3/13
0% Branches 0/1
0% Functions 0/4
23.07% Lines 3/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32  57x     57x 57x                                                    
import { Monitor } from '../Monitor';
import { WalletMonitorTask } from './WalletMonitorTask';
 
 
export class TaskClock extends WalletMonitorTask {
    static taskName = 'Clock';
    nextMinute: number
 
    constructor(monitor: Monitor, public triggerMsecs = 1 * monitor.oneSecond) {
        super(monitor, TaskClock.taskName);
        this.nextMinute = this.getNextMinute()
    }
 
    trigger(nowMsecsSinceEpoch: number): { run: boolean; } {
        const s = this.storage;
 
        const run = Date.now() > this.nextMinute
 
        return { run };
    }
 
    async runTask(): Promise<string> {
        const log = `${new Date(this.nextMinute).toISOString()}`
        this.nextMinute = this.getNextMinute()
        return log
    }
 
    getNextMinute() : number {
        return Math.ceil(Date.now() / this.monitor.oneMinute) * this.monitor.oneMinute 
    }
}