Add dayjs configurator

This commit is contained in:
Marko Korhonen 2023-11-24 16:03:44 +02:00
parent bb375e62ea
commit e44fc052f2
Signed by: FunctionalHacker
GPG key ID: A7F78BCB859CD890
5 changed files with 16 additions and 16 deletions

10
src/dayjs.ts Normal file
View file

@ -0,0 +1,10 @@
import dayjs, {Dayjs} from 'dayjs';
import duration, {Duration} from 'dayjs/plugin/duration.js';
import customParseFormat from 'dayjs/plugin/customParseFormat.js';
dayjs.extend(duration);
dayjs.extend(customParseFormat);
export default dayjs;
export type {Dayjs, Duration};

View file

@ -1,4 +1,4 @@
import dayjs, { Dayjs } from 'dayjs'; import dayjs, { Dayjs } from './dayjs';
import { Duration } from 'dayjs/plugin/duration.js'; import { Duration } from 'dayjs/plugin/duration.js';
import Language from './types/Language'; import Language from './types/Language';
import { MessageKey, message } from './i18n'; import { MessageKey, message } from './i18n';

View file

@ -1,15 +1,12 @@
import chalk from 'chalk'; import chalk from 'chalk';
import { Duration } from 'dayjs/plugin/duration';
import { parseDuration, parseTimestamp } from './parse'; import { parseDuration, parseTimestamp } from './parse';
import * as readline from 'readline/promises'; import * as readline from 'readline/promises';
import { formatDuration, formatTime } from './format'; import { formatDuration, formatTime } from './format';
import dayjs, { Dayjs } from 'dayjs'; import { Dayjs } from 'dayjs';
import { WtcPromptResult } from './types/WtcPromptResult'; import { WtcPromptResult } from './types/WtcPromptResult';
import duration from 'dayjs/plugin/duration.js';
import WtcConfig from './types/WtcConfig'; import WtcConfig from './types/WtcConfig';
import { MessageKey, message } from './i18n'; import { MessageKey, message } from './i18n';
import dayjs, { Duration } from './dayjs';
dayjs.extend(duration);
const { error } = console; const { error } = console;
@ -123,7 +120,7 @@ const input = async (config: WtcConfig): Promise<WtcPromptResult> => {
const logged = parseDuration(loggedAnswer); const logged = parseDuration(loggedAnswer);
const unLogged = worked.subtract(logged); const unLogged = worked.subtract(logged);
const workLeft = workDayDuration.subtract(worked); const workLeft = workDayDuration.subtract(worked);
let workLeftMinutes = workLeft.asMinutes(); const workLeftMinutes = workLeft.asMinutes();
let workedOvertime: Duration | undefined; let workedOvertime: Duration | undefined;
if (workLeftMinutes < 0) { if (workLeftMinutes < 0) {

View file

@ -3,11 +3,9 @@ import { formatDuration, getHoursRoundedStr } from './format';
import { WtcPromptResult } from './types/WtcPromptResult'; import { WtcPromptResult } from './types/WtcPromptResult';
import { MessageKey, message } from './i18n.js'; import { MessageKey, message } from './i18n.js';
import WtcConfig from './types/WtcConfig'; import WtcConfig from './types/WtcConfig';
import duration from 'dayjs/plugin/duration.js'; import dayjs from './dayjs';
import dayjs from 'dayjs';
const { log } = console; const { log } = console;
dayjs.extend(duration);
const output = (result: WtcPromptResult, config: WtcConfig) => { const output = (result: WtcPromptResult, config: WtcConfig) => {
const { language, timestampFormat } = config; const { language, timestampFormat } = config;

View file

@ -1,9 +1,4 @@
import dayjs, { Dayjs } from 'dayjs'; import dayjs, { Dayjs, Duration } from './dayjs';
import customParseFormat from 'dayjs/plugin/customParseFormat.js';
import duration, { Duration } from 'dayjs/plugin/duration.js';
dayjs.extend(customParseFormat);
dayjs.extend(duration);
export const parseTimestamp = (time: string): Dayjs => (time === 'now' ? dayjs() : dayjs(time, 'HH:mm', true)); export const parseTimestamp = (time: string): Dayjs => (time === 'now' ? dayjs() : dayjs(time, 'HH:mm', true));