From f7f7fda0409bcb4b370de1cbf969d1424538b482 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Dec 2025 21:26:10 +0200 Subject: [PATCH] feat(dayjs): enable duration plugin (closes #4456) --- packages/commons/src/lib/dayjs.spec.ts | 5 +++++ packages/commons/src/lib/dayjs.ts | 2 ++ 2 files changed, 7 insertions(+) diff --git a/packages/commons/src/lib/dayjs.spec.ts b/packages/commons/src/lib/dayjs.spec.ts index 5e7805747..c69f7d93b 100644 --- a/packages/commons/src/lib/dayjs.spec.ts +++ b/packages/commons/src/lib/dayjs.spec.ts @@ -16,6 +16,11 @@ describe("dayjs", () => { expect(dayjs("2023-10-01").format("Q")).not.toBe("Q"); }); + it("duration plugin is available", () => { + const d = dayjs.duration({ hours: 2, minutes: 30 }); + expect(d.asMinutes()).toBe(150); + }); + it("is-between is available", () => { expect(dayjs("2023-10-02").isBetween(dayjs("2023-10-01"), dayjs("2023-10-03"))).toBe(true); }); diff --git a/packages/commons/src/lib/dayjs.ts b/packages/commons/src/lib/dayjs.ts index 3b59e120a..90508c112 100644 --- a/packages/commons/src/lib/dayjs.ts +++ b/packages/commons/src/lib/dayjs.ts @@ -2,6 +2,7 @@ import { default as dayjs, type Dayjs } from "dayjs"; //#region Plugins import advancedFormat from "dayjs/plugin/advancedFormat.js"; +import duration from "dayjs/plugin/duration.js"; import isBetween from "dayjs/plugin/isBetween.js"; import isoWeek from "dayjs/plugin/isoWeek.js"; import isSameOrAfter from "dayjs/plugin/isSameOrAfter.js"; @@ -11,6 +12,7 @@ import utc from "dayjs/plugin/utc.js"; import { LOCALE_IDS } from "./i18n.js"; dayjs.extend(advancedFormat); +dayjs.extend(duration); dayjs.extend(isBetween); dayjs.extend(isoWeek); dayjs.extend(isSameOrAfter);