From 21d694be02b92226b6b19fad01d1132a08058d7e Mon Sep 17 00:00:00 2001 From: Mahmut Gundogdu Date: Mon, 24 Jun 2024 16:19:08 +0000 Subject: [PATCH 1/2] add registerLocale function that supported esbuild --- .../core/locale/src/utils/register-locale.ts | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts b/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts index 97a49066ec..25a87e6f62 100644 --- a/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts +++ b/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts @@ -15,6 +15,72 @@ export interface RegisterLocaleData { errorHandlerFn?: (data: LocaleErrorHandlerData) => any; } + +function loadLocale(locale: string) { + // hard coded list works with esbuild. Source https://github.com/angular/angular-cli/issues/26904#issuecomment-1903596563 + + var list = { + 'ar': () => import('@angular/common/locales/ar'), + 'cs': () => import('@angular/common/locales/cs'), + 'en': () => import('@angular/common/locales/en'), + 'en-GB': () => import('@angular/common/locales/en-GB'), + 'es': () => import('@angular/common/locales/es'), + 'de': () => import('@angular/common/locales/de'), + 'fi': () => import('@angular/common/locales/fi'), + 'fr': () => import('@angular/common/locales/fr'), + 'hi': () => import('@angular/common/locales/hi'), + 'hu': () => import('@angular/common/locales/hu'), + 'is': () => import('@angular/common/locales/is'), + 'it': () => import('@angular/common/locales/it'), + 'pt': () => import('@angular/common/locales/pt'), + 'tr': () => import('@angular/common/locales/tr'), + 'ru': () => import('@angular/common/locales/ru'), + 'ro': () => import('@angular/common/locales/ro'), + 'sk': () => import('@angular/common/locales/sk'), + 'sl': () => import('@angular/common/locales/sl'), + 'zh-Hans': () => import('@angular/common/locales/zh-Hans'), + 'zh-Hant': () => import('@angular/common/locales/zh-Hant') + } + return list[locale](); +} + +export function registerLocaleForEsBuild( + { + cultureNameLocaleFileMap = {}, + errorHandlerFn = defaultLocalErrorHandlerFn, + } = {} as RegisterLocaleData, +) { + return (locale: string): Promise => { + localeMap = { ...differentLocales, ...cultureNameLocaleFileMap }; + const l = localeMap[locale] || locale; + var localeSupportList = "ar|cs|en|en-GB|es|de|fi|fr|hi|hu|is|it|pt|tr|ru|ro|sk|sl|zh-Hans|zh-Hant".split("|"); + + if (localeSupportList.indexOf(locale) == -1) { + return; + } + return new Promise((resolve, reject) => { + return loadLocale(l) + .then(val => { + let module = val; + while (module.default) { + module = module.default; + } + resolve({ default: module }); + }) + .catch(error => { + errorHandlerFn({ + resolve, + reject, + error, + locale, + }); + }); + }); + }; +} + + + export function registerLocale( { cultureNameLocaleFileMap = {}, From 736314902af04fece727d1929b278f4dc07f078a Mon Sep 17 00:00:00 2001 From: Masum ULU <49063256+masumulu28@users.noreply.github.com> Date: Thu, 18 Jul 2024 09:24:18 +0300 Subject: [PATCH 2/2] Update register-locale.ts --- .../packages/core/locale/src/utils/register-locale.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts b/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts index 25a87e6f62..5d6ae52645 100644 --- a/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts +++ b/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts @@ -19,7 +19,7 @@ export interface RegisterLocaleData { function loadLocale(locale: string) { // hard coded list works with esbuild. Source https://github.com/angular/angular-cli/issues/26904#issuecomment-1903596563 - var list = { + const list = { 'ar': () => import('@angular/common/locales/ar'), 'cs': () => import('@angular/common/locales/cs'), 'en': () => import('@angular/common/locales/en'), @@ -53,7 +53,7 @@ export function registerLocaleForEsBuild( return (locale: string): Promise => { localeMap = { ...differentLocales, ...cultureNameLocaleFileMap }; const l = localeMap[locale] || locale; - var localeSupportList = "ar|cs|en|en-GB|es|de|fi|fr|hi|hu|is|it|pt|tr|ru|ro|sk|sl|zh-Hans|zh-Hant".split("|"); + const localeSupportList = "ar|cs|en|en-GB|es|de|fi|fr|hi|hu|is|it|pt|tr|ru|ro|sk|sl|zh-Hans|zh-Hant".split("|"); if (localeSupportList.indexOf(locale) == -1) { return;