@tolgee/core 4.9.2 → 4.9.3-rc.730f576.0

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.
Files changed (276) hide show
  1. package/dist/tolgee.cjs.js +1127 -7028
  2. package/dist/tolgee.cjs.js.map +1 -1
  3. package/dist/tolgee.cjs.min.js +1 -1
  4. package/dist/tolgee.cjs.min.js.map +1 -1
  5. package/dist/tolgee.esm.min.mjs +1 -1
  6. package/dist/tolgee.esm.min.mjs.map +1 -1
  7. package/dist/tolgee.esm.mjs +1125 -7023
  8. package/dist/tolgee.esm.mjs.map +1 -1
  9. package/dist/tolgee.umd.js +1127 -7028
  10. package/dist/tolgee.umd.js.map +1 -1
  11. package/dist/tolgee.umd.min.js +1 -1
  12. package/dist/tolgee.umd.min.js.map +1 -1
  13. package/lib/Controller/Cache/Cache.d.ts +22 -0
  14. package/lib/Controller/Cache/helpers.d.ts +4 -0
  15. package/lib/Controller/Controller.d.ts +110 -0
  16. package/lib/Controller/Events/EventEmitter.d.ts +6 -0
  17. package/lib/Controller/Events/EventEmitterSelective.d.ts +7 -0
  18. package/lib/Controller/Events/Events.d.ts +14 -0
  19. package/lib/Controller/Plugins/Plugins.d.ts +36 -0
  20. package/lib/Controller/State/State.d.ts +39 -0
  21. package/lib/Controller/State/helpers.d.ts +6 -0
  22. package/lib/Controller/State/initObserverOptions.d.ts +13 -0
  23. package/lib/Controller/State/initState.d.ts +47 -0
  24. package/lib/Controller/ValueObserver.d.ts +5 -0
  25. package/lib/Tolgee.d.ts +2 -68
  26. package/lib/TranslateParams.d.ts +2 -0
  27. package/lib/{Constants/Global.d.ts → constants.d.ts} +1 -2
  28. package/lib/helpers.d.ts +3 -0
  29. package/lib/index.d.ts +3 -8
  30. package/lib/types.d.ts +244 -84
  31. package/package.json +20 -29
  32. package/src/Controller/Cache/Cache.ts +293 -0
  33. package/src/Controller/Cache/helpers.ts +37 -0
  34. package/src/Controller/Controller.ts +310 -0
  35. package/src/Controller/Events/EventEmitter.ts +30 -0
  36. package/src/Controller/Events/EventEmitterSelective.test.ts +125 -0
  37. package/src/Controller/Events/EventEmitterSelective.ts +188 -0
  38. package/src/Controller/Events/Events.ts +66 -0
  39. package/src/Controller/Plugins/Plugins.ts +315 -0
  40. package/src/Controller/State/State.ts +175 -0
  41. package/src/Controller/State/helpers.ts +41 -0
  42. package/src/Controller/State/initObserverOptions.ts +38 -0
  43. package/src/Controller/State/initState.ts +81 -0
  44. package/src/Controller/ValueObserver.ts +26 -0
  45. package/src/Tolgee.ts +79 -330
  46. package/src/TranslateParams.test.ts +41 -0
  47. package/src/TranslateParams.ts +51 -0
  48. package/src/__test/backend.test.ts +48 -0
  49. package/src/__test/cache.test.ts +148 -0
  50. package/src/__test/client.test.ts +48 -0
  51. package/src/__test/events.test.ts +33 -0
  52. package/src/__test/initialization.test.ts +85 -0
  53. package/src/__test/jest-setup.ts +2 -0
  54. package/src/__test/languageDetection.test.ts +129 -0
  55. package/src/__test/languageStorage.test.ts +145 -0
  56. package/src/__test/languages.test.ts +112 -0
  57. package/src/__test/loading.test.ts +39 -0
  58. package/src/__test/namespaces.test.ts +99 -0
  59. package/src/__test/namespacesFallback.test.ts +74 -0
  60. package/src/__test/plugins.test.ts +136 -0
  61. package/src/__test/testTools.ts +7 -0
  62. package/src/{Constants/Global.ts → constants.ts} +1 -3
  63. package/src/helpers.ts +17 -0
  64. package/src/index.ts +9 -8
  65. package/src/types.ts +338 -90
  66. package/README.md +0 -45
  67. package/dist/Constants/Global.d.ts +0 -6
  68. package/dist/Constants/ModifierKey.d.ts +0 -6
  69. package/dist/Errors/ApiHttpError.d.ts +0 -5
  70. package/dist/Observer.d.ts +0 -14
  71. package/dist/Observer.test.d.ts +0 -2
  72. package/dist/Properties.d.ts +0 -17
  73. package/dist/Properties.test.d.ts +0 -1
  74. package/dist/Tolgee.d.ts +0 -68
  75. package/dist/Tolgee.test.d.ts +0 -1
  76. package/dist/TolgeeConfig.d.ts +0 -69
  77. package/dist/TolgeeConfig.test.d.ts +0 -1
  78. package/dist/__integration/FormatterIcu.test.d.ts +0 -1
  79. package/dist/__integration/FormatterMissing.d.ts +0 -1
  80. package/dist/__integration/Tolgee.test.d.ts +0 -1
  81. package/dist/__integration/TolgeeInvisible.test.d.ts +0 -1
  82. package/dist/__integration/mockTranslations.d.ts +0 -7
  83. package/dist/__integration/testConfig.d.ts +0 -9
  84. package/dist/__testFixtures/classMock.d.ts +0 -3
  85. package/dist/__testFixtures/createElement.d.ts +0 -2
  86. package/dist/__testFixtures/createTestDom.d.ts +0 -9
  87. package/dist/__testFixtures/mocked.d.ts +0 -20
  88. package/dist/__testFixtures/setupAfterEnv.d.ts +0 -8
  89. package/dist/helpers/NodeHelper.d.ts +0 -14
  90. package/dist/helpers/TextHelper.d.ts +0 -5
  91. package/dist/helpers/TextHelper.test.d.ts +0 -1
  92. package/dist/helpers/commonTypes.d.ts +0 -2
  93. package/dist/helpers/encoderPolyfill.d.ts +0 -8
  94. package/dist/helpers/secret.d.ts +0 -6
  95. package/dist/helpers/secret.test.d.ts +0 -1
  96. package/dist/helpers/sleep.d.ts +0 -1
  97. package/dist/highlighter/HighlightFunctionsInitializer.d.ts +0 -10
  98. package/dist/highlighter/HighlightFunctionsInitializer.test.d.ts +0 -1
  99. package/dist/highlighter/MouseEventHandler.d.ts +0 -29
  100. package/dist/highlighter/MouseEventHandler.test.d.ts +0 -1
  101. package/dist/highlighter/TranslationHighlighter.d.ts +0 -14
  102. package/dist/highlighter/TranslationHighlighter.test.d.ts +0 -1
  103. package/dist/index.d.ts +0 -10
  104. package/dist/internal.d.ts +0 -2
  105. package/dist/modules/IcuFormatter.d.ts +0 -2
  106. package/dist/modules/IcuFormatter.test.d.ts +0 -1
  107. package/dist/modules/index.d.ts +0 -1
  108. package/dist/services/ApiHttpService.d.ts +0 -15
  109. package/dist/services/CoreService.d.ts +0 -18
  110. package/dist/services/CoreService.test.d.ts +0 -1
  111. package/dist/services/DependencyService.d.ts +0 -39
  112. package/dist/services/DependencyService.test.d.ts +0 -1
  113. package/dist/services/ElementRegistrar.d.ts +0 -19
  114. package/dist/services/ElementRegistrar.test.d.ts +0 -1
  115. package/dist/services/EventEmitter.d.ts +0 -13
  116. package/dist/services/EventService.d.ts +0 -9
  117. package/dist/services/ModuleService.d.ts +0 -5
  118. package/dist/services/ScreenshotService.d.ts +0 -15
  119. package/dist/services/Subscription.d.ts +0 -5
  120. package/dist/services/TextService.d.ts +0 -14
  121. package/dist/services/TextService.test.d.ts +0 -1
  122. package/dist/services/TranslationService.d.ts +0 -75
  123. package/dist/services/TranslationService.test.d.ts +0 -1
  124. package/dist/services/__mocks__/CoreService.d.ts +0 -2
  125. package/dist/toolsManager/Messages.d.ts +0 -8
  126. package/dist/toolsManager/Messages.test.d.ts +0 -1
  127. package/dist/toolsManager/PluginManager.d.ts +0 -21
  128. package/dist/toolsManager/PluginManager.test.d.ts +0 -1
  129. package/dist/types/DTOs.d.ts +0 -20
  130. package/dist/types/apiSchema.generated.d.ts +0 -6185
  131. package/dist/types.d.ts +0 -123
  132. package/dist/wrappers/AbstractWrapper.d.ts +0 -8
  133. package/dist/wrappers/NodeHandler.d.ts +0 -18
  134. package/dist/wrappers/WrappedHandler.d.ts +0 -8
  135. package/dist/wrappers/invisible/AttributeHandler.d.ts +0 -8
  136. package/dist/wrappers/invisible/Coder.d.ts +0 -7
  137. package/dist/wrappers/invisible/ContentHandler.d.ts +0 -6
  138. package/dist/wrappers/invisible/CoreHandler.d.ts +0 -10
  139. package/dist/wrappers/invisible/InvisibleWrapper.d.ts +0 -18
  140. package/dist/wrappers/invisible/ValueMemory.d.ts +0 -5
  141. package/dist/wrappers/invisible/ValueMemory.test.d.ts +0 -1
  142. package/dist/wrappers/text/AttributeHandler.d.ts +0 -8
  143. package/dist/wrappers/text/AttributeHandler.test.d.ts +0 -1
  144. package/dist/wrappers/text/Coder.d.ts +0 -15
  145. package/dist/wrappers/text/Coder.test.d.ts +0 -1
  146. package/dist/wrappers/text/ContentHandler.d.ts +0 -8
  147. package/dist/wrappers/text/ContentHandler.test.d.ts +0 -1
  148. package/dist/wrappers/text/CoreHandler.d.ts +0 -17
  149. package/dist/wrappers/text/CoreHandler.test.d.ts +0 -1
  150. package/dist/wrappers/text/TextWrapper.d.ts +0 -20
  151. package/index.js +0 -7
  152. package/lib/Constants/ModifierKey.d.ts +0 -6
  153. package/lib/Errors/ApiHttpError.d.ts +0 -5
  154. package/lib/Observer.d.ts +0 -14
  155. package/lib/Properties.d.ts +0 -17
  156. package/lib/TolgeeConfig.d.ts +0 -69
  157. package/lib/helpers/NodeHelper.d.ts +0 -14
  158. package/lib/helpers/TextHelper.d.ts +0 -5
  159. package/lib/helpers/commonTypes.d.ts +0 -2
  160. package/lib/helpers/encoderPolyfill.d.ts +0 -8
  161. package/lib/helpers/secret.d.ts +0 -6
  162. package/lib/helpers/sleep.d.ts +0 -1
  163. package/lib/highlighter/HighlightFunctionsInitializer.d.ts +0 -10
  164. package/lib/highlighter/MouseEventHandler.d.ts +0 -29
  165. package/lib/highlighter/TranslationHighlighter.d.ts +0 -14
  166. package/lib/modules/IcuFormatter.d.ts +0 -2
  167. package/lib/modules/index.d.ts +0 -1
  168. package/lib/services/ApiHttpService.d.ts +0 -15
  169. package/lib/services/CoreService.d.ts +0 -18
  170. package/lib/services/DependencyService.d.ts +0 -39
  171. package/lib/services/ElementRegistrar.d.ts +0 -19
  172. package/lib/services/EventEmitter.d.ts +0 -13
  173. package/lib/services/EventService.d.ts +0 -9
  174. package/lib/services/ModuleService.d.ts +0 -5
  175. package/lib/services/ScreenshotService.d.ts +0 -15
  176. package/lib/services/Subscription.d.ts +0 -5
  177. package/lib/services/TextService.d.ts +0 -14
  178. package/lib/services/TranslationService.d.ts +0 -75
  179. package/lib/toolsManager/Messages.d.ts +0 -8
  180. package/lib/toolsManager/PluginManager.d.ts +0 -21
  181. package/lib/types/DTOs.d.ts +0 -20
  182. package/lib/types/apiSchema.generated.d.ts +0 -6185
  183. package/lib/wrappers/AbstractWrapper.d.ts +0 -8
  184. package/lib/wrappers/NodeHandler.d.ts +0 -18
  185. package/lib/wrappers/WrappedHandler.d.ts +0 -8
  186. package/lib/wrappers/invisible/AttributeHandler.d.ts +0 -8
  187. package/lib/wrappers/invisible/Coder.d.ts +0 -7
  188. package/lib/wrappers/invisible/ContentHandler.d.ts +0 -6
  189. package/lib/wrappers/invisible/CoreHandler.d.ts +0 -10
  190. package/lib/wrappers/invisible/InvisibleWrapper.d.ts +0 -18
  191. package/lib/wrappers/invisible/ValueMemory.d.ts +0 -5
  192. package/lib/wrappers/text/AttributeHandler.d.ts +0 -8
  193. package/lib/wrappers/text/Coder.d.ts +0 -15
  194. package/lib/wrappers/text/ContentHandler.d.ts +0 -8
  195. package/lib/wrappers/text/CoreHandler.d.ts +0 -17
  196. package/lib/wrappers/text/TextWrapper.d.ts +0 -20
  197. package/src/Constants/ModifierKey.ts +0 -6
  198. package/src/Errors/ApiHttpError.ts +0 -8
  199. package/src/Observer.test.ts +0 -119
  200. package/src/Observer.ts +0 -68
  201. package/src/Properties.test.ts +0 -150
  202. package/src/Properties.ts +0 -112
  203. package/src/Tolgee.test.ts +0 -473
  204. package/src/TolgeeConfig.test.ts +0 -21
  205. package/src/TolgeeConfig.ts +0 -134
  206. package/src/__integration/FormatterIcu.test.ts +0 -80
  207. package/src/__integration/FormatterMissing.ts +0 -54
  208. package/src/__integration/Tolgee.test.ts +0 -90
  209. package/src/__integration/TolgeeInvisible.test.ts +0 -145
  210. package/src/__integration/mockTranslations.ts +0 -6
  211. package/src/__integration/testConfig.ts +0 -16
  212. package/src/__testFixtures/classMock.ts +0 -11
  213. package/src/__testFixtures/createElement.ts +0 -43
  214. package/src/__testFixtures/createTestDom.ts +0 -26
  215. package/src/__testFixtures/mocked.ts +0 -25
  216. package/src/__testFixtures/setupAfterEnv.ts +0 -34
  217. package/src/helpers/NodeHelper.ts +0 -90
  218. package/src/helpers/TextHelper.test.ts +0 -62
  219. package/src/helpers/TextHelper.ts +0 -58
  220. package/src/helpers/commonTypes.ts +0 -8
  221. package/src/helpers/encoderPolyfill.ts +0 -96
  222. package/src/helpers/secret.test.ts +0 -61
  223. package/src/helpers/secret.ts +0 -68
  224. package/src/helpers/sleep.ts +0 -2
  225. package/src/highlighter/HighlightFunctionsInitializer.test.ts +0 -40
  226. package/src/highlighter/HighlightFunctionsInitializer.ts +0 -61
  227. package/src/highlighter/MouseEventHandler.test.ts +0 -151
  228. package/src/highlighter/MouseEventHandler.ts +0 -191
  229. package/src/highlighter/TranslationHighlighter.test.ts +0 -177
  230. package/src/highlighter/TranslationHighlighter.ts +0 -113
  231. package/src/internal.ts +0 -2
  232. package/src/modules/IcuFormatter.test.ts +0 -21
  233. package/src/modules/IcuFormatter.ts +0 -39
  234. package/src/modules/index.ts +0 -1
  235. package/src/services/ApiHttpService.ts +0 -85
  236. package/src/services/CoreService.test.ts +0 -141
  237. package/src/services/CoreService.ts +0 -76
  238. package/src/services/DependencyService.test.ts +0 -51
  239. package/src/services/DependencyService.ts +0 -116
  240. package/src/services/ElementRegistrar.test.ts +0 -131
  241. package/src/services/ElementRegistrar.ts +0 -108
  242. package/src/services/EventEmitter.ts +0 -52
  243. package/src/services/EventService.ts +0 -14
  244. package/src/services/ModuleService.ts +0 -14
  245. package/src/services/ScreenshotService.ts +0 -31
  246. package/src/services/Subscription.ts +0 -7
  247. package/src/services/TextService.test.ts +0 -88
  248. package/src/services/TextService.ts +0 -82
  249. package/src/services/TranslationService.test.ts +0 -358
  250. package/src/services/TranslationService.ts +0 -417
  251. package/src/services/__mocks__/CoreService.ts +0 -17
  252. package/src/toolsManager/Messages.test.ts +0 -79
  253. package/src/toolsManager/Messages.ts +0 -60
  254. package/src/toolsManager/PluginManager.test.ts +0 -108
  255. package/src/toolsManager/PluginManager.ts +0 -129
  256. package/src/types/DTOs.ts +0 -25
  257. package/src/types/apiSchema.generated.ts +0 -6208
  258. package/src/wrappers/AbstractWrapper.ts +0 -14
  259. package/src/wrappers/NodeHandler.ts +0 -143
  260. package/src/wrappers/WrappedHandler.ts +0 -28
  261. package/src/wrappers/invisible/AttributeHandler.ts +0 -23
  262. package/src/wrappers/invisible/Coder.ts +0 -65
  263. package/src/wrappers/invisible/ContentHandler.ts +0 -15
  264. package/src/wrappers/invisible/CoreHandler.ts +0 -17
  265. package/src/wrappers/invisible/InvisibleWrapper.ts +0 -59
  266. package/src/wrappers/invisible/ValueMemory.test.ts +0 -25
  267. package/src/wrappers/invisible/ValueMemory.ts +0 -16
  268. package/src/wrappers/text/AttributeHandler.test.ts +0 -118
  269. package/src/wrappers/text/AttributeHandler.ts +0 -25
  270. package/src/wrappers/text/Coder.test.ts +0 -298
  271. package/src/wrappers/text/Coder.ts +0 -202
  272. package/src/wrappers/text/ContentHandler.test.ts +0 -185
  273. package/src/wrappers/text/ContentHandler.ts +0 -21
  274. package/src/wrappers/text/CoreHandler.test.ts +0 -106
  275. package/src/wrappers/text/CoreHandler.ts +0 -45
  276. package/src/wrappers/text/TextWrapper.ts +0 -69
