@magmamath/frontend-config 1.1.2-rc.17 → 1.1.2-rc.18

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.
@@ -94,20 +94,31 @@ var TranslationManager = class {
94
94
  return this.createBaseTolgeeInstance().init();
95
95
  };
96
96
  initTolgeeDevTools = async () => {
97
+ console.log("pre backend");
97
98
  const { DevBackend } = await import('@tolgee/i18next');
99
+ console.log("post");
98
100
  const config = this.tolgee;
99
101
  const instance = this.createBaseTolgeeInstance().use(DevBackend());
100
102
  if (!config.isMobile) {
103
+ console.log("context tools");
101
104
  const { InContextTools } = await import('@tolgee/web/tools');
102
105
  instance.use(InContextTools());
103
106
  }
107
+ console.log("init istance");
104
108
  return instance.init({
105
109
  apiUrl: config.apiUrl,
106
110
  apiKey: config.apiKey,
107
111
  fetch: (input, init) => {
112
+ console.log("fetch", input, init);
108
113
  const controller = new AbortController();
109
114
  setTimeout(() => controller.abort(), TOLGEE_DEV_TIMEOUT_MS);
110
- return fetch(input, { ...init, signal: controller.signal });
115
+ return fetch(input, { ...init, signal: controller.signal }).then((res) => {
116
+ console.log("res", res);
117
+ return res;
118
+ }).catch((err) => {
119
+ console.log("err", err);
120
+ throw err;
121
+ });
111
122
  }
112
123
  });
113
124
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/translation/translation.constants.ts","../../src/translation/TranslationManager.ts"],"names":["TranslationNamespace","i18n","withTolgee","initReactI18next","Tolgee","I18nextPlugin","BackendFetch"],"mappings":"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","file":"index.js","sourcesContent":["import { InitOptions } from 'i18next'\n\nexport 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\nexport const TOLGEE_DEV_TIMEOUT_MS = 3000\n\nexport const DEFAULT_I18N_OPTIONS: InitOptions = {\n fallbackLng: undefined,\n load: 'currentOnly',\n react: {\n useSuspense: false,\n },\n interpolation: {\n escapeValue: false,\n },\n}\n","import i18n, { InitOptions } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport type { TolgeeInstance } from '@tolgee/i18next'\nimport { BackendFetch, I18nextPlugin, Tolgee, withTolgee } from '@tolgee/i18next'\nimport { Locale } from '../shared/constants/common.constants'\nimport { TolgeeBaseConfig, TolgeeConfig, TolgeeEnvConfig, TranslationManagerOptions } from './translation.types'\nimport { DEFAULT_I18N_OPTIONS, TOLGEE_DEV_TIMEOUT_MS } from './translation.constants'\n\nexport type OnInitCallback = (locale: Locale) => void\n\nexport class TranslationManager {\n private readonly tolgeeBase: TolgeeBaseConfig\n private tolgee: TolgeeConfig | null = null\n private readonly i18nOptions: InitOptions\n private readonly localStorageKey?: string\n private readonly onInitCallbacks: OnInitCallback[] = []\n private initPromise: Promise<void> | null = null\n\n constructor({ tolgee, i18nOptions = {}, localStorageKey }: TranslationManagerOptions) {\n this.tolgeeBase = tolgee\n this.i18nOptions = i18nOptions\n this.localStorageKey = localStorageKey\n }\n\n public readonly onInit = (callback: OnInitCallback) => {\n this.onInitCallbacks.push(callback)\n }\n\n public readonly init = async (locale: Locale, envConfig: TolgeeEnvConfig) => {\n this.tolgee = { ...this.tolgeeBase, ...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 this.persistLocale(locale)\n\n if (i18n.language !== locale) {\n await i18n.changeLanguage(locale)\n }\n }\n\n private readonly persistLocale = (locale: Locale) => {\n if (!this.localStorageKey || typeof localStorage === 'undefined') return\n localStorage.setItem(this.localStorageKey, locale)\n }\n\n private readonly initI18n = async (locale: Locale) => {\n const config = this.tolgee!\n const tolgee = config.isDev ? await this.initTolgeeDevTools() : this.initTolgeeCDN()\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 = () => {\n const config = this.tolgee!\n return Tolgee()\n .use(I18nextPlugin())\n .use(\n BackendFetch({\n prefix: `${config.cdnHost}/${config.projectId}`,\n })\n )\n }\n\n private readonly initTolgeeCDN = () => {\n return this.createBaseTolgeeInstance().init()\n }\n\n private readonly initTolgeeDevTools = async (): Promise<TolgeeInstance> => {\n const { DevBackend } = await import('@tolgee/i18next')\n\n const config = this.tolgee!\n const instance = this.createBaseTolgeeInstance().use(DevBackend())\n\n if (!config.isMobile) {\n const { InContextTools } = await import('@tolgee/web/tools')\n instance.use(InContextTools())\n }\n\n return instance.init({\n apiUrl: config.apiUrl,\n apiKey: config.apiKey,\n fetch: (input, init) => {\n const controller = new AbortController()\n setTimeout(() => controller.abort(), TOLGEE_DEV_TIMEOUT_MS)\n return fetch(input, { ...init, signal: controller.signal })\n },\n })\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/translation/translation.constants.ts","../../src/translation/TranslationManager.ts"],"names":["TranslationNamespace","i18n","withTolgee","initReactI18next","Tolgee","I18nextPlugin","BackendFetch"],"mappings":"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","file":"index.js","sourcesContent":["import { InitOptions } from 'i18next'\n\nexport 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\nexport const TOLGEE_DEV_TIMEOUT_MS = 3000\n\nexport const DEFAULT_I18N_OPTIONS: InitOptions = {\n fallbackLng: undefined,\n load: 'currentOnly',\n react: {\n useSuspense: false,\n },\n interpolation: {\n escapeValue: false,\n },\n}\n","import i18n, { InitOptions } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport type { TolgeeInstance } from '@tolgee/i18next'\nimport { BackendFetch, I18nextPlugin, Tolgee, withTolgee } from '@tolgee/i18next'\nimport { Locale } from '../shared/constants/common.constants'\nimport { TolgeeBaseConfig, TolgeeConfig, TolgeeEnvConfig, TranslationManagerOptions } from './translation.types'\nimport { DEFAULT_I18N_OPTIONS, TOLGEE_DEV_TIMEOUT_MS } from './translation.constants'\n\nexport type OnInitCallback = (locale: Locale) => void\n\nexport class TranslationManager {\n private readonly tolgeeBase: TolgeeBaseConfig\n private tolgee: TolgeeConfig | null = null\n private readonly i18nOptions: InitOptions\n private readonly localStorageKey?: string\n private readonly onInitCallbacks: OnInitCallback[] = []\n private initPromise: Promise<void> | null = null\n\n constructor({ tolgee, i18nOptions = {}, localStorageKey }: TranslationManagerOptions) {\n this.tolgeeBase = tolgee\n this.i18nOptions = i18nOptions\n this.localStorageKey = localStorageKey\n }\n\n public readonly onInit = (callback: OnInitCallback) => {\n this.onInitCallbacks.push(callback)\n }\n\n public readonly init = async (locale: Locale, envConfig: TolgeeEnvConfig) => {\n this.tolgee = { ...this.tolgeeBase, ...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 this.persistLocale(locale)\n\n if (i18n.language !== locale) {\n await i18n.changeLanguage(locale)\n }\n }\n\n private readonly persistLocale = (locale: Locale) => {\n if (!this.localStorageKey || typeof localStorage === 'undefined') return\n localStorage.setItem(this.localStorageKey, locale)\n }\n\n private readonly initI18n = async (locale: Locale) => {\n const config = this.tolgee!\n const tolgee = config.isDev ? await this.initTolgeeDevTools() : this.initTolgeeCDN()\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 = () => {\n const config = this.tolgee!\n return Tolgee()\n .use(I18nextPlugin())\n .use(\n BackendFetch({\n prefix: `${config.cdnHost}/${config.projectId}`,\n })\n )\n }\n\n private readonly initTolgeeCDN = () => {\n return this.createBaseTolgeeInstance().init()\n }\n\n private readonly initTolgeeDevTools = async (): Promise<TolgeeInstance> => {\n console.log('pre backend')\n const { DevBackend } = await import('@tolgee/i18next')\n console.log('post')\n\n const config = this.tolgee!\n const instance = this.createBaseTolgeeInstance().use(DevBackend())\n\n if (!config.isMobile) {\n console.log('context tools')\n const { InContextTools } = await import('@tolgee/web/tools')\n instance.use(InContextTools())\n }\n\n console.log('init istance')\n return instance.init({\n apiUrl: config.apiUrl,\n apiKey: config.apiKey,\n fetch: (input, init) => {\n console.log('fetch', input, init)\n const controller = new AbortController()\n setTimeout(() => controller.abort(), TOLGEE_DEV_TIMEOUT_MS)\n return fetch(input, { ...init, signal: controller.signal })\n .then((res) => {\n console.log('res', res)\n return res\n })\n .catch((err) => {\n console.log('err', err)\n throw err\n })\n },\n })\n }\n}\n"]}
@@ -88,20 +88,31 @@ var TranslationManager = class {
88
88
  return this.createBaseTolgeeInstance().init();
89
89
  };
90
90
  initTolgeeDevTools = async () => {
91
+ console.log("pre backend");
91
92
  const { DevBackend } = await import('@tolgee/i18next');
93
+ console.log("post");
92
94
  const config = this.tolgee;
93
95
  const instance = this.createBaseTolgeeInstance().use(DevBackend());
94
96
  if (!config.isMobile) {
97
+ console.log("context tools");
95
98
  const { InContextTools } = await import('@tolgee/web/tools');
96
99
  instance.use(InContextTools());
97
100
  }
101
+ console.log("init istance");
98
102
  return instance.init({
99
103
  apiUrl: config.apiUrl,
100
104
  apiKey: config.apiKey,
101
105
  fetch: (input, init) => {
106
+ console.log("fetch", input, init);
102
107
  const controller = new AbortController();
103
108
  setTimeout(() => controller.abort(), TOLGEE_DEV_TIMEOUT_MS);
104
- return fetch(input, { ...init, signal: controller.signal });
109
+ return fetch(input, { ...init, signal: controller.signal }).then((res) => {
110
+ console.log("res", res);
111
+ return res;
112
+ }).catch((err) => {
113
+ console.log("err", err);
114
+ throw err;
115
+ });
105
116
  }
106
117
  });
107
118
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/translation/translation.constants.ts","../../src/translation/TranslationManager.ts"],"names":["TranslationNamespace"],"mappings":"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","file":"index.mjs","sourcesContent":["import { InitOptions } from 'i18next'\n\nexport 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\nexport const TOLGEE_DEV_TIMEOUT_MS = 3000\n\nexport const DEFAULT_I18N_OPTIONS: InitOptions = {\n fallbackLng: undefined,\n load: 'currentOnly',\n react: {\n useSuspense: false,\n },\n interpolation: {\n escapeValue: false,\n },\n}\n","import i18n, { InitOptions } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport type { TolgeeInstance } from '@tolgee/i18next'\nimport { BackendFetch, I18nextPlugin, Tolgee, withTolgee } from '@tolgee/i18next'\nimport { Locale } from '../shared/constants/common.constants'\nimport { TolgeeBaseConfig, TolgeeConfig, TolgeeEnvConfig, TranslationManagerOptions } from './translation.types'\nimport { DEFAULT_I18N_OPTIONS, TOLGEE_DEV_TIMEOUT_MS } from './translation.constants'\n\nexport type OnInitCallback = (locale: Locale) => void\n\nexport class TranslationManager {\n private readonly tolgeeBase: TolgeeBaseConfig\n private tolgee: TolgeeConfig | null = null\n private readonly i18nOptions: InitOptions\n private readonly localStorageKey?: string\n private readonly onInitCallbacks: OnInitCallback[] = []\n private initPromise: Promise<void> | null = null\n\n constructor({ tolgee, i18nOptions = {}, localStorageKey }: TranslationManagerOptions) {\n this.tolgeeBase = tolgee\n this.i18nOptions = i18nOptions\n this.localStorageKey = localStorageKey\n }\n\n public readonly onInit = (callback: OnInitCallback) => {\n this.onInitCallbacks.push(callback)\n }\n\n public readonly init = async (locale: Locale, envConfig: TolgeeEnvConfig) => {\n this.tolgee = { ...this.tolgeeBase, ...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 this.persistLocale(locale)\n\n if (i18n.language !== locale) {\n await i18n.changeLanguage(locale)\n }\n }\n\n private readonly persistLocale = (locale: Locale) => {\n if (!this.localStorageKey || typeof localStorage === 'undefined') return\n localStorage.setItem(this.localStorageKey, locale)\n }\n\n private readonly initI18n = async (locale: Locale) => {\n const config = this.tolgee!\n const tolgee = config.isDev ? await this.initTolgeeDevTools() : this.initTolgeeCDN()\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 = () => {\n const config = this.tolgee!\n return Tolgee()\n .use(I18nextPlugin())\n .use(\n BackendFetch({\n prefix: `${config.cdnHost}/${config.projectId}`,\n })\n )\n }\n\n private readonly initTolgeeCDN = () => {\n return this.createBaseTolgeeInstance().init()\n }\n\n private readonly initTolgeeDevTools = async (): Promise<TolgeeInstance> => {\n const { DevBackend } = await import('@tolgee/i18next')\n\n const config = this.tolgee!\n const instance = this.createBaseTolgeeInstance().use(DevBackend())\n\n if (!config.isMobile) {\n const { InContextTools } = await import('@tolgee/web/tools')\n instance.use(InContextTools())\n }\n\n return instance.init({\n apiUrl: config.apiUrl,\n apiKey: config.apiKey,\n fetch: (input, init) => {\n const controller = new AbortController()\n setTimeout(() => controller.abort(), TOLGEE_DEV_TIMEOUT_MS)\n return fetch(input, { ...init, signal: controller.signal })\n },\n })\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/translation/translation.constants.ts","../../src/translation/TranslationManager.ts"],"names":["TranslationNamespace"],"mappings":"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","file":"index.mjs","sourcesContent":["import { InitOptions } from 'i18next'\n\nexport 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\nexport const TOLGEE_DEV_TIMEOUT_MS = 3000\n\nexport const DEFAULT_I18N_OPTIONS: InitOptions = {\n fallbackLng: undefined,\n load: 'currentOnly',\n react: {\n useSuspense: false,\n },\n interpolation: {\n escapeValue: false,\n },\n}\n","import i18n, { InitOptions } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport type { TolgeeInstance } from '@tolgee/i18next'\nimport { BackendFetch, I18nextPlugin, Tolgee, withTolgee } from '@tolgee/i18next'\nimport { Locale } from '../shared/constants/common.constants'\nimport { TolgeeBaseConfig, TolgeeConfig, TolgeeEnvConfig, TranslationManagerOptions } from './translation.types'\nimport { DEFAULT_I18N_OPTIONS, TOLGEE_DEV_TIMEOUT_MS } from './translation.constants'\n\nexport type OnInitCallback = (locale: Locale) => void\n\nexport class TranslationManager {\n private readonly tolgeeBase: TolgeeBaseConfig\n private tolgee: TolgeeConfig | null = null\n private readonly i18nOptions: InitOptions\n private readonly localStorageKey?: string\n private readonly onInitCallbacks: OnInitCallback[] = []\n private initPromise: Promise<void> | null = null\n\n constructor({ tolgee, i18nOptions = {}, localStorageKey }: TranslationManagerOptions) {\n this.tolgeeBase = tolgee\n this.i18nOptions = i18nOptions\n this.localStorageKey = localStorageKey\n }\n\n public readonly onInit = (callback: OnInitCallback) => {\n this.onInitCallbacks.push(callback)\n }\n\n public readonly init = async (locale: Locale, envConfig: TolgeeEnvConfig) => {\n this.tolgee = { ...this.tolgeeBase, ...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 this.persistLocale(locale)\n\n if (i18n.language !== locale) {\n await i18n.changeLanguage(locale)\n }\n }\n\n private readonly persistLocale = (locale: Locale) => {\n if (!this.localStorageKey || typeof localStorage === 'undefined') return\n localStorage.setItem(this.localStorageKey, locale)\n }\n\n private readonly initI18n = async (locale: Locale) => {\n const config = this.tolgee!\n const tolgee = config.isDev ? await this.initTolgeeDevTools() : this.initTolgeeCDN()\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 = () => {\n const config = this.tolgee!\n return Tolgee()\n .use(I18nextPlugin())\n .use(\n BackendFetch({\n prefix: `${config.cdnHost}/${config.projectId}`,\n })\n )\n }\n\n private readonly initTolgeeCDN = () => {\n return this.createBaseTolgeeInstance().init()\n }\n\n private readonly initTolgeeDevTools = async (): Promise<TolgeeInstance> => {\n console.log('pre backend')\n const { DevBackend } = await import('@tolgee/i18next')\n console.log('post')\n\n const config = this.tolgee!\n const instance = this.createBaseTolgeeInstance().use(DevBackend())\n\n if (!config.isMobile) {\n console.log('context tools')\n const { InContextTools } = await import('@tolgee/web/tools')\n instance.use(InContextTools())\n }\n\n console.log('init istance')\n return instance.init({\n apiUrl: config.apiUrl,\n apiKey: config.apiKey,\n fetch: (input, init) => {\n console.log('fetch', input, init)\n const controller = new AbortController()\n setTimeout(() => controller.abort(), TOLGEE_DEV_TIMEOUT_MS)\n return fetch(input, { ...init, signal: controller.signal })\n .then((res) => {\n console.log('res', res)\n return res\n })\n .catch((err) => {\n console.log('err', err)\n throw err\n })\n },\n })\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/frontend-config",
3
- "version": "1.1.2-rc.17",
3
+ "version": "1.1.2-rc.18",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",