UNPKG

downtimer

Version:
99 lines 3.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logSchedule = logSchedule; exports.logBeforeExecute = logBeforeExecute; exports.logErrorInExecute = logErrorInExecute; exports.logClearNotFound = logClearNotFound; exports.logClearSuccess = logClearSuccess; exports.logClearAll = logClearAll; exports.logClearOnExit = logClearOnExit; const stackTrace_1 = require("./stackTrace"); const date_fns_1 = require("date-fns"); function formatTime(t) { return (0, date_fns_1.format)(new Date(t), 'hh:mm:ss'); } function displayHeading(msg, colors) { console.log(colors.heading(`[DOWNTIMER]@${formatTime(Date.now())} ${msg}`)); } function displayScheduleTime(scheduledAt, scheduledFor) { console.log(` Scheduled at ${formatTime(scheduledAt)}`); const delta = Date.now() - scheduledFor; let lateness = ''; if (delta > 10) { lateness = ` (${delta} ms late)`; } else if (delta < -10) { lateness = ` (${-delta} ms early)`; } console.log(` Scheduled for ${formatTime(scheduledFor)}${lateness}`); } function logSchedule(mode, timer, colors) { if (mode === 'off') return; displayHeading(`Schedule timer '${timer.externalId}'`, colors); if (mode === 'minimal') return; console.log(' Stack trace of scheduler'); (0, stackTrace_1.displayTrace)(timer.scheduleStackTrace, colors); } function logBeforeExecute(mode, timer, colors) { if (mode === 'off') return; displayHeading(`Execute timer '${timer.externalId}'`, colors); if (mode === 'minimal') return; displayScheduleTime(timer.scheduledAt, timer.scheduledFor); console.log(' Stack trace of scheduler'); (0, stackTrace_1.displayTrace)(timer.scheduleStackTrace, colors); } function logErrorInExecute(mode, timer, execError, colors) { if (mode === 'off') return; displayHeading(`Unhandled error in timer '${timer.externalId}'`, colors); if (mode === 'minimal') return; displayScheduleTime(timer.scheduledAt, timer.scheduledFor); (0, stackTrace_1.displayError)(execError, colors); console.log(' Stack trace of scheduler'); (0, stackTrace_1.displayTrace)(timer.scheduleStackTrace, colors); } function logClearNotFound(mode, timerId, colors) { if (mode === 'off') return; displayHeading(`Failed to clear timer: '${timerId}' not found (maybe it has already fired?)`, colors); if (mode === 'minimal') return; (0, stackTrace_1.displayTrace)((0, stackTrace_1.getStackTrace)(), colors); } function logClearSuccess(mode, timer, colors) { if (mode === 'off') return; displayHeading(`Cleared timer '${timer.externalId}'`, colors); if (mode === 'minimal') return; console.log(' Stack trace of scheduler'); (0, stackTrace_1.displayTrace)(timer.scheduleStackTrace, colors); console.log(' Stack trace of clearer'); (0, stackTrace_1.displayTrace)((0, stackTrace_1.getStackTrace)(), colors); } function logClearAll(mode, timers, colors) { if (mode === 'off') return; const n = Object.keys(timers).length; displayHeading(`Cleared ${n} timer${n === 1 ? '' : 's'}`, colors); if (mode === 'minimal') return; for (const t of Object.values(timers)) { console.log(` -> '${t.externalId}'`); displayScheduleTime(t.scheduledAt, t.scheduledFor); } console.log(' Stack trace of clearer'); (0, stackTrace_1.displayTrace)((0, stackTrace_1.getStackTrace)(), colors); } function logClearOnExit(mode, timers, code, colors) { if (mode === 'off') return; const n = Object.keys(timers).length; displayHeading(`Clearing ${n} timer${n === 1 ? '' : 's'} due to exit with code ${code}`, colors); } //# sourceMappingURL=log.js.map