From 34283ad560d00450dac2ee5839a1c7c51e7504e8 Mon Sep 17 00:00:00 2001 From: printfn Date: Mon, 2 Dec 2024 07:04:09 +0000 Subject: [PATCH 1/3] Implement Intl Locale Info proposal --- src/lib/esnext.intl.d.ts | 86 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/src/lib/esnext.intl.d.ts b/src/lib/esnext.intl.d.ts index 9aacedd724469..6a4ac2d60ed3a 100644 --- a/src/lib/esnext.intl.d.ts +++ b/src/lib/esnext.intl.d.ts @@ -1,3 +1,87 @@ declare namespace Intl { - // Empty + interface Locale { + /** + * Returns a list of one or more unique calendar identifiers for this locale. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getCalendars) + */ + getCalendars(): string[]; + /** + * Returns a list of one or more collation types for this locale. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getCollations) + */ + getCollations(): string[]; + /** + * Returns a list of one or more unique hour cycle identifiers for this locale. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getHourCycles) + */ + getHourCycles(): string[]; + /** + * Returns a list of one or more unique numbering system identifiers for this locale. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getNumberingSystems) + */ + getNumberingSystems(): string[]; + /** + * Returns the ordering of characters indicated by either ltr (left-to-right) or by rtl (right-to-left) for this locale. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getTextInfo) + */ + getTextInfo(): TextInfo; + /** + * Returns a list of supported time zones for this locale. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getTimeZones) + */ + getTimeZones(): string[]; + /** + * Returns a `WeekInfo` object with the properties `firstDay`, `weekend` and `minimalDays` for this locale. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getWeekInfo) + */ + getWeekInfo(): WeekInfo; + } + + /** + * An object representing text typesetting information associated with the Locale data specified in UTS 35's Layouts Elements. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getTextInfo#return_value) + */ + interface TextInfo { + /** + * A string indicating the direction of text for the locale. Can be either "ltr" (left-to-right) or "rtl" (right-to-left). + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getTextInfo#direction) + */ + direction: "ltr" | "rtl"; + } + + /** + * An object representing week information associated with the Locale data specified in UTS 35's Week Elements. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getWeekInfo#return_value) + */ + interface WeekInfo { + /** + * An integer between 1 (Monday) and 7 (Sunday) indicating the first day of the week for the locale. Commonly 1, 5, 6, or 7. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getWeekInfo#firstday) + */ + firstDay: number; + /** + * An array of integers between 1 and 7 indicating the weekend days for the locale. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getWeekInfo#weekend) + */ + weekend: number[]; + /** + * An integer between 1 and 7 (commonly 1 and 4) indicating the minimal days required in the + * first week of a month or year, for week-of-year or week-of-month calculations (e.g. The 20th week of the year). + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getWeekInfo#minimaldays) + */ + minimalDays: number; + } } From 2f8d0d07dca06e6a091211f2cd98e3a0c6172039 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Fri, 6 Feb 2026 13:23:55 -0800 Subject: [PATCH 2/3] Apply suggestions from code review --- src/lib/esnext.intl.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/esnext.intl.d.ts b/src/lib/esnext.intl.d.ts index 6a4ac2d60ed3a..9e80adfdfb1e5 100644 --- a/src/lib/esnext.intl.d.ts +++ b/src/lib/esnext.intl.d.ts @@ -35,7 +35,7 @@ declare namespace Intl { * * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getTimeZones) */ - getTimeZones(): string[]; + getTimeZones(): string[] | undefined; /** * Returns a `WeekInfo` object with the properties `firstDay`, `weekend` and `minimalDays` for this locale. * @@ -55,7 +55,7 @@ declare namespace Intl { * * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getTextInfo#direction) */ - direction: "ltr" | "rtl"; + direction?: "ltr" | "rtl"; } /** From da4cc6f57fc901975d5b795129b639d66706f157 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Fri, 6 Feb 2026 13:25:06 -0800 Subject: [PATCH 3/3] Apply suggestion from @jakebailey --- src/lib/esnext.intl.d.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/lib/esnext.intl.d.ts b/src/lib/esnext.intl.d.ts index 9e80adfdfb1e5..238148375f3b4 100644 --- a/src/lib/esnext.intl.d.ts +++ b/src/lib/esnext.intl.d.ts @@ -76,12 +76,5 @@ declare namespace Intl { * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getWeekInfo#weekend) */ weekend: number[]; - /** - * An integer between 1 and 7 (commonly 1 and 4) indicating the minimal days required in the - * first week of a month or year, for week-of-year or week-of-month calculations (e.g. The 20th week of the year). - * - * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getWeekInfo#minimaldays) - */ - minimalDays: number; } }