From e8217e335cc469003ce634f3a7f9171ff5f57543 Mon Sep 17 00:00:00 2001 From: Danial Raza Date: Wed, 12 Nov 2025 11:55:20 +0100 Subject: [PATCH] feat!: support new s/S timestamp styles (#11267) BREAKING CHANGE: `TimestampStyles.LongTime` has been removed. Use `TimestampStyles.MediumTime` instead. BREAKING CHANGE: `TimestampStyles.ShortDateTime` has been removed. Use `TimestampStyles.LongDateShortTime` instead. BREAKING CHANGE: `TimestampStyles.LongDateTime` has been removed. Use `TimestampStyles.FullDateShortTime` instead. --- .../formatters/__tests__/formatters.test.ts | 14 ++++++-- packages/formatters/src/formatters.ts | 32 +++++++++++++------ 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/packages/formatters/__tests__/formatters.test.ts b/packages/formatters/__tests__/formatters.test.ts index 20ad29d85..3de091b4b 100644 --- a/packages/formatters/__tests__/formatters.test.ts +++ b/packages/formatters/__tests__/formatters.test.ts @@ -331,8 +331,18 @@ describe('Message formatters', () => { expect<''>(time(1_867_424_897, 'd')).toEqual(''); }); - test('GIVEN a date and a format from enum THEN returns ""', () => { - expect<''>(time(1_867_424_897, TimestampStyles.RelativeTime)).toEqual(''); + test.each([ + [TimestampStyles.ShortTime, 't'], + [TimestampStyles.MediumTime, 'T'], + [TimestampStyles.ShortDate, 'd'], + [TimestampStyles.LongDate, 'D'], + [TimestampStyles.LongDateShortTime, 'f'], + [TimestampStyles.FullDateShortTime, 'F'], + [TimestampStyles.ShortDateShortTime, 's'], + [TimestampStyles.ShortDateMediumTime, 'S'], + [TimestampStyles.RelativeTime, 'R'], + ])('GIVEN a date and style from enum THEN returns ""', (style, expectedStyle) => { + expect<``>(time(1_867_424_897, style)).toEqual(``); }); }); diff --git a/packages/formatters/src/formatters.ts b/packages/formatters/src/formatters.ts index bff6a6474..7a1cc34e6 100644 --- a/packages/formatters/src/formatters.ts +++ b/packages/formatters/src/formatters.ts @@ -725,11 +725,11 @@ export const TimestampStyles = { ShortTime: 't', /** - * Long time format, consisting of hours, minutes, and seconds. + * Medium time format, consisting of hours, minutes, and seconds. * * @example `16:20:30` */ - LongTime: 'T', + MediumTime: 'T', /** * Short date format, consisting of day, month, and year. @@ -741,23 +741,37 @@ export const TimestampStyles = { /** * Long date format, consisting of day, month, and year. * - * @example `20 April 2021` + * @example `April 20, 2021` */ LongDate: 'D', /** - * Short date-time format, consisting of short date and short time formats. + * Long date-short time format, consisting of long date and short time. * - * @example `20 April 2021 16:20` + * @example `April 20, 2021 at 16:20` */ - ShortDateTime: 'f', + LongDateShortTime: 'f', /** - * Long date-time format, consisting of long date and short time formats. + * Full date-short time format, consisting of full date and short time. * - * @example `Tuesday, 20 April 2021 16:20` + * @example `Tuesday, April 20, 2021 at 16:20` */ - LongDateTime: 'F', + FullDateShortTime: 'F', + + /** + * Short date, short time format, consisting of short date and short time. + * + * @example `20/04/2021, 16:20` + */ + ShortDateShortTime: 's', + + /** + * Short date, medium time format, consisting of short date and medium time. + * + * @example `20/04/2021, 16:20:30` + */ + ShortDateMediumTime: 'S', /** * Relative time format, consisting of a relative duration format.