diff --git a/src/dayjs.ts b/src/dayjs.ts new file mode 100644 index 0000000..526f1a2 --- /dev/null +++ b/src/dayjs.ts @@ -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}; diff --git a/src/format.ts b/src/format.ts index a242f7b..b097907 100644 --- a/src/format.ts +++ b/src/format.ts @@ -1,4 +1,4 @@ -import dayjs, { Dayjs } from 'dayjs'; +import dayjs, { Dayjs } from './dayjs'; import { Duration } from 'dayjs/plugin/duration.js'; import Language from './types/Language'; import { MessageKey, message } from './i18n'; diff --git a/src/input.ts b/src/input.ts index 035ed48..afc847d 100644 --- a/src/input.ts +++ b/src/input.ts @@ -1,15 +1,12 @@ import chalk from 'chalk'; -import { Duration } from 'dayjs/plugin/duration'; import { parseDuration, parseTimestamp } from './parse'; import * as readline from 'readline/promises'; import { formatDuration, formatTime } from './format'; -import dayjs, { Dayjs } from 'dayjs'; +import { Dayjs } from 'dayjs'; import { WtcPromptResult } from './types/WtcPromptResult'; -import duration from 'dayjs/plugin/duration.js'; import WtcConfig from './types/WtcConfig'; import { MessageKey, message } from './i18n'; - -dayjs.extend(duration); +import dayjs, { Duration } from './dayjs'; const { error } = console; @@ -123,7 +120,7 @@ const input = async (config: WtcConfig): Promise => { const logged = parseDuration(loggedAnswer); const unLogged = worked.subtract(logged); const workLeft = workDayDuration.subtract(worked); - let workLeftMinutes = workLeft.asMinutes(); + const workLeftMinutes = workLeft.asMinutes(); let workedOvertime: Duration | undefined; if (workLeftMinutes < 0) { diff --git a/src/output.ts b/src/output.ts index b300000..9d8de7b 100644 --- a/src/output.ts +++ b/src/output.ts @@ -3,11 +3,9 @@ import { formatDuration, getHoursRoundedStr } from './format'; import { WtcPromptResult } from './types/WtcPromptResult'; import { MessageKey, message } from './i18n.js'; import WtcConfig from './types/WtcConfig'; -import duration from 'dayjs/plugin/duration.js'; -import dayjs from 'dayjs'; +import dayjs from './dayjs'; const { log } = console; -dayjs.extend(duration); const output = (result: WtcPromptResult, config: WtcConfig) => { const { language, timestampFormat } = config; diff --git a/src/parse.ts b/src/parse.ts index 4abe2fd..7d723fb 100644 --- a/src/parse.ts +++ b/src/parse.ts @@ -1,9 +1,4 @@ -import dayjs, { Dayjs } from 'dayjs'; -import customParseFormat from 'dayjs/plugin/customParseFormat.js'; -import duration, { Duration } from 'dayjs/plugin/duration.js'; - -dayjs.extend(customParseFormat); -dayjs.extend(duration); +import dayjs, { Dayjs, Duration } from './dayjs'; export const parseTimestamp = (time: string): Dayjs => (time === 'now' ? dayjs() : dayjs(time, 'HH:mm', true));