@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
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { EventEmitterSelective } from './EventEmitterSelective';
|
|
2
|
-
|
|
3
|
-
describe('event emitter selective', () => {
|
|
4
|
-
it('subscribes to key', () => {
|
|
5
|
-
const emitter = EventEmitterSelective<void>();
|
|
6
|
-
const handler = jest.fn();
|
|
7
|
-
const listener = emitter.listenSome(handler);
|
|
8
|
-
listener.subscribeKey({ key: 'test' });
|
|
9
|
-
listener.subscribeKey({ key: 'abcd' });
|
|
10
|
-
|
|
11
|
-
emitter.emit({ key: 'test' });
|
|
12
|
-
emitter.emit({ key: 'youda' });
|
|
13
|
-
expect(handler).toBeCalledTimes(1);
|
|
14
|
-
listener.unsubscribe();
|
|
15
|
-
emitter.emit();
|
|
16
|
-
expect(handler).toBeCalledTimes(1);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it('subscribes to key with namespaces', () => {
|
|
20
|
-
const emitter = EventEmitterSelective<void>();
|
|
21
|
-
const handler = jest.fn();
|
|
22
|
-
const listener = emitter.listenSome(handler);
|
|
23
|
-
|
|
24
|
-
listener.subscribeKey({ key: 'test', ns: 'common' });
|
|
25
|
-
listener.subscribeKey({ key: 'abcd', ns: ['test', 'abcd'] });
|
|
26
|
-
|
|
27
|
-
emitter.emit({ key: 'youda', ns: ['common'] });
|
|
28
|
-
emitter.emit({ key: 'test', ns: ['youda'] });
|
|
29
|
-
expect(handler).toBeCalledTimes(0);
|
|
30
|
-
emitter.emit({ key: 'abcd', ns: ['abcd'] });
|
|
31
|
-
emitter.emit({ ns: ['test'] });
|
|
32
|
-
expect(handler).toBeCalledTimes(2);
|
|
33
|
-
listener.unsubscribe();
|
|
34
|
-
emitter.emit();
|
|
35
|
-
expect(handler).toBeCalledTimes(2);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('unsubscribes', () => {
|
|
39
|
-
const emitter = EventEmitterSelective<void>();
|
|
40
|
-
const handler = jest.fn();
|
|
41
|
-
const listener = emitter.listenSome(handler);
|
|
42
|
-
|
|
43
|
-
listener.subscribeKey({ key: 'test', ns: 'common' });
|
|
44
|
-
listener.subscribeKey({ key: 'abcd', ns: ['test', 'abcd'] });
|
|
45
|
-
|
|
46
|
-
emitter.emit({ key: 'youda', ns: ['common'] });
|
|
47
|
-
emitter.emit({ key: 'test', ns: ['youda'] });
|
|
48
|
-
expect(handler).toBeCalledTimes(0);
|
|
49
|
-
emitter.emit({ key: 'abcd', ns: ['abcd'] });
|
|
50
|
-
emitter.emit({ ns: ['test'] });
|
|
51
|
-
expect(handler).toBeCalledTimes(2);
|
|
52
|
-
|
|
53
|
-
listener.unsubscribeKey({ key: 'abcd', ns: ['test', 'abcd'] });
|
|
54
|
-
emitter.emit({ key: 'abcd' });
|
|
55
|
-
emitter.emit({ ns: ['test'] });
|
|
56
|
-
|
|
57
|
-
listener.unsubscribe();
|
|
58
|
-
emitter.emit();
|
|
59
|
-
expect(handler).toBeCalledTimes(2);
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it('groups events correctly', async () => {
|
|
63
|
-
const emitter = EventEmitterSelective<void>();
|
|
64
|
-
const handler = jest.fn();
|
|
65
|
-
const hanlderAll = jest.fn();
|
|
66
|
-
const listener = emitter.listenSome(handler);
|
|
67
|
-
const listenerAll = emitter.listen(hanlderAll);
|
|
68
|
-
|
|
69
|
-
listener.subscribeKey({ key: 'abcd', ns: ['test', 'abcd'] });
|
|
70
|
-
|
|
71
|
-
emitter.emit({ key: 'abcd' }, true);
|
|
72
|
-
emitter.emit({ ns: ['opqrst'] }, true);
|
|
73
|
-
|
|
74
|
-
await Promise.resolve();
|
|
75
|
-
|
|
76
|
-
expect(hanlderAll).toBeCalledTimes(1);
|
|
77
|
-
expect(handler).toBeCalledTimes(1);
|
|
78
|
-
|
|
79
|
-
emitter.emit({ key: 'youda', ns: ['test'] }, true);
|
|
80
|
-
emitter.emit({ key: 'filda', ns: ['test'] });
|
|
81
|
-
|
|
82
|
-
expect(hanlderAll).toBeCalledTimes(2);
|
|
83
|
-
expect(handler).toBeCalledTimes(1);
|
|
84
|
-
|
|
85
|
-
listener.unsubscribe();
|
|
86
|
-
listenerAll.unsubscribe();
|
|
87
|
-
emitter.emit();
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
it('subscribes to ns only', async () => {
|
|
91
|
-
const emitter = EventEmitterSelective<void>();
|
|
92
|
-
const handler = jest.fn();
|
|
93
|
-
const listener = emitter.listenSome(handler);
|
|
94
|
-
listener.subscribeNs(['test']);
|
|
95
|
-
|
|
96
|
-
emitter.emit({ key: 'youda' });
|
|
97
|
-
expect(handler).toBeCalledTimes(1);
|
|
98
|
-
|
|
99
|
-
emitter.emit({ ns: ['test'] });
|
|
100
|
-
expect(handler).toBeCalledTimes(2);
|
|
101
|
-
|
|
102
|
-
emitter.emit({ ns: ['youda'] });
|
|
103
|
-
expect(handler).toBeCalledTimes(2);
|
|
104
|
-
|
|
105
|
-
emitter.emit({ key: 'youda', ns: ['youda'] });
|
|
106
|
-
expect(handler).toBeCalledTimes(2);
|
|
107
|
-
});
|
|
108
|
-
});
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { getFallbackArray } from '../Controller/State/helpers';
|
|
2
|
-
import {
|
|
3
|
-
FallbackNSTranslation,
|
|
4
|
-
KeyDescriptor,
|
|
5
|
-
KeyDescriptorInternal,
|
|
6
|
-
ListenerHandler,
|
|
7
|
-
ListenerHandlerEvent,
|
|
8
|
-
} from '../types';
|
|
9
|
-
|
|
10
|
-
type HandlerWrapperType = {
|
|
11
|
-
fn: ListenerHandler<undefined>;
|
|
12
|
-
keys: Map<string, number>;
|
|
13
|
-
namespaces: Map<string | undefined, number>;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
function incrementInMap(map: Map<any, number>, value: any) {
|
|
17
|
-
const currNum = map.get(value) || 0;
|
|
18
|
-
map.set(value, currNum + 1);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function decrementInMap(map: Map<any, number>, value: any) {
|
|
22
|
-
let currNum = map.get(value) || 1;
|
|
23
|
-
currNum -= 1;
|
|
24
|
-
if (currNum <= 0) {
|
|
25
|
-
map.delete(value);
|
|
26
|
-
} else {
|
|
27
|
-
map.set(value, currNum);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export const EventEmitterSelective = <T>() => {
|
|
32
|
-
const listeners: Set<ListenerHandler<T>> = new Set();
|
|
33
|
-
const partialListeners: Set<HandlerWrapperType> = new Set();
|
|
34
|
-
|
|
35
|
-
const listen = (handler: ListenerHandler<T>) => {
|
|
36
|
-
listeners.add(handler);
|
|
37
|
-
const result = {
|
|
38
|
-
unsubscribe: () => {
|
|
39
|
-
listeners.delete(handler);
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
return result;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
const listenSome = (handler: ListenerHandler<undefined>) => {
|
|
46
|
-
const handlerWrapper = {
|
|
47
|
-
fn: (e: ListenerHandlerEvent<undefined>) => {
|
|
48
|
-
handler(e);
|
|
49
|
-
},
|
|
50
|
-
keys: new Map<string, number>(),
|
|
51
|
-
namespaces: new Map<string | undefined, number>(),
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
partialListeners.add(handlerWrapper);
|
|
55
|
-
|
|
56
|
-
const result = {
|
|
57
|
-
unsubscribe: () => {
|
|
58
|
-
partialListeners.delete(handlerWrapper);
|
|
59
|
-
},
|
|
60
|
-
subscribeNs: (ns: FallbackNSTranslation) => {
|
|
61
|
-
getFallbackArray(ns).forEach((val) =>
|
|
62
|
-
incrementInMap(handlerWrapper.namespaces, val)
|
|
63
|
-
);
|
|
64
|
-
return result;
|
|
65
|
-
},
|
|
66
|
-
unsubscribeNs: (ns: FallbackNSTranslation) => {
|
|
67
|
-
getFallbackArray(ns).forEach((val) =>
|
|
68
|
-
decrementInMap(handlerWrapper.namespaces, val)
|
|
69
|
-
);
|
|
70
|
-
return result;
|
|
71
|
-
},
|
|
72
|
-
subscribeKey: (descriptor: KeyDescriptor) => {
|
|
73
|
-
const { key, ns } = descriptor;
|
|
74
|
-
incrementInMap(handlerWrapper.keys, key);
|
|
75
|
-
getFallbackArray(ns).forEach((val) =>
|
|
76
|
-
incrementInMap(handlerWrapper.namespaces, val)
|
|
77
|
-
);
|
|
78
|
-
if (ns === undefined) {
|
|
79
|
-
// subscribing to all namespaces
|
|
80
|
-
incrementInMap(handlerWrapper.namespaces, undefined);
|
|
81
|
-
}
|
|
82
|
-
return result;
|
|
83
|
-
},
|
|
84
|
-
unsubscribeKey: (descriptor: KeyDescriptor) => {
|
|
85
|
-
const { key, ns } = descriptor;
|
|
86
|
-
decrementInMap(handlerWrapper.keys, key);
|
|
87
|
-
getFallbackArray(ns).forEach((val) =>
|
|
88
|
-
decrementInMap(handlerWrapper.namespaces, val)
|
|
89
|
-
);
|
|
90
|
-
if (ns === undefined) {
|
|
91
|
-
// subscribing to all namespaces
|
|
92
|
-
decrementInMap(handlerWrapper.namespaces, undefined);
|
|
93
|
-
}
|
|
94
|
-
return result;
|
|
95
|
-
},
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
return result;
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
const callHandlers = (key: string | undefined, ns: string[] | undefined) => {
|
|
102
|
-
partialListeners.forEach((handler) => {
|
|
103
|
-
const nsMentioned = ns !== undefined;
|
|
104
|
-
const nsMatches =
|
|
105
|
-
handler.namespaces.has(undefined) ||
|
|
106
|
-
ns?.findIndex((ns) => handler.namespaces.has(ns)) !== -1;
|
|
107
|
-
const keyMentioned = key !== undefined;
|
|
108
|
-
const keyMatches =
|
|
109
|
-
key === undefined || handler.keys.has(key) || handler.keys.size === 0;
|
|
110
|
-
if ((!nsMentioned || nsMatches) && (!keyMentioned || keyMatches)) {
|
|
111
|
-
handler.fn({ value: undefined as any });
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
let queue: (KeyDescriptorInternal | undefined)[] = [];
|
|
117
|
-
const solveQueue = () => {
|
|
118
|
-
if (queue.length === 0) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
listeners.forEach((handler) => {
|
|
122
|
-
handler({ value: undefined as any });
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
let namespaces = [] as string[] | undefined;
|
|
126
|
-
let keys = [] as string[] | undefined;
|
|
127
|
-
queue.forEach((descriptor) => {
|
|
128
|
-
if (descriptor?.ns === undefined) {
|
|
129
|
-
namespaces = undefined;
|
|
130
|
-
} else if (namespaces !== undefined) {
|
|
131
|
-
namespaces = [...namespaces, ...descriptor.ns];
|
|
132
|
-
}
|
|
133
|
-
if (descriptor?.key === undefined) {
|
|
134
|
-
keys = undefined;
|
|
135
|
-
} else if (keys !== undefined) {
|
|
136
|
-
keys = [...keys, descriptor.key];
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
(keys || [undefined]).forEach((key) => {
|
|
140
|
-
callHandlers(key, namespaces);
|
|
141
|
-
});
|
|
142
|
-
queue = [];
|
|
143
|
-
};
|
|
144
|
-
const emit = (descriptor?: KeyDescriptorInternal, delayed?: boolean) => {
|
|
145
|
-
queue.push(descriptor);
|
|
146
|
-
if (!delayed) {
|
|
147
|
-
solveQueue();
|
|
148
|
-
} else {
|
|
149
|
-
Promise.resolve().then(() => {
|
|
150
|
-
solveQueue();
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
return Object.freeze({ listenSome, listen, emit });
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
export type EventEmitterSelectiveType<T> = ReturnType<
|
|
159
|
-
typeof EventEmitterSelective<T>
|
|
160
|
-
>;
|
package/src/Events/Events.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from './EventEmitter';
|
|
2
|
-
import { EventEmitterSelective } from './EventEmitterSelective';
|
|
3
|
-
import {
|
|
4
|
-
CacheDescriptorWithKey,
|
|
5
|
-
KeyDescriptorInternal,
|
|
6
|
-
ListenerHandler,
|
|
7
|
-
TolgeeOn,
|
|
8
|
-
} from '../types';
|
|
9
|
-
|
|
10
|
-
export const Events = () => {
|
|
11
|
-
const onPendingLanguageChange = EventEmitter<string>();
|
|
12
|
-
const onLanguageChange = EventEmitter<string>();
|
|
13
|
-
const onKeyChange = EventEmitter<KeyDescriptorInternal>();
|
|
14
|
-
const onLoadingChange = EventEmitter<boolean>();
|
|
15
|
-
const onFetchingChange = EventEmitter<boolean>();
|
|
16
|
-
const onInitialLoaded = EventEmitter<void>();
|
|
17
|
-
const onKeyUpdate = EventEmitterSelective<void>();
|
|
18
|
-
const onCacheChange = EventEmitter<CacheDescriptorWithKey>();
|
|
19
|
-
const onRunningChange = EventEmitter<boolean>();
|
|
20
|
-
|
|
21
|
-
onInitialLoaded.listen(() => onKeyUpdate.emit());
|
|
22
|
-
onLanguageChange.listen(() => onKeyUpdate.emit());
|
|
23
|
-
onCacheChange.listen(({ value }) => {
|
|
24
|
-
onKeyUpdate.emit({ ns: [value.namespace], key: value.key }, true);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
const on: TolgeeOn = (event, handler): any => {
|
|
28
|
-
switch (event) {
|
|
29
|
-
case 'pendingLanguage':
|
|
30
|
-
return onPendingLanguageChange.listen(
|
|
31
|
-
handler as ListenerHandler<string>
|
|
32
|
-
);
|
|
33
|
-
case 'language':
|
|
34
|
-
return onLanguageChange.listen(handler as ListenerHandler<string>);
|
|
35
|
-
case 'loading':
|
|
36
|
-
return onLoadingChange.listen(handler as ListenerHandler<boolean>);
|
|
37
|
-
case 'fetching':
|
|
38
|
-
return onFetchingChange.listen(handler as ListenerHandler<boolean>);
|
|
39
|
-
case 'initialLoad':
|
|
40
|
-
return onInitialLoaded.listen(handler as ListenerHandler<void>);
|
|
41
|
-
case 'running':
|
|
42
|
-
return onRunningChange.listen(handler as ListenerHandler<boolean>);
|
|
43
|
-
case 'cache':
|
|
44
|
-
return onCacheChange.listen(
|
|
45
|
-
handler as ListenerHandler<CacheDescriptorWithKey>
|
|
46
|
-
);
|
|
47
|
-
case 'keyUpdate':
|
|
48
|
-
return onKeyUpdate.listen(handler as ListenerHandler<void>);
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
return Object.freeze({
|
|
53
|
-
onPendingLanguageChange,
|
|
54
|
-
onLanguageChange,
|
|
55
|
-
onKeyChange,
|
|
56
|
-
onKeyUpdate,
|
|
57
|
-
onLoadingChange,
|
|
58
|
-
onFetchingChange,
|
|
59
|
-
onInitialLoaded,
|
|
60
|
-
onRunningChange,
|
|
61
|
-
onCacheChange,
|
|
62
|
-
on,
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
export type EventServiceType = ReturnType<typeof Events>;
|
package/src/Tolgee.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { Events } from './Events/Events';
|
|
2
|
-
import { Controller } from './Controller/Controller';
|
|
3
|
-
import { Options, TolgeeInstance, TolgeePlugin } from './types';
|
|
4
|
-
|
|
5
|
-
export const Tolgee = (options?: Partial<Options>): TolgeeInstance => {
|
|
6
|
-
const events = Events();
|
|
7
|
-
const controller = Controller({
|
|
8
|
-
events,
|
|
9
|
-
options,
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
const pluginTools = Object.freeze({
|
|
13
|
-
setFinalFormatter: controller.setFinalFormatter,
|
|
14
|
-
addFormatter: controller.addFormatter,
|
|
15
|
-
setObserver: controller.setObserver,
|
|
16
|
-
getObserver: controller.getObserver,
|
|
17
|
-
setUi: controller.setUi,
|
|
18
|
-
getUi: controller.getUi,
|
|
19
|
-
setDevBackend: controller.setDevBackend,
|
|
20
|
-
addBackend: controller.addBackend,
|
|
21
|
-
setLanguageDetector: controller.setLanguageDetector,
|
|
22
|
-
setLanguageStorage: controller.setLanguageStorage,
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
const withRestart = (callback: () => void) => {
|
|
26
|
-
const wasRunning = controller.isRunning();
|
|
27
|
-
wasRunning && controller.stop();
|
|
28
|
-
callback();
|
|
29
|
-
wasRunning && controller.run();
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const tolgee: TolgeeInstance = Object.freeze({
|
|
33
|
-
// event listeners
|
|
34
|
-
on: events.on,
|
|
35
|
-
onKeyUpdate: events.onKeyUpdate.listenSome,
|
|
36
|
-
|
|
37
|
-
// state
|
|
38
|
-
getLanguage: controller.getLanguage,
|
|
39
|
-
getPendingLanguage: controller.getPendingLanguage,
|
|
40
|
-
changeLanguage: controller.changeLanguage,
|
|
41
|
-
changeTranslation: controller.changeTranslation,
|
|
42
|
-
addActiveNs: controller.addActiveNs,
|
|
43
|
-
removeActiveNs: controller.removeActiveNs,
|
|
44
|
-
loadRecords: controller.loadRecords,
|
|
45
|
-
loadRecord: controller.loadRecord,
|
|
46
|
-
addStaticData: controller.addStaticData,
|
|
47
|
-
getRecord: controller.getRecord,
|
|
48
|
-
getAllRecords: controller.getAllRecords,
|
|
49
|
-
isLoaded: controller.isLoaded,
|
|
50
|
-
isInitialLoading: controller.isInitialLoading,
|
|
51
|
-
isLoading: controller.isLoading,
|
|
52
|
-
isFetching: controller.isFetching,
|
|
53
|
-
isRunning: controller.isRunning,
|
|
54
|
-
run: controller.run,
|
|
55
|
-
stop: controller.stop,
|
|
56
|
-
t: controller.t,
|
|
57
|
-
highlight: controller.highlight,
|
|
58
|
-
getInitialOptions: controller.getInitialOptions,
|
|
59
|
-
isDev: controller.isDev,
|
|
60
|
-
wrap: controller.wrap,
|
|
61
|
-
unwrap: controller.unwrap,
|
|
62
|
-
|
|
63
|
-
// plugins
|
|
64
|
-
use: (plugin: TolgeePlugin | undefined) => {
|
|
65
|
-
if (plugin) {
|
|
66
|
-
withRestart(() => plugin(tolgee, pluginTools));
|
|
67
|
-
}
|
|
68
|
-
return tolgee;
|
|
69
|
-
},
|
|
70
|
-
init: (options: Partial<Options>) => {
|
|
71
|
-
withRestart(() => controller.init(options));
|
|
72
|
-
return tolgee;
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
return tolgee;
|
|
77
|
-
};
|
package/src/constants.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export const RESTRICTED_ASCENDANT_ATTRIBUTE = 'data-tolgee-restricted';
|
|
2
|
-
export const TOLGEE_ATTRIBUTE_NAME = '_tolgee';
|
|
3
|
-
export const TOLGEE_HIGHLIGHTER_CLASS = '_tolgee-highlighter';
|
|
4
|
-
export const TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE = 'data-tolgee-key-only';
|
|
5
|
-
|
|
6
|
-
// needs to be same as in @tolgee/ui package
|
|
7
|
-
export const DEVTOOLS_ID = '__tolgee_dev_tools';
|