import chalk from 'chalk'; import { formatDuration, formatTimestamp, getHoursRoundedStr } from './format'; import { WtcPromptResult } from './types/WtcPromptResult'; import { MessageKey, message } from './i18n.js'; import WtcConfig from './types/WtcConfig'; const { log } = console; const output = (result: WtcPromptResult, config: WtcConfig) => { const msg = message(config.language); const fmtDuration = formatDuration(config.language); const hoursRounded = getHoursRoundedStr(config.language); const { startedAt, stoppedAt, stoppedWorking, worked, unLogged, workLeft, workedOvertime } = result; log(); log(msg(MessageKey.startedWorking), formatTimestamp(startedAt)); log( (stoppedWorking ? msg(MessageKey.stoppedWorking) : msg(MessageKey.hoursCalculated)) + ` ${msg(MessageKey.klo)}:`, formatTimestamp(stoppedAt), ); log(msg(MessageKey.workedToday), chalk.green(fmtDuration(worked)), chalk.yellow(hoursRounded(worked))); const unLoggedMinutes = unLogged.asMinutes(); if (unLoggedMinutes >= 0) { log( msg(MessageKey.unloggedToday), unLoggedMinutes === 0 ? chalk.green(msg(MessageKey.none)) : chalk.red(fmtDuration(unLogged)), unLoggedMinutes === 0 ? '' : chalk.yellow(hoursRounded(unLogged)), ); } else if (unLoggedMinutes < 0) { log(chalk.red(msg(MessageKey.loggedOver, fmtDuration(unLogged))), chalk.yellow(hoursRounded(unLogged))); } if (workLeft.asMinutes() > 0) { log(msg(MessageKey.workLeft, chalk.green(fmtDuration(workLeft)))); } else if (workedOvertime) { log(msg(MessageKey.workedOvertime, chalk.green(fmtDuration(workedOvertime)))); } }; export default output;