UNPKG

@fdm-monster/server

Version:

FDM Monster is a bulk OctoPrint, Klipper, PrusaLink and BambuLab manager to set up, configure and monitor 3D printers. Our aim is to provide neat overview over your farm.

48 lines (47 loc) 1.92 kB
//#region src/utils/job-stats.util.ts function calculateJobDuration(startedAt, endedAt = /* @__PURE__ */ new Date()) { if (!startedAt) return null; return (endedAt.getTime() - startedAt.getTime()) / 1e3; } function initializeOrUpdateStatistics(job, endedAt = /* @__PURE__ */ new Date(), options = {}) { const actualPrintTimeSeconds = calculateJobDuration(job.startedAt, endedAt); if (!job.statistics) return { startedAt: job.startedAt, endedAt, actualPrintTimeSeconds, progress: options.progress ?? job.progress ?? null, failureReason: options.failureReason, failureTime: options.failureTime }; else { job.statistics.endedAt = endedAt; job.statistics.actualPrintTimeSeconds = actualPrintTimeSeconds; if (options.progress !== void 0) job.statistics.progress = options.progress; if (options.failureReason !== void 0) { job.statistics.failureReason = options.failureReason; job.statistics.failureTime = options.failureTime ?? endedAt; } return job.statistics; } } function updateStatisticsForCompletion(job, endedAt = /* @__PURE__ */ new Date()) { job.statistics = initializeOrUpdateStatistics(job, endedAt, { progress: 100 }); job.endedAt = endedAt; job.progress = 100; } function updateStatisticsForFailure(job, reason, endedAt = /* @__PURE__ */ new Date()) { job.statistics = initializeOrUpdateStatistics(job, endedAt, { failureReason: reason, failureTime: endedAt }); job.endedAt = endedAt; job.statusReason = reason; } function updateStatisticsForCancellation(job, reason = "Print cancelled by user", endedAt = /* @__PURE__ */ new Date()) { job.statistics = initializeOrUpdateStatistics(job, endedAt); job.endedAt = endedAt; job.statusReason = reason; } //#endregion export { calculateJobDuration, initializeOrUpdateStatistics, updateStatisticsForCancellation, updateStatisticsForCompletion, updateStatisticsForFailure }; //# sourceMappingURL=job-stats.util.js.map