@@ -0,0 +1,74 @@
1
+ import { Tolgee } from '../Tolgee';
2
+
3
+ describe('namespaces fallback', () => {
4
+ test('works with multiple and default', () => {
5
+ const tolgee = Tolgee({
6
+ language: 'en',
7
+ staticData: {
8
+ en: { '0': 'noNamespace' },
9
+ 'en:first': { '1': 'first' },
10
+ 'en:second': { '2': 'second' },
11
+ },
12
+ fallbackNs: ['first', 'second'],
13
+ });
14
+
15
+ expect(tolgee.t({ key: '0' })).toEqual('noNamespace');
16
+ expect(tolgee.t({ key: '1' })).toEqual('first');
17
+ expect(tolgee.t({ key: '2' })).toEqual('second');
18
+ expect(tolgee.t({ key: '4' })).toEqual('4');
19
+ expect(tolgee.t({ key: '4', orEmpty: true })).toEqual('');
20
+ });
21
+
22
+ test('works when no fallback specified', () => {
23
+ const tolgee = Tolgee({
24
+ language: 'en',
25
+ staticData: {
26
+ en: { '0': 'noNamespace' },
27
+ 'en:second': { '2': 'second' },
28
+ },
29
+ fallbackNs: ['first', 'second'],
30
+ });
31
+
32
+ expect(tolgee.t({ key: '0' })).toEqual('noNamespace');
33
+ expect(tolgee.t({ key: '1' })).toEqual('1');
34
+ expect(tolgee.t({ key: '2' })).toEqual('second');
35
+ expect(tolgee.t({ key: '4' })).toEqual('4');
36
+ expect(tolgee.t({ key: '4', orEmpty: true })).toEqual('');
37
+ });
38
+
39
+ test('works when data present but no fallback', () => {
40
+ const tolgee = Tolgee({
41
+ language: 'en',
42
+ staticData: {
43
+ en: { '0': 'noNamespace' },
44
+ 'en:first': { '1': 'first' },
45
+ 'en:second': { '2': 'second' },
46
+ },
47
+ fallbackNs: ['second'],
48
+ });
49
+
50
+ expect(tolgee.t({ key: '0' })).toEqual('noNamespace');
51
+ expect(tolgee.t({ key: '1' })).toEqual('1');
52
+ expect(tolgee.t({ key: '2' })).toEqual('second');
53
+ expect(tolgee.t({ key: '4' })).toEqual('4');
54
+ expect(tolgee.t({ key: '4', orEmpty: true })).toEqual('');
55
+ });
56
+
57
+ test('works with override', () => {
58
+ const tolgee = Tolgee({
59
+ language: 'en',
60
+ staticData: {
61
+ en: { '0': 'noNamespace' },
62
+ 'en:first': { '1': 'first' },
63
+ 'en:second': { '2': 'second' },
64
+ },
65
+ fallbackNs: ['second'],
66
+ });
67
+
68
+ expect(tolgee.t({ key: '1' })).toEqual('1');
69
+ expect(tolgee.t({ key: '1', ns: 'first' })).toEqual('first');
70
+ expect(tolgee.t({ key: '0', ns: 'first' })).toEqual('0');
71
+ expect(tolgee.t({ key: '2', ns: 'first' })).toEqual('2');
72
+ expect(tolgee.t({ key: '2', ns: 'second' })).toEqual('second');
73
+ });
74
+ });
@@ -0,0 +1,136 @@
1
+ import { Tolgee } from '../Tolgee';
2
+ import {
3
+ FinalFormatterInterface,
4
+ FormatterInterface,
5
+ FormatterInterfaceFormatParams,
6
+ ObserverInterface,
7
+ TolgeePlugin,
8
+ WrapperWrapFunction,
9
+ ObserverOptions,
10
+ } from '../types';
11
+
12
+ const testObserver =
13
+ (
14
+ outputNotFormattable: boolean,
15
+ onCreate?: (options: ObserverOptions) => void
16
+ ): ObserverInterface =>
17
+ ({ options }) => {
18
+ const wrap: WrapperWrapFunction = ({ key, translation }) => {
19
+ return `${key}|${translation}`;
20
+ };
21
+ const unwrap = (input: string) => {
22
+ const [key, text] = input.split('|');
23
+ return { text, keys: [{ key }] };
24
+ };
25
+
26
+ const stop = () => {};
27
+ const run = () => {};
28
+
29
+ const retranslate = () => {};
30
+
31
+ onCreate?.(options);
32
+
33
+ return Object.freeze({
34
+ wrap,
35
+ unwrap,
36
+ run,
37
+ stop,
38
+ retranslate,
39
+ highlight: () => ({ unhighlight: () => {} }),
40
+ outputNotFormattable,
41
+ });
42
+ };
43
+
44
+ const testFormatter1: FormatterInterface = {
45
+ format: ({ translation }: FormatterInterfaceFormatParams) => {
46
+ return `(1${translation})`;
47
+ },
48
+ };
49
+
50
+ const testFormatter2: FormatterInterface = {
51
+ format: ({ translation }: FormatterInterfaceFormatParams) => {
52
+ return `(2${translation})`;
53
+ },
54
+ };
55
+
56
+ const testFinalFormatter: FinalFormatterInterface = {
57
+ format: ({ translation }: FormatterInterfaceFormatParams) => {
58
+ return { final: translation };
59
+ },
60
+ };
61
+
62
+ const observerPlugin =
63
+ (
64
+ outputNotFormattable: boolean,
65
+ onCreate?: (options: ObserverOptions) => void
66
+ ): TolgeePlugin =>
67
+ (tolgee, tools) => {
68
+ tools.setObserver(testObserver(outputNotFormattable, onCreate));
69
+ return tolgee;
70
+ };
71
+
72
+ const formattersPlugin: TolgeePlugin = (tolgee, tools) => {
73
+ tools.addFormatter(testFormatter1);
74
+ tools.addFormatter(testFormatter2);
75
+ tools.setFinalFormatter(testFinalFormatter);
76
+ return tolgee;
77
+ };
78
+
79
+ describe('plugins', () => {
80
+ it('wraps and formats translation', () => {
81
+ const tolgee = Tolgee({
82
+ language: 'en',
83
+ staticData: { en: { hello: 'world' } },
84
+ });
85
+ tolgee.use(observerPlugin(false));
86
+ tolgee.run();
87
+ expect(tolgee.t({ key: 'hello' })).toEqual('hello|world');
88
+
89
+ tolgee.use(formattersPlugin);
90
+ expect(tolgee.t({ key: 'hello' })).toEqual({ final: '(2(1hello|world))' });
91
+ tolgee.stop();
92
+ });
93
+
94
+ it("won't format when observer doesn't return formattable text", () => {
95
+ const tolgee = Tolgee({
96
+ language: 'en',
97
+ staticData: { en: { hello: 'world' } },
98
+ });
99
+ tolgee.use(observerPlugin(true));
100
+ tolgee.run();
101
+ expect(tolgee.t({ key: 'hello' })).toEqual('hello|world');
102
+
103
+ tolgee.use(formattersPlugin);
104
+ expect(tolgee.t({ key: 'hello' })).toEqual('hello|world');
105
+ tolgee.stop();
106
+ });
107
+
108
+ it("won't wrap before run", () => {
109
+ const tolgee = Tolgee({
110
+ language: 'en',
111
+ staticData: { en: { hello: 'world' } },
112
+ });
113
+ tolgee.use(observerPlugin(false));
114
+ expect(tolgee.t({ key: 'hello' })).toEqual('world');
115
+ tolgee.run();
116
+ expect(tolgee.t({ key: 'hello' })).toEqual('hello|world');
117
+ });
118
+
119
+ it('observer recieves options', () => {
120
+ const tolgee = Tolgee({
121
+ language: 'en',
122
+ staticData: { en: { hello: 'world' } },
123
+ });
124
+ const restrictedElements = ['test'];
125
+ tolgee.setObserverOptions({
126
+ restrictedElements,
127
+ });
128
+ const onCreate = jest.fn();
129
+ tolgee.use(observerPlugin(false, onCreate));
130
+ tolgee.run();
131
+ expect(onCreate).toBeCalledTimes(1);
132
+ expect(onCreate.mock.calls[0][0].restrictedElements).toEqual(
133
+ restrictedElements
134
+ );
135
+ });
136
+ });
@@ -0,0 +1,7 @@
1
+ export const resolvablePromise = <T = any>() => {
2
+ let resolve: (value: T) => void;
3
+ const promise = new Promise<T>((innerResolve) => {
4
+ resolve = innerResolve;
5
+ });
6
+ return [promise, resolve!] as const;
7
+ };
@@ -1,9 +1,7 @@
1
1
  export const RESTRICTED_ASCENDANT_ATTRIBUTE = 'data-tolgee-restricted';
