Add config.defaults.hadLunch and rework lunch messages

This commit is contained in:
Marko Korhonen 2023-11-23 19:51:20 +02:00
parent 91a7362495
commit b08ab097ba
Signed by: FunctionalHacker
GPG key ID: A7F78BCB859CD890
8 changed files with 60 additions and 24 deletions

View file

@ -6,23 +6,25 @@ import { parseDuration, parseTimestamp } from './parse.js';
import WtcConfig from './types/WtcConfig.js';
import Language from './types/Language.js';
interface RawConfig extends Omit<WtcConfig, 'lunchBreakDuration' | 'defaults'> {
lunchBreakDuration: string;
interface RawConfig extends Omit<WtcConfig, 'unpaidLunchBreakDuration' | 'defaults'> {
unpaidLunchBreakDuration: string;
defaults: {
workDayDuration: string;
startTime: string;
stopTime: string;
hadLunch: boolean;
};
}
const defaultConfig: RawConfig = {
language: Language.en,
timestampFormat: 'YYYY-MM-DD HH:mm',
lunchBreakDuration: '00:30',
unpaidLunchBreakDuration: '00:30',
defaults: {
workDayDuration: '07:30',
startTime: '08:00',
stopTime: 'now',
hadLunch: true,
},
askInput: {
workDayLength: true,
@ -46,13 +48,14 @@ const getConfig = (): WtcConfig => {
return {
language: configData.language ?? defaultConfig.language,
timestampFormat: configData.timestampFormat ?? defaultConfig.timestampFormat,
lunchBreakDuration: parseDuration(configData.lunchBreakDuration),
unpaidLunchBreakDuration: !configData.unpaidLunchBreakDuration ? undefined : parseDuration(configData.unpaidLunchBreakDuration),
defaults: {
workDayDuration: parseDuration(
configData.defaults.workDayDuration ?? defaultConfig.defaults.workDayDuration,
),
startTime: parseTimestamp(configData.defaults.startTime ?? defaultConfig.defaults.startTime),
stopTime: parseTimestamp(configData.defaults.stopTime ?? defaultConfig.defaults.stopTime),
hadLunch: configData.defaults.hadLunch ?? defaultConfig.defaults.hadLunch,
},
askInput: {
workDayLength: configData.askInput.workDayLength ?? defaultConfig.askInput.workDayLength,