@tolgee/core 5.7.0-prerelease.fa761114.0 → 5.7.3

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.
@@ -14,7 +14,7 @@ export declare const Controller: ({ options }: StateServiceProps) => Readonly<{
14
14
  loadRecord: (descriptor: CacheDescriptor) => Promise<import("../types").TranslationsFlat>;
15
15
  isLoading: (ns?: NsFallback) => boolean;
16
16
  isLoaded: (ns?: NsFallback) => boolean;
17
- t: TFnType<import("../types").DefaultParamType, string>;
17
+ t: TFnType<import("../types").DefaultParamType, string, import("../types").TranslationKey>;
18
18
  isDev: () => boolean;
19
19
  run: () => Promise<void | undefined>;
20
20
  stop: () => void;
@@ -31,61 +31,9 @@ export declare const Controller: ({ options }: StateServiceProps) => Readonly<{
31
31
  language: string;
32
32
  namespace: string;
33
33
  }[];
34
- addPlugin: (tolgeeInstance: Readonly<{
35
- on: import("../types").TolgeeOn<keyof import("../types").EventType>;
36
- onNsUpdate: (handler: import("../types").Listener<undefined>) => import("../types").SubscriptionSelective;
37
- setEmmiterActive: (active: boolean) => void;
38
- getLanguage: () => string | undefined;
39
- getPendingLanguage: () => string | undefined;
40
- changeLanguage: (language: string) => Promise<void>;
41
- changeTranslation: (descriptor: CacheDescriptor, key: string, value: string) => {
42
- revert: () => void;
43
- };
44
- addActiveNs: (ns: NsFallback, forget?: boolean) => Promise<void>;
45
- removeActiveNs: (ns: NsFallback) => void;
46
- loadRecords: (descriptors: CacheDescriptor[]) => Promise<import("../types").TranslationsFlat[]>;
47
- loadRecord: (descriptor: CacheDescriptor) => Promise<import("../types").TranslationsFlat>;
48
- addStaticData: (data: import("./State/initState").TolgeeStaticData | undefined) => void;
49
- getRecord: (descriptor: CacheDescriptor) => import("../types").TranslationsFlat | undefined;
50
- getAllRecords: () => {
51
- data: import("../types").TranslationsFlat;
52
- language: string;
53
- namespace: string;
54
- }[];
55
- isLoaded: (ns?: NsFallback) => boolean;
56
- isInitialLoading: () => boolean;
57
- isLoading: (ns?: NsFallback) => boolean;
58
- isFetching: (ns?: NsFallback) => boolean;
59
- isRunning: () => boolean;
60
- run: () => Promise<void | undefined>;
61
- stop: () => void;
62
- t: TFnType<import("../types").DefaultParamType, string>;
63
- highlight: import("../types").HighlightInterface;
64
- getInitialOptions: () => {
65
- apiUrl?: string | undefined;
66
- apiKey?: string | undefined;
67
- projectId?: string | number | undefined;
68
- language?: string | undefined;
69
- defaultLanguage?: string | undefined;
70
- availableLanguages?: string[] | undefined;
71
- fallbackLanguage?: import("../types").FallbackLanguageOption;
72
- ns?: string[] | undefined;
73
- fallbackNs?: import("../types").FallbackGeneral;
74
- defaultNs: string;
75
- staticData?: import("./State/initState").TolgeeStaticData | undefined;
76
- observerType: "invisible" | "text";
77
- observerOptions: import("./State/observerOptions").ObserverOptionsInternal;
78
- onFormatError: import("../types").OnFormatError;
79
- };
80
- isDev: () => boolean;
81
- wrap: (params: import("../types").WrapperWrapProps) => string | undefined;
82
- unwrap: (text: string) => import("../types").Unwrapped;
83
- overrideCredentials(credentials: import("../types").DevCredentials): void;
84
- addPlugin(plugin: import("../types").TolgeePlugin | undefined): void;
85
- updateOptions(options?: TolgeeOptions | undefined): void;
86
- }>, plugin: import("../types").TolgeePlugin) => void;
34
+ addPlugin: (tolgeeInstance: import("../TolgeeCore").TolgeeInstance, plugin: import("../types").TolgeePlugin) => void;
87
35
  formatTranslation: ({ formatEnabled, ...props }: {
88
- key: string;
36
+ key: import("../types").TranslationKey;
89
37
  defaultValue?: string | undefined;
90
38
  params?: import("../types").TranslateParams<import("../types").DefaultParamType> | undefined;
91
39
  } & import("../types").TranslateOptions & {
@@ -145,7 +93,7 @@ export declare const Controller: ({ options }: StateServiceProps) => Readonly<{
145
93
  onRunningChange: import("./Events/EventEmitter").EventEmitterInstance<boolean>;
146
94
  onCacheChange: import("./Events/EventEmitter").EventEmitterInstance<import("../types").CacheDescriptorWithKey>;
147
95
  onUpdate: import("./Events/EventEmitterSelective").EventEmitterSelectiveInstance;
148
- setEmmiterActive: (active: boolean) => void;
96
+ setEmitterActive: (active: boolean) => void;
149
97
  on: import("../types").TolgeeOn<keyof import("../types").EventType>;
150
98
  }>;
151
99
  export declare type ControllerInstance = ReturnType<typeof Controller>;
@@ -8,7 +8,7 @@ export declare const Events: (getFallbackNs: () => string[], getDefaultNs: () =>
8
8
  onRunningChange: import("./EventEmitter").EventEmitterInstance<boolean>;
9
9
  onCacheChange: import("./EventEmitter").EventEmitterInstance<CacheDescriptorWithKey>;
10
10
  onUpdate: import("./EventEmitterSelective").EventEmitterSelectiveInstance;
11
- setEmmiterActive: (active: boolean) => void;
11
+ setEmitterActive: (active: boolean) => void;
12
12
  on: TolgeeOn<keyof import("../../types").EventType>;
13
13
  }>;
14
14
  export declare type EventsInstance = ReturnType<typeof Events>;
@@ -2,7 +2,7 @@ import { BackendDevMiddleware, BackendGetRecord, TranslatePropsInternal, Highlig
2
2
  export declare const Plugins: (getLanguage: () => string | undefined, getInitialOptions: () => TolgeeOptionsInternal, getAvailableLanguages: () => string[] | undefined, getTranslationNs: (props: KeyAndNamespacesInternal) => string[], getTranslation: (props: KeyAndNamespacesInternal) => string | undefined, changeTranslation: ChangeTranslationInterface) => Readonly<{
3
3
  addPlugin: (tolgeeInstance: TolgeeInstance, plugin: TolgeePlugin) => void;
4
4
  formatTranslation: ({ formatEnabled, ...props }: {
5
- key: string;
5
+ key: import("../../types").TranslationKey;
6
6
  defaultValue?: string | undefined;
7
7
  params?: import("../../types").TranslateParams<import("../../types").DefaultParamType> | undefined;
8
8
  } & import("../../types").TranslateOptions & {
@@ -1,4 +1,4 @@
1
- import { TolgeeOptions, TolgeePlugin, DevCredentials } from './types';
1
+ import { TolgeeOptions, TolgeePlugin, DevCredentials, TFnType, DefaultParamType, TranslationKey } from './types';
2
2
  declare const createTolgee: (options: TolgeeOptions) => Readonly<{
3
3
  /**
4
4
  * Listen to tolgee events.
@@ -21,7 +21,7 @@ declare const createTolgee: (options: TolgeeOptions) => Readonly<{
21
21
  /**
22
22
  * Turn off/on events emitting. Is on by default.
23
23
  */
24
- setEmmiterActive: (active: boolean) => void;
24
+ setEmitterActive: (active: boolean) => void;
25
25
  /**
26
26
  * @return current language if set.
27
27
  */
@@ -119,7 +119,7 @@ declare const createTolgee: (options: TolgeeOptions) => Readonly<{
119
119
  * Returns translated and formatted key.
120
120
  * If Observer is present and tolgee is running, wraps result to be identifiable in the DOM.
121
121
  */
122
- t: import("./types").TFnType<import("./types").DefaultParamType, string>;
122
+ t: TFnType<DefaultParamType, string, TranslationKey>;
123
123
  /**
124
124
  * Highlight keys that match selection.
125
125
  */
@@ -132,9 +132,7 @@ declare const createTolgee: (options: TolgeeOptions) => Readonly<{
132
132
  apiKey?: string | undefined;
133
133
  projectId?: string | number | undefined;
134
134
  language?: string | undefined;
135
- defaultLanguage?: string | undefined; /**
136
- * Turn off/on events emitting. Is on by default.
137
- */
135
+ defaultLanguage?: string | undefined;
138
136
  availableLanguages?: string[] | undefined;
139
137
  fallbackLanguage?: import("./types").FallbackLanguageOption;
140
138
  ns?: string[] | undefined;
@@ -178,7 +176,9 @@ declare const createTolgee: (options: TolgeeOptions) => Readonly<{
178
176
  */
179
177
  updateOptions(options?: TolgeeOptions): void;
180
178
  }>;
181
- export declare type TolgeeInstance = ReturnType<typeof createTolgee>;
179
+ export declare type TolgeeInstance = Omit<ReturnType<typeof createTolgee>, 't'> & {
180
+ t: TFnType<DefaultParamType, string, TranslationKey>;
181
+ };
182
182
  export declare type TolgeeChainer = {
183
183
  /**
184
184
  * Add plugin, plugins are applied when `init` method is called.
@@ -1,6 +1,6 @@
1
1
  export declare type FallbackGeneral = undefined | false | string | string[];
2
2
  export declare type NsType = string;
3
- export declare type KeyType = string;
3
+ export declare type TranslationKey = string & Record<never, never>;
4
4
  export declare type NsFallback = undefined | NsType | NsType[];
5
5
  export declare type FallbackLanguageObject = Record<string, FallbackGeneral>;
6
6
  export declare type FallbackLanguageOption = FallbackGeneral | FallbackLanguageObject;
@@ -13,8 +13,8 @@ export declare type TranslateOptions = {
13
13
  noWrap?: boolean;
14
14
  orEmpty?: boolean;
15
15
  };
16
- export declare type TranslateProps<T = DefaultParamType> = {
17
- key: KeyType;
16
+ export declare type TranslateProps<T = DefaultParamType, K extends string = TranslationKey> = {
17
+ key: K;
18
18
  defaultValue?: string;
19
19
  params?: TranslateParams<T>;
20
20
  } & TranslateOptions;
@@ -25,10 +25,10 @@ declare type PropType<TObj> = TObj[keyof TObj];
25
25
  export declare type CombinedOptions<T> = TranslateOptions & {
26
26
  [key: string]: T | PropType<TranslateOptions>;
27
27
  };
28
- export declare type TFnType<T = DefaultParamType, R = string> = {
29
- (key: string, defaultValue?: string, options?: CombinedOptions<T>): R;
30
- (key: string, options?: CombinedOptions<T>): R;
31
- (props: TranslateProps<T>): R;
28
+ export declare type TFnType<T = DefaultParamType, R = string, K extends string = TranslationKey> = {
29
+ (key: K, defaultValue?: string, options?: CombinedOptions<T>): R;
30
+ (key: K, options?: CombinedOptions<T>): R;
31
+ (props: TranslateProps<T, K>): R;
32
32
  };
33
33
  export declare type KeyAndNamespacesInternal = Pick<TranslatePropsInternal, 'key' | 'ns'>;
34
34
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tolgee/core",
3
- "version": "5.7.0-prerelease.fa761114.0",
3
+ "version": "5.7.3",
4
4
  "description": "Library providing ability to translate messages directly in context of developed application.",
5
5
  "main": "./dist/tolgee.cjs.js",
6
6
  "module": "./dist/tolgee.esm.js",
@@ -67,5 +67,5 @@
67
67
  "access": "public"
68
68
  },
69
69
  "sideEffects": false,
70
- "gitHead": "422387761e8f4e032a8d3c0dc9a1422deb5f3dba"
70
+ "gitHead": "fde08c663fc22333a09c1a6f8e976d16c500e79e"
71
71
  }
@@ -48,7 +48,7 @@ export const Events = (
48
48
  }
49
49
  };
50
50
 
51
- function setEmmiterActive(active: boolean) {
51
+ function setEmitterActive(active: boolean) {
52
52
  emitterActive = active;
53
53
  }
54
54
 
@@ -61,7 +61,7 @@ export const Events = (
61
61
  onRunningChange,
62
62
  onCacheChange,
63
63
  onUpdate,
64
- setEmmiterActive,
64
+ setEmitterActive,
65
65
  on,
66
66
  });
67
67
  };
package/src/TolgeeCore.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  import { Controller } from './Controller/Controller';
2
2
  import { combineOptions } from './Controller/State/initState';
3
- import { TolgeeOptions, TolgeePlugin, DevCredentials } from './types';
3
+ import {
4
+ TolgeeOptions,
5
+ TolgeePlugin,
6
+ DevCredentials,
7
+ TFnType,
8
+ DefaultParamType,
9
+ TranslationKey,
10
+ } from './types';
4
11
 
5
12
  const createTolgee = (options: TolgeeOptions) => {
6
13
  const controller = Controller({
@@ -39,7 +46,7 @@ const createTolgee = (options: TolgeeOptions) => {
39
46
  /**
40
47
  * Turn off/on events emitting. Is on by default.
41
48
  */
42
- setEmmiterActive: controller.setEmmiterActive,
49
+ setEmitterActive: controller.setEmitterActive,
43
50
 
44
51
  /**
45
52
  * @return current language if set.
@@ -214,7 +221,10 @@ const createTolgee = (options: TolgeeOptions) => {
214
221
  return tolgee;
215
222
  };
216
223
 
217
- export type TolgeeInstance = ReturnType<typeof createTolgee>;
224
+ export type TolgeeInstance = Omit<ReturnType<typeof createTolgee>, 't'> & {
225
+ // enabling generics (when inferred they are lost)
226
+ t: TFnType<DefaultParamType, string, TranslationKey>;
227
+ };
218
228
 
219
229
  export type TolgeeChainer = {
220
230
  /**
@@ -47,11 +47,11 @@ describe('events', () => {
47
47
  await tolgee.changeLanguage('es');
48
48
  expect(eventHandler).toBeCalledTimes(2);
49
49
 
50
- tolgee.setEmmiterActive(false);
50
+ tolgee.setEmitterActive(false);
51
51
  await tolgee.changeLanguage('en');
52
52
  expect(eventHandler).toBeCalledTimes(2);
53
53
 
54
- tolgee.setEmmiterActive(true);
54
+ tolgee.setEmitterActive(true);
55
55
  await tolgee.changeLanguage('es');
56
56
  expect(eventHandler).toBeCalledTimes(4);
57
57
  });
@@ -2,7 +2,9 @@ export type FallbackGeneral = undefined | false | string | string[];
2
2
 
3
3
  export type NsType = string;
4
4
 
5
- export type KeyType = string;
5
+ // This prevents typescript to optimize this to 'string'
6
+ // this type needs to be overritable everywhere
7
+ export type TranslationKey = string & Record<never, never>;
6
8
 
7
9
  export type NsFallback = undefined | NsType | NsType[];
8
10
 
@@ -22,8 +24,11 @@ export type TranslateOptions = {
22
24
  orEmpty?: boolean;
23
25
  };
24
26
 
25
- export type TranslateProps<T = DefaultParamType> = {
26
- key: KeyType;
27
+ export type TranslateProps<
28
+ T = DefaultParamType,
29
+ K extends string = TranslationKey
30
+ > = {
31
+ key: K;
27
32
  defaultValue?: string;
28
33
  params?: TranslateParams<T>;
29
34
  } & TranslateOptions;
@@ -38,10 +43,14 @@ export type CombinedOptions<T> = TranslateOptions & {
38
43
  [key: string]: T | PropType<TranslateOptions>;
39
44
  };
40
45
 
41
- export type TFnType<T = DefaultParamType, R = string> = {
42
- (key: string, defaultValue?: string, options?: CombinedOptions<T>): R;
43
- (key: string, options?: CombinedOptions<T>): R;
44
- (props: TranslateProps<T>): R;
46
+ export type TFnType<
47
+ T = DefaultParamType,
48
+ R = string,
49
+ K extends string = TranslationKey
50
+ > = {
51
+ (key: K, defaultValue?: string, options?: CombinedOptions<T>): R;
52
+ (key: K, options?: CombinedOptions<T>): R;
53
+ (props: TranslateProps<T, K>): R;
45
54
  };
46
55
 
47
56
  export type KeyAndNamespacesInternal = Pick<