@tolgee/core 5.0.0-rc.9be0f0e.0 → 5.0.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.
- package/README.md +174 -0
- package/README.njk.md +61 -0
- package/dist/tolgee.cjs.js +723 -351
- package/dist/tolgee.cjs.js.map +1 -1
- package/dist/tolgee.cjs.min.js +1 -1
- package/dist/tolgee.cjs.min.js.map +1 -1
- package/dist/{tolgee.esm.mjs → tolgee.esm.js} +722 -346
- package/dist/tolgee.esm.js.map +1 -0
- package/dist/tolgee.esm.min.mjs +1 -1
- package/dist/tolgee.esm.min.mjs.map +1 -1
- package/dist/tolgee.umd.js +723 -351
- package/dist/tolgee.umd.js.map +1 -1
- package/dist/tolgee.umd.min.js +1 -1
- package/dist/tolgee.umd.min.js.map +1 -1
- package/lib/Controller/Cache/Cache.d.ts +10 -9
- package/lib/Controller/Controller.d.ts +104 -45
- package/lib/Controller/Events/EventEmitter.d.ts +6 -0
- package/lib/Controller/Events/EventEmitterSelective.d.ts +7 -0
- package/lib/Controller/Events/Events.d.ts +14 -0
- package/lib/Controller/Plugins/Plugins.d.ts +12 -25
- package/lib/Controller/State/State.d.ts +27 -9
- package/lib/Controller/State/initState.d.ts +46 -15
- package/lib/Controller/State/observerOptions.d.ts +41 -0
- package/lib/Controller/ValueObserver.d.ts +5 -5
- package/lib/FormatSimple/FormatError.d.ts +7 -0
- package/lib/FormatSimple/FormatSimple.d.ts +2 -0
- package/lib/FormatSimple/formatParser.d.ts +1 -0
- package/lib/FormatSimple/formatter.d.ts +2 -0
- package/lib/TolgeeCore.d.ts +204 -0
- package/lib/TranslateParams.d.ts +1 -1
- package/lib/helpers.d.ts +8 -0
- package/lib/index.d.ts +4 -4
- package/lib/types/cache.d.ts +25 -0
- package/lib/types/events.d.ts +66 -0
- package/lib/types/general.d.ts +34 -0
- package/lib/types/index.d.ts +7 -0
- package/lib/types/plugin.d.ts +127 -0
- package/package.json +5 -4
- package/src/Controller/Cache/Cache.ts +31 -31
- package/src/Controller/Cache/helpers.ts +6 -6
- package/src/Controller/Controller.ts +78 -50
- package/src/Controller/Events/EventEmitter.ts +34 -0
- package/src/Controller/Events/EventEmitterSelective.test.ts +110 -0
- package/src/Controller/Events/EventEmitterSelective.ts +132 -0
- package/src/Controller/Events/Events.ts +69 -0
- package/src/Controller/Plugins/Plugins.ts +182 -133
- package/src/Controller/State/State.ts +43 -26
- package/src/Controller/State/initState.ts +97 -25
- package/src/Controller/State/observerOptions.ts +66 -0
- package/src/Controller/ValueObserver.ts +5 -2
- package/src/FormatSimple/FormatError.ts +26 -0
- package/src/FormatSimple/FormatSimple.ts +13 -0
- package/src/FormatSimple/formatParser.ts +133 -0
- package/src/FormatSimple/formatter.test.ts +190 -0
- package/src/FormatSimple/formatter.ts +19 -0
- package/src/TolgeeCore.ts +267 -0
- package/src/TranslateParams.test.ts +9 -12
- package/src/TranslateParams.ts +6 -5
- package/src/__test/backend.test.ts +6 -6
- package/src/__test/cache.test.ts +190 -0
- package/src/__test/client.test.ts +2 -2
- package/src/__test/events.test.ts +32 -7
- package/src/__test/format.simple.test.ts +14 -0
- package/src/__test/formatError.test.ts +61 -0
- package/src/__test/initialization.test.ts +15 -3
- package/src/__test/languageDetection.test.ts +14 -8
- package/src/__test/languageStorage.test.ts +10 -11
- package/src/__test/languages.test.ts +30 -6
- package/src/__test/loading.test.ts +2 -2
- package/src/__test/{namespacesFallback.test.ts → namespaces.fallback.test.ts} +10 -8
- package/src/__test/namespaces.test.ts +30 -7
- package/src/__test/options.test.ts +64 -0
- package/src/__test/plugins.test.ts +29 -18
- package/src/helpers.ts +53 -0
- package/src/index.ts +4 -10
- package/src/types/cache.ts +37 -0
- package/src/types/events.ts +85 -0
- package/src/types/general.ts +50 -0
- package/src/types/index.ts +19 -0
- package/src/types/plugin.ts +181 -0
- package/dist/tolgee.esm.mjs.map +0 -1
- package/lib/Controller/State/helpers.d.ts +0 -6
- package/lib/Events/EventEmitter.d.ts +0 -6
- package/lib/Events/EventEmitterSelective.d.ts +0 -15
- package/lib/Events/Events.d.ts +0 -50
- package/lib/Tolgee.d.ts +0 -2
- package/lib/constants.d.ts +0 -5
- package/lib/types.d.ts +0 -274
- package/src/Controller/State/helpers.ts +0 -41
- package/src/Events/EventEmitter.ts +0 -27
- package/src/Events/EventEmitterSelective.test.ts +0 -108
- package/src/Events/EventEmitterSelective.ts +0 -160
- package/src/Events/Events.ts +0 -66
- package/src/Tolgee.ts +0 -77
- package/src/constants.ts +0 -7
- package/src/types.ts +0 -380
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { TolgeeOptions, TolgeePlugin, DevCredentials } from './types';
|
|
2
|
+
declare const createTolgee: (options: TolgeeOptions) => Readonly<{
|
|
3
|
+
/**
|
|
4
|
+
* Listen to tolgee events.
|
|
5
|
+
*/
|
|
6
|
+
on: import("./types").TolgeeOn<keyof import("./types").EventType>;
|
|
7
|
+
/**
|
|
8
|
+
* Listen for specific namespaces changes.
|
|
9
|
+
*
|
|
10
|
+
* ```
|
|
11
|
+
* const sub = tolgee.onUpdate(handler)
|
|
12
|
+
*
|
|
13
|
+
* // subscribe to selected namespace
|
|
14
|
+
* sub.subscribeNs(['common'])
|
|
15
|
+
*
|
|
16
|
+
* // unsubscribe
|
|
17
|
+
* sub.unsubscribe()
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
onNsUpdate: (handler: import("./types").Listener<undefined>) => import("./types").SubscriptionSelective;
|
|
21
|
+
/**
|
|
22
|
+
* Turn off/on events emitting. Is on by default.
|
|
23
|
+
*/
|
|
24
|
+
setEmmiterActive: (active: boolean) => void;
|
|
25
|
+
/**
|
|
26
|
+
* @return current language if set.
|
|
27
|
+
*/
|
|
28
|
+
getLanguage: () => string | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* `pendingLanguage` represents language which is currently being loaded.
|
|
31
|
+
* @return current `pendingLanguage` if set.
|
|
32
|
+
*/
|
|
33
|
+
getPendingLanguage: () => string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Change current language.
|
|
36
|
+
* - if not running sets `pendingLanguage`, `language` to the new value
|
|
37
|
+
* - if running sets `pendingLanguage` to the value, fetches necessary data and then changes `language`
|
|
38
|
+
*
|
|
39
|
+
* @return Promise which is resolved when `language` is changed.
|
|
40
|
+
*/
|
|
41
|
+
changeLanguage: (language: string) => Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Temporarily change translation in cache.
|
|
44
|
+
* @return object with revert method.
|
|
45
|
+
*/
|
|
46
|
+
changeTranslation: (descriptor: import("./types").CacheDescriptor, key: string, value: string) => {
|
|
47
|
+
revert: () => void;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Adds namespace(s) list of active namespaces. And if tolgee is running, loads required data.
|
|
51
|
+
*/
|
|
52
|
+
addActiveNs: (ns: import("./types").NsFallback, forget?: boolean | undefined) => Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Remove namespace(s) from active namespaces.
|
|
55
|
+
*
|
|
56
|
+
* Tolgee internally counts how many times was each active namespace added,
|
|
57
|
+
* so this method will remove namespace only if the counter goes down to 0.
|
|
58
|
+
*/
|
|
59
|
+
removeActiveNs: (ns: import("./types").NsFallback) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Manually load multiple records from `Backend` (or `DevBackend` when in dev mode)
|
|
62
|
+
*
|
|
63
|
+
* It loads data together and adds them to cache in one operation, to prevent partly loaded state.
|
|
64
|
+
*/
|
|
65
|
+
loadRecords: (descriptors: import("./types").CacheDescriptor[]) => Promise<import("./types").TranslationsFlat[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Manually load record from `Backend` (or `DevBackend` when in dev mode)
|
|
68
|
+
*/
|
|
69
|
+
loadRecord: (descriptor: import("./types").CacheDescriptor) => Promise<import("./types").TranslationsFlat>;
|
|
70
|
+
/**
|
|
71
|
+
*
|
|
72
|
+
*/
|
|
73
|
+
addStaticData: (data: import("./types").TolgeeStaticData | undefined) => void;
|
|
74
|
+
/**
|
|
75
|
+
* Get record from cache.
|
|
76
|
+
*/
|
|
77
|
+
getRecord: (descriptor: import("./types").CacheDescriptor) => import("./types").TranslationsFlat | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Get all records from cache.
|
|
80
|
+
*/
|
|
81
|
+
getAllRecords: () => {
|
|
82
|
+
data: import("./types").TranslationsFlat;
|
|
83
|
+
language: string;
|
|
84
|
+
namespace: string;
|
|
85
|
+
}[];
|
|
86
|
+
/**
|
|
87
|
+
* @param ns optional list of namespaces that you are interested in
|
|
88
|
+
* @return `true` if there are data that need to be fetched.
|
|
89
|
+
*/
|
|
90
|
+
isLoaded: (ns?: import("./types").NsFallback) => boolean;
|
|
91
|
+
/**
|
|
92
|
+
* @return `true` if tolgee is loading initial data (triggered by `run`).
|
|
93
|
+
*/
|
|
94
|
+
isInitialLoading: () => boolean;
|
|
95
|
+
/**
|
|
96
|
+
* @param ns optional list of namespaces that you are interested in
|
|
97
|
+
* @return `true` if tolgee is loading some translations for the first time.
|
|
98
|
+
*/
|
|
99
|
+
isLoading: (ns?: import("./types").NsFallback) => boolean;
|
|
100
|
+
/**
|
|
101
|
+
* @param ns optional list of namespaces that you are interested in
|
|
102
|
+
* @return `true` if tolgee is fetching some translations.
|
|
103
|
+
*/
|
|
104
|
+
isFetching: (ns?: import("./types").NsFallback) => boolean;
|
|
105
|
+
/**
|
|
106
|
+
* @return `true` if tolgee is running.
|
|
107
|
+
*/
|
|
108
|
+
isRunning: () => boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Changes internal state to running: true and loads initial files.
|
|
111
|
+
* Runs runnable plugins mainly Observer if present.
|
|
112
|
+
*/
|
|
113
|
+
run: () => Promise<void | undefined>;
|
|
114
|
+
/**
|
|
115
|
+
* Changes internal state to running: false and stops runnable plugins.
|
|
116
|
+
*/
|
|
117
|
+
stop: () => void;
|
|
118
|
+
/**
|
|
119
|
+
* Returns translated and formatted key.
|
|
120
|
+
* If Observer is present and tolgee is running, wraps result to be identifiable in the DOM.
|
|
121
|
+
*/
|
|
122
|
+
t: import("./types").TFnType<import("./types").DefaultParamType, string>;
|
|
123
|
+
/**
|
|
124
|
+
* Highlight keys that match selection.
|
|
125
|
+
*/
|
|
126
|
+
highlight: import("./types").HighlightInterface;
|
|
127
|
+
/**
|
|
128
|
+
* @return current Tolgee options.
|
|
129
|
+
*/
|
|
130
|
+
getInitialOptions: () => {
|
|
131
|
+
apiUrl?: string | undefined;
|
|
132
|
+
apiKey?: string | undefined;
|
|
133
|
+
projectId?: string | number | undefined;
|
|
134
|
+
language?: string | undefined;
|
|
135
|
+
defaultLanguage?: string | undefined;
|
|
136
|
+
availableLanguages?: string[] | undefined;
|
|
137
|
+
fallbackLanguage?: import("./types").FallbackLanguageOption;
|
|
138
|
+
ns?: string[] | undefined;
|
|
139
|
+
fallbackNs?: import("./types").FallbackGeneral;
|
|
140
|
+
defaultNs: string;
|
|
141
|
+
staticData?: import("./types").TolgeeStaticData | undefined;
|
|
142
|
+
observerType: "invisible" | "text";
|
|
143
|
+
observerOptions: import("./types").ObserverOptionsInternal;
|
|
144
|
+
onFormatError: import("./types").OnFormatError;
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* Tolgee is in dev mode if `DevTools` plugin is used and `apiKey` + `apiUrl` are specified.
|
|
148
|
+
* @return `true` if tolgee is in dev mode.
|
|
149
|
+
*/
|
|
150
|
+
isDev: () => boolean;
|
|
151
|
+
/**
|
|
152
|
+
* Wraps translation if there is `Observer` plugin
|
|
153
|
+
*/
|
|
154
|
+
wrap: (params: import("./types").WrapperWrapProps) => string | undefined;
|
|
155
|
+
/**
|
|
156
|
+
* Unwrap translation
|
|
157
|
+
*/
|
|
158
|
+
unwrap: (text: string) => import("./types").Unwrapped;
|
|
159
|
+
/**
|
|
160
|
+
* Override creadentials passed on initialization.
|
|
161
|
+
*
|
|
162
|
+
* When called in running state, tolgee stops and runs again.
|
|
163
|
+
*/
|
|
164
|
+
overrideCredentials(credentials: DevCredentials): void;
|
|
165
|
+
/**
|
|
166
|
+
* Add tolgee plugin after initialization.
|
|
167
|
+
*
|
|
168
|
+
* When called in running state, tolgee stops and runs again.
|
|
169
|
+
*/
|
|
170
|
+
addPlugin(plugin: TolgeePlugin | undefined): void;
|
|
171
|
+
/**
|
|
172
|
+
* Updates options after instance creation. Extends existing options,
|
|
173
|
+
* so it only changes the fields, that are listed.
|
|
174
|
+
*
|
|
175
|
+
* When called in running state, tolgee stops and runs again.
|
|
176
|
+
*/
|
|
177
|
+
updateOptions(options?: TolgeeOptions): void;
|
|
178
|
+
}>;
|
|
179
|
+
export declare type TolgeeInstance = ReturnType<typeof createTolgee>;
|
|
180
|
+
export declare type TolgeeChainer = {
|
|
181
|
+
/**
|
|
182
|
+
* Add plugin, plugins are applied when `init` method is called.
|
|
183
|
+
*/
|
|
184
|
+
use: (plugin: TolgeePlugin | undefined) => TolgeeChainer;
|
|
185
|
+
/**
|
|
186
|
+
* Update default options before tolgee is initialized.
|
|
187
|
+
*/
|
|
188
|
+
updateDefaults: (options: TolgeeOptions) => TolgeeChainer;
|
|
189
|
+
/**
|
|
190
|
+
* Initialize tolgee options and apply plugins
|
|
191
|
+
* @returns tolgee instance
|
|
192
|
+
*/
|
|
193
|
+
init(options?: TolgeeOptions): TolgeeInstance;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Tolgee chainable constructor.
|
|
197
|
+
*
|
|
198
|
+
* Usage:
|
|
199
|
+
* ```
|
|
200
|
+
* const tolgee = Tolgee().use(...).init(...)
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
export declare const TolgeeCore: () => TolgeeChainer;
|
|
204
|
+
export {};
|
package/lib/TranslateParams.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TFnType, TranslateProps } from './types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const getTranslateProps: TFnType<any, TranslateProps<any>>;
|
package/lib/helpers.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
import { FallbackGeneral, FallbackLanguageOption } from './types';
|
|
1
2
|
export declare function isPromise(value: any): boolean;
|
|
2
3
|
export declare const valueOrPromise: <T, R>(value: T | Promise<T>, callback: (value: T) => R) => R | Promise<R>;
|
|
3
4
|
export declare const missingOptionError: (option: string) => string;
|
|
5
|
+
export declare function isObject(item: any): boolean;
|
|
6
|
+
export declare function getFallback(value: FallbackGeneral): string[] | undefined;
|
|
7
|
+
export declare function getFallbackArray(value: FallbackGeneral): string[];
|
|
8
|
+
export declare function getFallbackFromStruct(language: string, fallbackLanguage: FallbackLanguageOption): string[];
|
|
9
|
+
export declare function unique<T>(arr: T[]): T[];
|
|
10
|
+
export declare function sanitizeUrl(url: string | undefined): string | undefined;
|
|
11
|
+
export declare function getErrorMessage(error: any): string | undefined;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { getFallback, getFallbackArray } from './helpers';
|
|
2
|
+
export { TolgeeCore } from './TolgeeCore';
|
|
3
3
|
export * from './types';
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
4
|
+
export { getTranslateProps } from './TranslateParams';
|
|
5
|
+
export { FormatSimple } from './FormatSimple/FormatSimple';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare type TranslationValue = string | undefined | null;
|
|
2
|
+
export declare type TranslationsFlat = Map<string, TranslationValue>;
|
|
3
|
+
export declare type TreeTranslationsData = {
|
|
4
|
+
[key: string]: TranslationValue | TreeTranslationsData;
|
|
5
|
+
};
|
|
6
|
+
export declare type CacheDescriptor = {
|
|
7
|
+
language: string;
|
|
8
|
+
namespace?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare type CacheDescriptorInternal = {
|
|
11
|
+
language: string;
|
|
12
|
+
namespace: string;
|
|
13
|
+
};
|
|
14
|
+
export declare type CacheDescriptorWithKey = CacheDescriptorInternal & {
|
|
15
|
+
key?: string;
|
|
16
|
+
};
|
|
17
|
+
export declare type TranslationChanger = {
|
|
18
|
+
revert: () => void;
|
|
19
|
+
};
|
|
20
|
+
export declare type ChangeTranslationInterface = (descriptor: CacheDescriptor, key: string, value: string) => TranslationChanger;
|
|
21
|
+
export declare type CachePublicRecord = {
|
|
22
|
+
data: TranslationsFlat;
|
|
23
|
+
language: string;
|
|
24
|
+
namespace: string;
|
|
25
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { NsFallback } from './general';
|
|
2
|
+
import type { CacheDescriptorWithKey } from './cache';
|
|
3
|
+
export declare type Subscription = {
|
|
4
|
+
unsubscribe: () => void;
|
|
5
|
+
};
|
|
6
|
+
export declare type SubscriptionSelective = {
|
|
7
|
+
unsubscribe: () => void;
|
|
8
|
+
/**
|
|
9
|
+
* Subscribes to namespace(s)
|
|
10
|
+
* @param ns - namespace(s), if empty default namespace is used
|
|
11
|
+
*
|
|
12
|
+
* Can be used multiple times to subscribe for more.
|
|
13
|
+
*/
|
|
14
|
+
subscribeNs(ns?: NsFallback): SubscriptionSelective;
|
|
15
|
+
};
|
|
16
|
+
export declare type ListenerEvent<T> = {
|
|
17
|
+
value: T;
|
|
18
|
+
};
|
|
19
|
+
export declare type Listener<T> = (e: ListenerEvent<T>) => void;
|
|
20
|
+
export declare type TolgeeEvent = 'language' | 'pendingLanguage' | 'loading' | 'fetching' | 'initialLoad' | 'running' | 'cache' | 'update';
|
|
21
|
+
export interface EventType {
|
|
22
|
+
language: string;
|
|
23
|
+
pendingLanguage: string;
|
|
24
|
+
loading: boolean;
|
|
25
|
+
fetching: boolean;
|
|
26
|
+
initialLoad: void;
|
|
27
|
+
running: boolean;
|
|
28
|
+
cache: CacheDescriptorWithKey;
|
|
29
|
+
update: void;
|
|
30
|
+
}
|
|
31
|
+
export declare type TolgeeOn<E extends keyof EventType = keyof EventType> = {
|
|
32
|
+
/**
|
|
33
|
+
* Emitted when any key needs (or might need) to be re-rendered.
|
|
34
|
+
* Similar to tolgee.onNsUpdate, except for all namespaces.
|
|
35
|
+
*/
|
|
36
|
+
(event: 'update', handler: Listener<void>): Subscription;
|
|
37
|
+
/**
|
|
38
|
+
* Emitted on language change.
|
|
39
|
+
*/
|
|
40
|
+
(event: 'language', handler: Listener<string>): Subscription;
|
|
41
|
+
/**
|
|
42
|
+
* Emitted on pendingLanguage change.
|
|
43
|
+
*/
|
|
44
|
+
(event: 'pendingLanguage', handler: Listener<string>): Subscription;
|
|
45
|
+
/**
|
|
46
|
+
* Emitted on loading change. Changes when tolgee is loading some data for the first time.
|
|
47
|
+
*/
|
|
48
|
+
(event: 'loading', handler: Listener<boolean>): Subscription;
|
|
49
|
+
/**
|
|
50
|
+
* Emitted on fetching change. Changes when tolgee is fetching any data.
|
|
51
|
+
*/
|
|
52
|
+
(event: 'fetching', handler: Listener<boolean>): Subscription;
|
|
53
|
+
/**
|
|
54
|
+
* Emitted when `tolgee.run` method finishes.
|
|
55
|
+
*/
|
|
56
|
+
(event: 'initialLoad', handler: Listener<void>): Subscription;
|
|
57
|
+
/**
|
|
58
|
+
* Emitted when internal `running` state changes.
|
|
59
|
+
*/
|
|
60
|
+
(event: 'running', handler: Listener<boolean>): Subscription;
|
|
61
|
+
/**
|
|
62
|
+
* Emitted when cache changes.
|
|
63
|
+
*/
|
|
64
|
+
(event: 'cache', handler: Listener<CacheDescriptorWithKey>): Subscription;
|
|
65
|
+
(event: E, handler: unknown): Subscription;
|
|
66
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare type FallbackGeneral = undefined | false | string | string[];
|
|
2
|
+
export declare type NsType = string;
|
|
3
|
+
export declare type KeyType = string;
|
|
4
|
+
export declare type NsFallback = undefined | NsType | NsType[];
|
|
5
|
+
export declare type FallbackLanguageObject = Record<string, FallbackGeneral>;
|
|
6
|
+
export declare type FallbackLanguageOption = FallbackGeneral | FallbackLanguageObject;
|
|
7
|
+
export declare type DefaultParamType = string | number | bigint;
|
|
8
|
+
export declare type TranslateParams<T = DefaultParamType> = {
|
|
9
|
+
[key: string]: T;
|
|
10
|
+
};
|
|
11
|
+
export declare type TranslateOptions = {
|
|
12
|
+
ns?: NsType;
|
|
13
|
+
noWrap?: boolean;
|
|
14
|
+
orEmpty?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare type TranslateProps<T = DefaultParamType> = {
|
|
17
|
+
key: KeyType;
|
|
18
|
+
defaultValue?: string;
|
|
19
|
+
params?: TranslateParams<T>;
|
|
20
|
+
} & TranslateOptions;
|
|
21
|
+
export declare type TranslatePropsInternal = TranslateProps & {
|
|
22
|
+
translation?: string;
|
|
23
|
+
};
|
|
24
|
+
declare type PropType<TObj> = TObj[keyof TObj];
|
|
25
|
+
export declare type CombinedOptions<T> = TranslateOptions & {
|
|
26
|
+
[key: string]: T | PropType<TranslateOptions>;
|
|
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;
|
|
32
|
+
};
|
|
33
|
+
export declare type KeyAndNamespacesInternal = Pick<TranslatePropsInternal, 'key' | 'ns'>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './general';
|
|
2
|
+
export * from './events';
|
|
3
|
+
export * from './cache';
|
|
4
|
+
export * from './plugin';
|
|
5
|
+
export type { State, TolgeeOptions, TolgeeOptionsInternal, TolgeeStaticData, } from '../Controller/State/initState';
|
|
6
|
+
export type { ObserverOptions, ObserverOptionsInternal, ModifierKey, } from '../Controller/State/observerOptions';
|
|
7
|
+
export type { TolgeeChainer, TolgeeInstance } from '../TolgeeCore';
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { ChangeTranslationInterface, TreeTranslationsData } from './cache';
|
|
2
|
+
import { NsFallback, NsType, TranslateParams, TranslatePropsInternal } from './general';
|
|
3
|
+
import type { ObserverOptionsInternal } from '../Controller/State/observerOptions';
|
|
4
|
+
import { TolgeeInstance } from '../TolgeeCore';
|
|
5
|
+
export declare type BackendDevProps = {
|
|
6
|
+
apiUrl?: string;
|
|
7
|
+
apiKey?: string;
|
|
8
|
+
projectId?: number | string;
|
|
9
|
+
};
|
|
10
|
+
export declare type BackendGetRecordProps = {
|
|
11
|
+
language: string;
|
|
12
|
+
namespace?: string;
|
|
13
|
+
};
|
|
14
|
+
export declare type BackendGetRecord = (data: BackendGetRecordProps) => Promise<TreeTranslationsData | undefined> | undefined;
|
|
15
|
+
export interface BackendMiddleware {
|
|
16
|
+
getRecord: BackendGetRecord;
|
|
17
|
+
}
|
|
18
|
+
export declare type BackendGetDevRecord = (data: BackendGetRecordProps & BackendDevProps) => Promise<TreeTranslationsData | undefined> | undefined;
|
|
19
|
+
export declare type BackendDevMiddleware = {
|
|
20
|
+
getRecord: BackendGetDevRecord;
|
|
21
|
+
};
|
|
22
|
+
export declare type KeyAndParams = {
|
|
23
|
+
key: string;
|
|
24
|
+
params?: TranslateParams;
|
|
25
|
+
defaultValue?: string;
|
|
26
|
+
ns?: NsType;
|
|
27
|
+
};
|
|
28
|
+
export declare type Unwrapped = {
|
|
29
|
+
text: string;
|
|
30
|
+
keys: KeyAndParams[];
|
|
31
|
+
};
|
|
32
|
+
export declare type WrapperWrapProps = Pick<TranslatePropsInternal, 'key' | 'params' | 'defaultValue' | 'ns' | 'translation'>;
|
|
33
|
+
export declare type WrapperWrapFunction = (props: WrapperWrapProps) => string;
|
|
34
|
+
export declare type WrapperUnwrapFunction = (text: string) => Unwrapped;
|
|
35
|
+
export declare type WrapperAttributeXPathGetter = (props: {
|
|
36
|
+
tag: string;
|
|
37
|
+
attribute: string;
|
|
38
|
+
}) => string;
|
|
39
|
+
export declare type HighlightInterface = (key?: string, ns?: NsFallback) => Highlighter;
|
|
40
|
+
export declare type ObserverRunProps = {
|
|
41
|
+
mouseHighlight: boolean;
|
|
42
|
+
};
|
|
43
|
+
export declare type ObserverMiddleware = (props: ObserverProps) => {
|
|
44
|
+
unwrap: (text: string) => Unwrapped;
|
|
45
|
+
wrap: WrapperWrapFunction;
|
|
46
|
+
retranslate: () => void;
|
|
47
|
+
stop: () => void;
|
|
48
|
+
run: (props: ObserverRunProps) => void;
|
|
49
|
+
highlight: HighlightInterface;
|
|
50
|
+
outputNotFormattable: boolean;
|
|
51
|
+
};
|
|
52
|
+
export declare type LanguageDetectorProps = {
|
|
53
|
+
availableLanguages: string[];
|
|
54
|
+
};
|
|
55
|
+
export declare type LanguageDetectorMiddleware = {
|
|
56
|
+
getLanguage: (props: LanguageDetectorProps) => string | undefined | Promise<string | undefined>;
|
|
57
|
+
};
|
|
58
|
+
export declare type LanguageStorageMiddleware = {
|
|
59
|
+
getLanguage: () => string | undefined | Promise<string | undefined>;
|
|
60
|
+
setLanguage: (language: string) => void | Promise<void>;
|
|
61
|
+
};
|
|
62
|
+
export declare type DevCredentials = undefined | {
|
|
63
|
+
apiUrl?: string;
|
|
64
|
+
apiKey?: string;
|
|
65
|
+
projectId?: string | number;
|
|
66
|
+
};
|
|
67
|
+
export declare type WrapperMiddleware = {
|
|
68
|
+
unwrap: WrapperUnwrapFunction;
|
|
69
|
+
wrap: WrapperWrapFunction;
|
|
70
|
+
getTextXPath: () => string;
|
|
71
|
+
getAttributeXPath: WrapperAttributeXPathGetter;
|
|
72
|
+
};
|
|
73
|
+
export declare type FormatterMiddlewareFormatParams = {
|
|
74
|
+
translation: string;
|
|
75
|
+
language: string;
|
|
76
|
+
params: Record<string, any> | undefined;
|
|
77
|
+
};
|
|
78
|
+
export declare type FormatterMiddleware = {
|
|
79
|
+
format: (props: FormatterMiddlewareFormatParams) => string;
|
|
80
|
+
};
|
|
81
|
+
export declare type TranslationOnClick = (data: {
|
|
82
|
+
keysAndDefaults: KeyAndParams[];
|
|
83
|
+
event: any;
|
|
84
|
+
}) => void;
|
|
85
|
+
export declare type ObserverProps = {
|
|
86
|
+
translate: (params: TranslatePropsInternal) => string;
|
|
87
|
+
onClick: TranslationOnClick;
|
|
88
|
+
options: ObserverOptionsInternal;
|
|
89
|
+
};
|
|
90
|
+
export declare type Highlighter = {
|
|
91
|
+
unhighlight(): void;
|
|
92
|
+
};
|
|
93
|
+
export declare type FinalFormatterMiddleware = {
|
|
94
|
+
format: (props: FormatterMiddlewareFormatParams) => any;
|
|
95
|
+
};
|
|
96
|
+
export declare type UiProps = {
|
|
97
|
+
apiUrl: string;
|
|
98
|
+
apiKey: string;
|
|
99
|
+
projectId: number | string | undefined;
|
|
100
|
+
highlight: HighlightInterface;
|
|
101
|
+
changeTranslation: ChangeTranslationInterface;
|
|
102
|
+
};
|
|
103
|
+
export declare type UiKeyOption = {
|
|
104
|
+
key: string;
|
|
105
|
+
defaultValue?: string;
|
|
106
|
+
ns: string[];
|
|
107
|
+
translation: string | undefined;
|
|
108
|
+
};
|
|
109
|
+
export declare type UiMiddleware = (props: UiProps) => UiInterface;
|
|
110
|
+
export interface UiInterface {
|
|
111
|
+
handleElementClick(keysAndDefaults: UiKeyOption[], event: any): Promise<void>;
|
|
112
|
+
}
|
|
113
|
+
export declare type PluginTools = Readonly<{
|
|
114
|
+
setFinalFormatter: (formatter: FinalFormatterMiddleware | undefined) => void;
|
|
115
|
+
addFormatter: (formatter: FormatterMiddleware | undefined) => void;
|
|
116
|
+
setObserver: (observer: ObserverMiddleware | undefined) => void;
|
|
117
|
+
hasObserver: () => boolean;
|
|
118
|
+
setUi: (ui: UiMiddleware | undefined) => void;
|
|
119
|
+
hasUi: () => boolean;
|
|
120
|
+
addBackend: (backend: BackendMiddleware | undefined) => void;
|
|
121
|
+
setDevBackend: (backend: BackendDevMiddleware | undefined) => void;
|
|
122
|
+
setLanguageDetector: (languageDetector: LanguageDetectorMiddleware | undefined) => void;
|
|
123
|
+
setLanguageStorage: (languageStorage: LanguageStorageMiddleware | undefined) => void;
|
|
124
|
+
}>;
|
|
125
|
+
export declare type TolgeePlugin = (tolgee: TolgeeInstance, tools: PluginTools) => TolgeeInstance;
|
|
126
|
+
export declare type FormatErrorHandler = (error: string, info: TranslatePropsInternal) => string;
|
|
127
|
+
export declare type OnFormatError = string | FormatErrorHandler;
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tolgee/core",
|
|
3
|
-
"version": "5.0.0
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Library providing ability to translate messages directly in context of developed application.",
|
|
5
5
|
"main": "./dist/tolgee.cjs.js",
|
|
6
|
-
"module": "./dist/tolgee.esm.
|
|
6
|
+
"module": "./dist/tolgee.esm.js",
|
|
7
7
|
"types": "./lib/index.d.ts",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"declaration": true,
|
|
22
22
|
"exports": {
|
|
23
23
|
"require": "./dist/tolgee.cjs.js",
|
|
24
|
-
"import": "./dist/tolgee.esm.
|
|
24
|
+
"import": "./dist/tolgee.esm.js"
|
|
25
25
|
},
|
|
26
26
|
"directories": {
|
|
27
27
|
"lib": "lib",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"@types/node": "^17.0.8",
|
|
50
50
|
"@types/testing-library__jest-dom": "^5.14.5",
|
|
51
51
|
"concurrently": "7.3.0",
|
|
52
|
+
"intl-messageformat": "^9.9.1",
|
|
52
53
|
"jest": "^27.2.4",
|
|
53
54
|
"jest-fetch-mock": "^3.0.3",
|
|
54
55
|
"rollup": "^2.56.3",
|
|
@@ -61,5 +62,5 @@
|
|
|
61
62
|
"publishConfig": {
|
|
62
63
|
"access": "public"
|
|
63
64
|
},
|
|
64
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "7219c4f801aba29347a7c5c251178c2948432d24"
|
|
65
66
|
}
|