UNPKG

@pushrocks/smarttime

Version:

handle time in smart ways

34 lines 2.43 kB
import * as plugins from './smarttime.plugins.js'; export class Interval { constructor(intervalMillisencondsArg) { this.status = 'initial'; this.statusAuthorization = null; this.intervalJobs = []; this.intervalMilliseconds = intervalMillisencondsArg; } start() { this.status = 'started'; const statusAuth = new Date(); this.statusAuthorization = statusAuth; const runInterval = async () => { while (this.status === 'started' && this.statusAuthorization === statusAuth) { await plugins.smartdelay.delayFor(this.intervalMilliseconds); this.executeIntervalJobs(); } }; runInterval(); } stop() { this.status = 'stopped'; this.statusAuthorization = null; } addIntervalJob(funcArg) { this.intervalJobs.push(funcArg); } executeIntervalJobs() { for (const funcArg of this.intervalJobs) { funcArg(); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0aW1lLmNsYXNzZXMuaW50ZXJ2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHRpbWUuY2xhc3Nlcy5pbnRlcnZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHdCQUF3QixDQUFDO0FBRWxELE1BQU0sT0FBTyxRQUFRO0lBU25CLFlBQVksd0JBQWdDO1FBUnJDLFdBQU0sR0FBc0MsU0FBUyxDQUFDO1FBQ3JELHdCQUFtQixHQUFRLElBQUksQ0FBQztRQU1qQyxpQkFBWSxHQUFxQixFQUFFLENBQUM7UUFFekMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLHdCQUF3QixDQUFDO0lBQ3ZELENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLFVBQVUsRUFBRTtnQkFDM0UsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQUM7UUFDRixXQUFXLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxPQUFrQjtRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN2QyxPQUFPLEVBQUUsQ0FBQztTQUNYO0lBQ0gsQ0FBQztDQUNGIn0=