Add fallback date-fns locale import
authorsunaurus <sander@saarend.com>
Sat, 1 Jul 2023 15:57:19 +0000 (18:57 +0300)
committersunaurus <sander@saarend.com>
Sat, 1 Jul 2023 15:57:19 +0000 (18:57 +0300)
src/shared/utils/app/setup-date-fns.ts

index 44f27acfe61c91c7a50fa4872b3bb4fa7d32182c..97e0c2ebd05a4ee1854feb9960cf7868b80ad5b9 100644 (file)
@@ -1,10 +1,12 @@
 import setDefaultOptions from "date-fns/setDefaultOptions";
 import { I18NextService } from "../../services";
 
+const EN_US = "en-US";
+
 export default async function () {
   let lang = I18NextService.i18n.language;
   if (lang === "en") {
-    lang = "en-US";
+    lang = EN_US;
   }
 
   // if lang and country are the same, then date-fns expects only the lang
@@ -17,12 +19,26 @@ export default async function () {
     }
   }
 
-  const locale = (
-    await import(
-      /* webpackExclude: /\.js\.flow$/ */
-      `date-fns/locale/${lang}`
-    )
-  ).default;
+  let locale;
+
+  try {
+    locale = (
+      await import(
+        /* webpackExclude: /\.js\.flow$/ */
+        `date-fns/locale/${lang}`
+      )
+    ).default;
+  } catch (e) {
+    console.log(
+      `Could not load locale ${lang} from date-fns, falling back to ${EN_US}`
+    );
+    locale = (
+      await import(
+        /* webpackExclude: /\.js\.flow$/ */
+        `date-fns/locale/${EN_US}`
+      )
+    ).default;
+  }
   setDefaultOptions({
     locale,
   });