2
-
3
2
  export const TOLGEE_ATTRIBUTE_NAME = '_tolgee';
4
- export const TOLGEE_TARGET_ATTRIBUTE = '_tolgee-target';
5
- export const TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE = 'data-tolgee-key-only';
6
3
  export const TOLGEE_HIGHLIGHTER_CLASS = '_tolgee-highlighter';
4
+ export const TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE = 'data-tolgee-key-only';
7
5
 
8
6
  // needs to be same as in @tolgee/ui package
9
7
  export const DEVTOOLS_ID = '__tolgee_dev_tools';
package/src/helpers.ts ADDED
@@ -0,0 +1,17 @@
1
+ export function isPromise(value: any) {
2
+ return Boolean(value && typeof value.then === 'function');
3
+ }
4
+
5
+ export const valueOrPromise = <T, R>(
6
+ value: T | Promise<T>,
7
+ callback: (value: T) => R
8
+ ) => {
9
+ if (isPromise(value)) {
10
+ return Promise.resolve(value).then(callback);
11
+ } else {
12
+ return callback(value as T);
13
+ }
14
+ };
15
+
16
+ export const missingOptionError = (option: string) =>
17
+ `Tolgee: You need to specify '${option}' option`;
package/src/index.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  export { Tolgee } from './Tolgee';
2
- export { TolgeeConfig } from './TolgeeConfig';
3
- export { ModifierKey } from './Constants/ModifierKey';
4
- export { TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE } from './Constants/Global';
5
- export * from './modules';
6
- export * from './types/DTOs';
2
+ export {
3
+ RESTRICTED_ASCENDANT_ATTRIBUTE,
4
+ DEVTOOLS_ID,
5
+ TOLGEE_ATTRIBUTE_NAME,
6
+ TOLGEE_HIGHLIGHTER_CLASS,
7
+ TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE,
8
+ } from './constants';
7
9
  export * from './types';
8
- export * from './Constants/Global';
9
- export * from './helpers/NodeHelper';
10
- export * from './helpers/TextHelper';
10
+ export { getTranslateParams } from './TranslateParams';
11
+ export { getFallback, getFallbackArray } from './Controller/State/helpers';