@magmamath/frontend-config 1.3.2 → 1.3.3-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,7 +23,6 @@ type WrappedTranslationData = {
23
23
  type FallbackResources = Record<string, () => Promise<WrappedTranslationData>>;
24
24
  type TranslationManagerOptions = {
25
25
  isDev: boolean;
26
- projectId: string;
27
26
  i18nOptions: InitOptions;
28
27
  storage?: StorageConfig;
29
28
  fallbackResources?: FallbackResources;
@@ -31,7 +30,6 @@ type TranslationManagerOptions = {
31
30
  type OnTranslationInitCallback = (locale: Locale) => void;
32
31
 
33
32
  declare class TranslationManager {
34
- private readonly projectId;
35
33
  private readonly isDev;
36
34
  private readonly i18nOptions;
37
35
  private readonly onInitCallbacks;
@@ -39,7 +37,7 @@ declare class TranslationManager {
39
37
  private readonly storage?;
40
38
  private tolgeeCfg;
41
39
  private initPromise;
42
- constructor({ projectId, isDev, i18nOptions, storage, fallbackResources }: TranslationManagerOptions);
40
+ constructor({ isDev, i18nOptions, storage, fallbackResources }: TranslationManagerOptions);
43
41
  private unwrapModuleDefaults;
44
42
  readonly onInit: (callback: OnTranslationInitCallback) => void;
45
43
  readonly init: (locale: Locale, envConfig: TolgeeConfig) => Promise<void>;
@@ -23,7 +23,6 @@ type WrappedTranslationData = {
23
23
  type FallbackResources = Record<string, () => Promise<WrappedTranslationData>>;
24
24
  type TranslationManagerOptions = {
25
25
  isDev: boolean;
26
- projectId: string;
27
26
  i18nOptions: InitOptions;
28
27
  storage?: StorageConfig;
29
28
  fallbackResources?: FallbackResources;
@@ -31,7 +30,6 @@ type TranslationManagerOptions = {
31
30
  type OnTranslationInitCallback = (locale: Locale) => void;
32
31
 
33
32
  declare class TranslationManager {
34
- private readonly projectId;
35
33
  private readonly isDev;
36
34
  private readonly i18nOptions;
37
35
  private readonly onInitCallbacks;
@@ -39,7 +37,7 @@ declare class TranslationManager {
39
37
  private readonly storage?;
40
38
  private tolgeeCfg;
41
39
  private initPromise;
42
- constructor({ projectId, isDev, i18nOptions, storage, fallbackResources }: TranslationManagerOptions);
40
+ constructor({ isDev, i18nOptions, storage, fallbackResources }: TranslationManagerOptions);
43
41
  private unwrapModuleDefaults;
44
42
  readonly onInit: (callback: OnTranslationInitCallback) => void;
45
43
  readonly init: (locale: Locale, envConfig: TolgeeConfig) => Promise<void>;
@@ -9,6 +9,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
  var i18n__default = /*#__PURE__*/_interopDefault(i18n);
10
10
 
11
11
  // src/translation/TranslationManager.ts
12
+ var CDN_ID = "39317fd3c6ff2ad02619ba673baae8b6";
12
13
  var TOLGEE_DEV_TIMEOUT_MS = 3e3;
13
14
  var DEFAULT_I18N_OPTIONS = {
14
15
  fallbackLng: void 0,
@@ -21,7 +22,6 @@ var DEFAULT_I18N_OPTIONS = {
21
22
  }
22
23
  };
23
24
  var TranslationManager = class {
24
- projectId;
25
25
  isDev;
26
26
  i18nOptions;
27
27
  onInitCallbacks = [];
@@ -29,8 +29,7 @@ var TranslationManager = class {
29
29
  storage;
30
30
  tolgeeCfg = null;
31
31
  initPromise = null;
32
- constructor({ projectId, isDev, i18nOptions, storage, fallbackResources }) {
33
- this.projectId = projectId;
32
+ constructor({ isDev, i18nOptions, storage, fallbackResources }) {
34
33
  this.isDev = isDev;
35
34
  this.i18nOptions = i18nOptions;
36
35
  this.storage = storage;
@@ -78,7 +77,7 @@ var TranslationManager = class {
78
77
  createBaseTolgeeInstance = (tolgeeCfg) => {
79
78
  return i18next.Tolgee().use(i18next.I18nextPlugin()).use(
80
79
  i18next.BackendFetch({
81
- prefix: `${tolgeeCfg.cdnHost}/${this.projectId}`,
80
+ prefix: `${tolgeeCfg.cdnHost}/${CDN_ID}`,
82
81
  fallbackOnFail: true
83
82
  })
84
83
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/translation/TranslationManager.ts","../../src/translation/translation.constants.ts"],"names":["i18n","withTolgee","initReactI18next","Tolgee","I18nextPlugin","BackendFetch","TranslationNamespace"],"mappings":"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","file":"index.js","sourcesContent":["import i18n, { InitOptions } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport type { TolgeeInstance, TolgeeStaticData } from '@tolgee/i18next'\nimport { BackendFetch, I18nextPlugin, Tolgee, withTolgee } from '@tolgee/i18next'\nimport { Locale } from '../shared/constants/common.constants'\nimport {\n FallbackResources,\n OnTranslationInitCallback,\n StorageConfig,\n TolgeeConfig,\n TranslationManagerOptions,\n} from './translation.types'\n\nconst TOLGEE_DEV_TIMEOUT_MS = 3000\n\nconst DEFAULT_I18N_OPTIONS: InitOptions = {\n fallbackLng: undefined,\n load: 'currentOnly',\n react: {\n useSuspense: false,\n },\n interpolation: {\n escapeValue: false,\n },\n}\n\nexport class TranslationManager {\n private readonly projectId: string\n private readonly isDev: boolean\n private readonly i18nOptions: InitOptions\n private readonly onInitCallbacks: OnTranslationInitCallback[] = []\n private readonly fallbackResources?: TolgeeStaticData\n private readonly storage?: StorageConfig\n\n private tolgeeCfg: TolgeeConfig | null = null\n private initPromise: Promise<void> | null = null\n\n constructor({ projectId, isDev, i18nOptions, storage, fallbackResources }: TranslationManagerOptions) {\n this.projectId = projectId\n this.isDev = isDev\n this.i18nOptions = i18nOptions\n this.storage = storage\n this.fallbackResources = this.unwrapModuleDefaults(fallbackResources)\n }\n\n private unwrapModuleDefaults(resources?: FallbackResources) {\n if (!resources) return undefined\n return Object.fromEntries(\n Object.entries(resources).map(([key, load]) => [key, () => load().then((m) => m.default)])\n )\n }\n\n public readonly onInit = (callback: OnTranslationInitCallback) => {\n this.onInitCallbacks.push(callback)\n }\n\n public readonly init = async (locale: Locale, envConfig: TolgeeConfig) => {\n this.tolgeeCfg = envConfig\n\n if (!this.initPromise) {\n this.initPromise = this.initI18n(locale).catch((error) => {\n this.initPromise = null\n throw error\n })\n }\n await this.initPromise\n }\n\n public readonly setLanguage = async (locale: Locale) => {\n if (!i18n.isInitialized) return\n\n if (this.storage) {\n this.storage.adapter.setItem(this.storage.key, locale)\n }\n\n if (i18n.language !== locale) {\n await i18n.changeLanguage(locale)\n }\n }\n\n private readonly initI18n = async (locale: Locale) => {\n if (!this.tolgeeCfg) return\n\n const canUseTolgeeDevTools = this.isDev && this.tolgeeCfg.apiKey && this.tolgeeCfg.apiUrl\n\n const tolgee = canUseTolgeeDevTools\n ? await this.initTolgeeDevTools(this.tolgeeCfg)\n : this.createBaseTolgeeInstance(this.tolgeeCfg).init({ staticData: this.fallbackResources })\n\n await withTolgee(i18n, tolgee)\n .use(initReactI18next)\n .init({\n ...DEFAULT_I18N_OPTIONS,\n ...this.i18nOptions,\n lng: locale,\n })\n\n this.onInitCallbacks.forEach((callback) => callback(locale))\n }\n\n private readonly createBaseTolgeeInstance = (tolgeeCfg: TolgeeConfig) => {\n return Tolgee()\n .use(I18nextPlugin())\n .use(\n BackendFetch({\n prefix: `${tolgeeCfg.cdnHost}/${this.projectId}`,\n fallbackOnFail: true,\n })\n )\n }\n\n private readonly initTolgeeDevTools = async (tolgeeCfg: TolgeeConfig): Promise<TolgeeInstance> => {\n const { DevBackend } = await import('@tolgee/i18next')\n\n const instance = this.createBaseTolgeeInstance(tolgeeCfg).use(DevBackend())\n\n return instance.init({\n apiUrl: tolgeeCfg.apiUrl,\n apiKey: tolgeeCfg.apiKey,\n staticData: this.fallbackResources,\n fetch: async (input, init) => {\n // fix for react-native\n const url = typeof input === 'string' ? input.replace(/\\/\\?/, '?') : input\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), TOLGEE_DEV_TIMEOUT_MS)\n try {\n return await fetch(url, { ...init, signal: controller.signal })\n } finally {\n clearTimeout(timeoutId)\n }\n },\n })\n }\n}\n","export enum TranslationNamespace {\n STUDENTS_WEB = 'students-web',\n TEACHERS_WEB = 'teachers-web',\n DISTRICT_DASH = 'district-dash',\n AUTH_WEB = 'auth-web',\n MOBILE = 'mobile',\n MAGMAMATH_FEATURES = 'magmamath-features',\n DRAW_BOARD = 'drawboard',\n STUDENTS_FEATURES = 'students-features',\n SHARED = 'shared',\n}\n"]}
1
+ {"version":3,"sources":["../../src/translation/TranslationManager.ts","../../src/translation/translation.constants.ts"],"names":["i18n","withTolgee","initReactI18next","Tolgee","I18nextPlugin","BackendFetch","TranslationNamespace"],"mappings":"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","file":"index.js","sourcesContent":["import i18n, { InitOptions } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport type { TolgeeInstance, TolgeeStaticData } from '@tolgee/i18next'\nimport { BackendFetch, I18nextPlugin, Tolgee, withTolgee } from '@tolgee/i18next'\nimport { Locale } from '../shared/constants/common.constants'\nimport {\n FallbackResources,\n OnTranslationInitCallback,\n StorageConfig,\n TolgeeConfig,\n TranslationManagerOptions,\n} from './translation.types'\n\nconst CDN_ID = '39317fd3c6ff2ad02619ba673baae8b6'\nconst TOLGEE_DEV_TIMEOUT_MS = 3000\n\nconst DEFAULT_I18N_OPTIONS: InitOptions = {\n fallbackLng: undefined,\n load: 'currentOnly',\n react: {\n useSuspense: false,\n },\n interpolation: {\n escapeValue: false,\n },\n}\n\nexport class TranslationManager {\n private readonly isDev: boolean\n private readonly i18nOptions: InitOptions\n private readonly onInitCallbacks: OnTranslationInitCallback[] = []\n private readonly fallbackResources?: TolgeeStaticData\n private readonly storage?: StorageConfig\n\n private tolgeeCfg: TolgeeConfig | null = null\n private initPromise: Promise<void> | null = null\n\n constructor({ isDev, i18nOptions, storage, fallbackResources }: TranslationManagerOptions) {\n this.isDev = isDev\n this.i18nOptions = i18nOptions\n this.storage = storage\n this.fallbackResources = this.unwrapModuleDefaults(fallbackResources)\n }\n\n private unwrapModuleDefaults(resources?: FallbackResources) {\n if (!resources) return undefined\n return Object.fromEntries(\n Object.entries(resources).map(([key, load]) => [key, () => load().then((m) => m.default)])\n )\n }\n\n public readonly onInit = (callback: OnTranslationInitCallback) => {\n this.onInitCallbacks.push(callback)\n }\n\n public readonly init = async (locale: Locale, envConfig: TolgeeConfig) => {\n this.tolgeeCfg = envConfig\n\n if (!this.initPromise) {\n this.initPromise = this.initI18n(locale).catch((error) => {\n this.initPromise = null\n throw error\n })\n }\n await this.initPromise\n }\n\n public readonly setLanguage = async (locale: Locale) => {\n if (!i18n.isInitialized) return\n\n if (this.storage) {\n this.storage.adapter.setItem(this.storage.key, locale)\n }\n\n if (i18n.language !== locale) {\n await i18n.changeLanguage(locale)\n }\n }\n\n private readonly initI18n = async (locale: Locale) => {\n if (!this.tolgeeCfg) return\n\n const canUseTolgeeDevTools = this.isDev && this.tolgeeCfg.apiKey && this.tolgeeCfg.apiUrl\n\n const tolgee = canUseTolgeeDevTools\n ? await this.initTolgeeDevTools(this.tolgeeCfg)\n : this.createBaseTolgeeInstance(this.tolgeeCfg).init({ staticData: this.fallbackResources })\n\n await withTolgee(i18n, tolgee)\n .use(initReactI18next)\n .init({\n ...DEFAULT_I18N_OPTIONS,\n ...this.i18nOptions,\n lng: locale,\n })\n\n this.onInitCallbacks.forEach((callback) => callback(locale))\n }\n\n private readonly createBaseTolgeeInstance = (tolgeeCfg: TolgeeConfig) => {\n return Tolgee()\n .use(I18nextPlugin())\n .use(\n BackendFetch({\n prefix: `${tolgeeCfg.cdnHost}/${CDN_ID}`,\n fallbackOnFail: true,\n })\n )\n }\n\n private readonly initTolgeeDevTools = async (tolgeeCfg: TolgeeConfig): Promise<TolgeeInstance> => {\n const { DevBackend } = await import('@tolgee/i18next')\n\n const instance = this.createBaseTolgeeInstance(tolgeeCfg).use(DevBackend())\n\n return instance.init({\n apiUrl: tolgeeCfg.apiUrl,\n apiKey: tolgeeCfg.apiKey,\n staticData: this.fallbackResources,\n fetch: async (input, init) => {\n // fix for react-native\n const url = typeof input === 'string' ? input.replace(/\\/\\?/, '?') : input\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), TOLGEE_DEV_TIMEOUT_MS)\n try {\n return await fetch(url, { ...init, signal: controller.signal })\n } finally {\n clearTimeout(timeoutId)\n }\n },\n })\n }\n}\n","export enum TranslationNamespace {\n STUDENTS_WEB = 'students-web',\n TEACHERS_WEB = 'teachers-web',\n DISTRICT_DASH = 'district-dash',\n AUTH_WEB = 'auth-web',\n MOBILE = 'mobile',\n MAGMAMATH_FEATURES = 'magmamath-features',\n DRAW_BOARD = 'drawboard',\n STUDENTS_FEATURES = 'students-features',\n SHARED = 'shared',\n}\n"]}
@@ -3,6 +3,7 @@ import { initReactI18next } from 'react-i18next';
3
3
  import { withTolgee, Tolgee, I18nextPlugin, BackendFetch } from '@tolgee/i18next';
4
4
 
5
5
  // src/translation/TranslationManager.ts
6
+ var CDN_ID = "39317fd3c6ff2ad02619ba673baae8b6";
6
7
  var TOLGEE_DEV_TIMEOUT_MS = 3e3;
7
8
  var DEFAULT_I18N_OPTIONS = {
8
9
  fallbackLng: void 0,
@@ -15,7 +16,6 @@ var DEFAULT_I18N_OPTIONS = {
15
16
  }
16
17
  };
17
18
  var TranslationManager = class {
18
- projectId;
19
19
  isDev;
20
20
  i18nOptions;
21
21
  onInitCallbacks = [];
@@ -23,8 +23,7 @@ var TranslationManager = class {
23
23
  storage;
24
24
  tolgeeCfg = null;
25
25
  initPromise = null;
26
- constructor({ projectId, isDev, i18nOptions, storage, fallbackResources }) {
27
- this.projectId = projectId;
26
+ constructor({ isDev, i18nOptions, storage, fallbackResources }) {
28
27
  this.isDev = isDev;
29
28
  this.i18nOptions = i18nOptions;
30
29
  this.storage = storage;
@@ -72,7 +71,7 @@ var TranslationManager = class {
72
71
  createBaseTolgeeInstance = (tolgeeCfg) => {
73
72
  return Tolgee().use(I18nextPlugin()).use(
74
73
  BackendFetch({
75
- prefix: `${tolgeeCfg.cdnHost}/${this.projectId}`,
74
+ prefix: `${tolgeeCfg.cdnHost}/${CDN_ID}`,
76
75
  fallbackOnFail: true
77
76
  })
78
77
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/translation/TranslationManager.ts","../../src/translation/translation.constants.ts"],"names":["TranslationNamespace"],"mappings":"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","file":"index.mjs","sourcesContent":["import i18n, { InitOptions } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport type { TolgeeInstance, TolgeeStaticData } from '@tolgee/i18next'\nimport { BackendFetch, I18nextPlugin, Tolgee, withTolgee } from '@tolgee/i18next'\nimport { Locale } from '../shared/constants/common.constants'\nimport {\n FallbackResources,\n OnTranslationInitCallback,\n StorageConfig,\n TolgeeConfig,\n TranslationManagerOptions,\n} from './translation.types'\n\nconst TOLGEE_DEV_TIMEOUT_MS = 3000\n\nconst DEFAULT_I18N_OPTIONS: InitOptions = {\n fallbackLng: undefined,\n load: 'currentOnly',\n react: {\n useSuspense: false,\n },\n interpolation: {\n escapeValue: false,\n },\n}\n\nexport class TranslationManager {\n private readonly projectId: string\n private readonly isDev: boolean\n private readonly i18nOptions: InitOptions\n private readonly onInitCallbacks: OnTranslationInitCallback[] = []\n private readonly fallbackResources?: TolgeeStaticData\n private readonly storage?: StorageConfig\n\n private tolgeeCfg: TolgeeConfig | null = null\n private initPromise: Promise<void> | null = null\n\n constructor({ projectId, isDev, i18nOptions, storage, fallbackResources }: TranslationManagerOptions) {\n this.projectId = projectId\n this.isDev = isDev\n this.i18nOptions = i18nOptions\n this.storage = storage\n this.fallbackResources = this.unwrapModuleDefaults(fallbackResources)\n }\n\n private unwrapModuleDefaults(resources?: FallbackResources) {\n if (!resources) return undefined\n return Object.fromEntries(\n Object.entries(resources).map(([key, load]) => [key, () => load().then((m) => m.default)])\n )\n }\n\n public readonly onInit = (callback: OnTranslationInitCallback) => {\n this.onInitCallbacks.push(callback)\n }\n\n public readonly init = async (locale: Locale, envConfig: TolgeeConfig) => {\n this.tolgeeCfg = envConfig\n\n if (!this.initPromise) {\n this.initPromise = this.initI18n(locale).catch((error) => {\n this.initPromise = null\n throw error\n })\n }\n await this.initPromise\n }\n\n public readonly setLanguage = async (locale: Locale) => {\n if (!i18n.isInitialized) return\n\n if (this.storage) {\n this.storage.adapter.setItem(this.storage.key, locale)\n }\n\n if (i18n.language !== locale) {\n await i18n.changeLanguage(locale)\n }\n }\n\n private readonly initI18n = async (locale: Locale) => {\n if (!this.tolgeeCfg) return\n\n const canUseTolgeeDevTools = this.isDev && this.tolgeeCfg.apiKey && this.tolgeeCfg.apiUrl\n\n const tolgee = canUseTolgeeDevTools\n ? await this.initTolgeeDevTools(this.tolgeeCfg)\n : this.createBaseTolgeeInstance(this.tolgeeCfg).init({ staticData: this.fallbackResources })\n\n await withTolgee(i18n, tolgee)\n .use(initReactI18next)\n .init({\n ...DEFAULT_I18N_OPTIONS,\n ...this.i18nOptions,\n lng: locale,\n })\n\n this.onInitCallbacks.forEach((callback) => callback(locale))\n }\n\n private readonly createBaseTolgeeInstance = (tolgeeCfg: TolgeeConfig) => {\n return Tolgee()\n .use(I18nextPlugin())\n .use(\n BackendFetch({\n prefix: `${tolgeeCfg.cdnHost}/${this.projectId}`,\n fallbackOnFail: true,\n })\n )\n }\n\n private readonly initTolgeeDevTools = async (tolgeeCfg: TolgeeConfig): Promise<TolgeeInstance> => {\n const { DevBackend } = await import('@tolgee/i18next')\n\n const instance = this.createBaseTolgeeInstance(tolgeeCfg).use(DevBackend())\n\n return instance.init({\n apiUrl: tolgeeCfg.apiUrl,\n apiKey: tolgeeCfg.apiKey,\n staticData: this.fallbackResources,\n fetch: async (input, init) => {\n // fix for react-native\n const url = typeof input === 'string' ? input.replace(/\\/\\?/, '?') : input\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), TOLGEE_DEV_TIMEOUT_MS)\n try {\n return await fetch(url, { ...init, signal: controller.signal })\n } finally {\n clearTimeout(timeoutId)\n }\n },\n })\n }\n}\n","export enum TranslationNamespace {\n STUDENTS_WEB = 'students-web',\n TEACHERS_WEB = 'teachers-web',\n DISTRICT_DASH = 'district-dash',\n AUTH_WEB = 'auth-web',\n MOBILE = 'mobile',\n MAGMAMATH_FEATURES = 'magmamath-features',\n DRAW_BOARD = 'drawboard',\n STUDENTS_FEATURES = 'students-features',\n SHARED = 'shared',\n}\n"]}
1
+ {"version":3,"sources":["../../src/translation/TranslationManager.ts","../../src/translation/translation.constants.ts"],"names":["TranslationNamespace"],"mappings":"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","file":"index.mjs","sourcesContent":["import i18n, { InitOptions } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport type { TolgeeInstance, TolgeeStaticData } from '@tolgee/i18next'\nimport { BackendFetch, I18nextPlugin, Tolgee, withTolgee } from '@tolgee/i18next'\nimport { Locale } from '../shared/constants/common.constants'\nimport {\n FallbackResources,\n OnTranslationInitCallback,\n StorageConfig,\n TolgeeConfig,\n TranslationManagerOptions,\n} from './translation.types'\n\nconst CDN_ID = '39317fd3c6ff2ad02619ba673baae8b6'\nconst TOLGEE_DEV_TIMEOUT_MS = 3000\n\nconst DEFAULT_I18N_OPTIONS: InitOptions = {\n fallbackLng: undefined,\n load: 'currentOnly',\n react: {\n useSuspense: false,\n },\n interpolation: {\n escapeValue: false,\n },\n}\n\nexport class TranslationManager {\n private readonly isDev: boolean\n private readonly i18nOptions: InitOptions\n private readonly onInitCallbacks: OnTranslationInitCallback[] = []\n private readonly fallbackResources?: TolgeeStaticData\n private readonly storage?: StorageConfig\n\n private tolgeeCfg: TolgeeConfig | null = null\n private initPromise: Promise<void> | null = null\n\n constructor({ isDev, i18nOptions, storage, fallbackResources }: TranslationManagerOptions) {\n this.isDev = isDev\n this.i18nOptions = i18nOptions\n this.storage = storage\n this.fallbackResources = this.unwrapModuleDefaults(fallbackResources)\n }\n\n private unwrapModuleDefaults(resources?: FallbackResources) {\n if (!resources) return undefined\n return Object.fromEntries(\n Object.entries(resources).map(([key, load]) => [key, () => load().then((m) => m.default)])\n )\n }\n\n public readonly onInit = (callback: OnTranslationInitCallback) => {\n this.onInitCallbacks.push(callback)\n }\n\n public readonly init = async (locale: Locale, envConfig: TolgeeConfig) => {\n this.tolgeeCfg = envConfig\n\n if (!this.initPromise) {\n this.initPromise = this.initI18n(locale).catch((error) => {\n this.initPromise = null\n throw error\n })\n }\n await this.initPromise\n }\n\n public readonly setLanguage = async (locale: Locale) => {\n if (!i18n.isInitialized) return\n\n if (this.storage) {\n this.storage.adapter.setItem(this.storage.key, locale)\n }\n\n if (i18n.language !== locale) {\n await i18n.changeLanguage(locale)\n }\n }\n\n private readonly initI18n = async (locale: Locale) => {\n if (!this.tolgeeCfg) return\n\n const canUseTolgeeDevTools = this.isDev && this.tolgeeCfg.apiKey && this.tolgeeCfg.apiUrl\n\n const tolgee = canUseTolgeeDevTools\n ? await this.initTolgeeDevTools(this.tolgeeCfg)\n : this.createBaseTolgeeInstance(this.tolgeeCfg).init({ staticData: this.fallbackResources })\n\n await withTolgee(i18n, tolgee)\n .use(initReactI18next)\n .init({\n ...DEFAULT_I18N_OPTIONS,\n ...this.i18nOptions,\n lng: locale,\n })\n\n this.onInitCallbacks.forEach((callback) => callback(locale))\n }\n\n private readonly createBaseTolgeeInstance = (tolgeeCfg: TolgeeConfig) => {\n return Tolgee()\n .use(I18nextPlugin())\n .use(\n BackendFetch({\n prefix: `${tolgeeCfg.cdnHost}/${CDN_ID}`,\n fallbackOnFail: true,\n })\n )\n }\n\n private readonly initTolgeeDevTools = async (tolgeeCfg: TolgeeConfig): Promise<TolgeeInstance> => {\n const { DevBackend } = await import('@tolgee/i18next')\n\n const instance = this.createBaseTolgeeInstance(tolgeeCfg).use(DevBackend())\n\n return instance.init({\n apiUrl: tolgeeCfg.apiUrl,\n apiKey: tolgeeCfg.apiKey,\n staticData: this.fallbackResources,\n fetch: async (input, init) => {\n // fix for react-native\n const url = typeof input === 'string' ? input.replace(/\\/\\?/, '?') : input\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), TOLGEE_DEV_TIMEOUT_MS)\n try {\n return await fetch(url, { ...init, signal: controller.signal })\n } finally {\n clearTimeout(timeoutId)\n }\n },\n })\n }\n}\n","export enum TranslationNamespace {\n STUDENTS_WEB = 'students-web',\n TEACHERS_WEB = 'teachers-web',\n DISTRICT_DASH = 'district-dash',\n AUTH_WEB = 'auth-web',\n MOBILE = 'mobile',\n MAGMAMATH_FEATURES = 'magmamath-features',\n DRAW_BOARD = 'drawboard',\n STUDENTS_FEATURES = 'students-features',\n SHARED = 'shared',\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/frontend-config",
3
- "version": "1.3.2",
3
+ "version": "1.3.3-rc.1",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",