/
devtools.ts
38 lines (32 loc) · 917 Bytes
/
devtools.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import type {
IntlifyDevToolsHooks,
IntlifyDevToolsHookPayloads,
IntlifyDevToolsEmitter
} from '@intlify/devtools-types'
let devtools: IntlifyDevToolsEmitter | null = null
export function setDevToolsHook(hook: IntlifyDevToolsEmitter | null): void {
devtools = hook
}
export function getDevToolsHook(): IntlifyDevToolsEmitter | null {
return devtools
}
export function initI18nDevTools(
i18n: unknown,
version: string,
meta?: Record<string, unknown>
): void {
// TODO: queue if devtools is undefined
devtools &&
devtools.emit('i18n:init', {
timestamp: Date.now(),
i18n,
version,
meta
})
}
export const translateDevTools =
/* #__PURE__*/ createDevToolsHook('function:translate')
function createDevToolsHook(hook: IntlifyDevToolsHooks) {
return (payloads: IntlifyDevToolsHookPayloads[IntlifyDevToolsHooks]) =>
devtools && devtools.emit(hook, payloads)
}