From 6cdc15faed3e80b8d3e47870c7478974336789c0 Mon Sep 17 00:00:00 2001 From: ameerhmz Date: Mon, 10 Aug 2026 20:33:04 +0530 Subject: [PATCH] feat(utils): safely parse front matter date in readLastUpdateData (Fixes #5691) --- .../src/__tests__/lastUpdateUtils.test.ts | 8 ++++++++ packages/docusaurus-utils/src/lastUpdateUtils.ts | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/docusaurus-utils/src/__tests__/lastUpdateUtils.test.ts b/packages/docusaurus-utils/src/__tests__/lastUpdateUtils.test.ts index 67b57f8deaa1..39799d62d423 100644 --- a/packages/docusaurus-utils/src/__tests__/lastUpdateUtils.test.ts +++ b/packages/docusaurus-utils/src/__tests__/lastUpdateUtils.test.ts @@ -61,6 +61,14 @@ describe('readLastUpdateData', () => { expect(lastUpdatedBy).toBeNull(); expect(lastUpdatedAt).toEqual(testTimestamp); }); + + it('handles invalid date string in front matter gracefully', async () => { + const {lastUpdatedAt, lastUpdatedBy} = await readUntrackedFile({ + date: 'invalid-date-string', + }); + expect(lastUpdatedAt).toBeNull(); + expect(lastUpdatedBy).toBeNull(); + }); }); it('read last time show author time', async () => { diff --git a/packages/docusaurus-utils/src/lastUpdateUtils.ts b/packages/docusaurus-utils/src/lastUpdateUtils.ts index 0f1a44e86887..c80f8bbaeb9d 100644 --- a/packages/docusaurus-utils/src/lastUpdateUtils.ts +++ b/packages/docusaurus-utils/src/lastUpdateUtils.ts @@ -61,9 +61,10 @@ export async function readLastUpdateData( } const frontMatterAuthor = lastUpdateFrontMatter?.author; - const frontMatterTimestamp = lastUpdateFrontMatter?.date - ? new Date(lastUpdateFrontMatter.date).getTime() - : undefined; + const rawDate = lastUpdateFrontMatter?.date; + const parsedDate = rawDate ? new Date(rawDate).getTime() : undefined; + const frontMatterTimestamp = + parsedDate && !Number.isNaN(parsedDate) ? parsedDate : undefined; // We try to minimize git last update calls // We call it at most once