Skip to content

Commit

Permalink
experimental: fix devtools-if (#450)
Browse files Browse the repository at this point in the history
* experimental: fix devtools-if

* fix: unit tests
  • Loading branch information
kazupon committed Apr 10, 2021
1 parent 78c823d commit 57cdea8
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 15 deletions.
4 changes: 2 additions & 2 deletions packages/core-base/src/devtools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export function initI18nDevTools(
): void {
// TODO: queue if devtools is undefined
devtools &&
devtools.emit(IntlifyDevToolsHooks.I18N_INIT, {
devtools.emit(IntlifyDevToolsHooks.I18nInit, {
timestamp: Date.now(),
i18n,
version,
Expand All @@ -31,7 +31,7 @@ export function initI18nDevTools(
}

export const translateDevTools = /* #__PURE__*/ createDevToolsHook(
IntlifyDevToolsHooks.FUNCTION_TRANSLATE
IntlifyDevToolsHooks.FunctionTranslate
)

function createDevToolsHook(hook: IntlifyDevToolsHooks) {
Expand Down
6 changes: 3 additions & 3 deletions packages/core-base/test/devtools.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ afterEach(() => {

test('initI18nDevTools', () => {
const fn = jest.fn()
devtools!.on(IntlifyDevToolsHooks.I18N_INIT, fn)
devtools!.on(IntlifyDevToolsHooks.I18nInit, fn)

const meta = { framework: 'Vue' }
const ctx = createCoreContext({
Expand All @@ -46,7 +46,7 @@ test('initI18nDevTools', () => {
describe('translateDevTools', () => {
test('basic', () => {
const fn = jest.fn()
devtools!.on(IntlifyDevToolsHooks.FUNCTION_TRANSLATE, fn)
devtools!.on(IntlifyDevToolsHooks.FunctionTranslate, fn)

const meta = { __INTLIFY_META__: 'xxx', framework: 'Vue' }
const HELLO = 'Hello {name}!'
Expand All @@ -73,7 +73,7 @@ describe('translateDevTools', () => {

test('fallback', () => {
const fn = jest.fn()
devtools!.on(IntlifyDevToolsHooks.FUNCTION_TRANSLATE, fn)
devtools!.on(IntlifyDevToolsHooks.FunctionTranslate, fn)

const HELLO = 'やあ {name}!'
const ctx = createCoreContext({
Expand Down
18 changes: 10 additions & 8 deletions packages/devtools-if/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,24 @@ export interface IntlifyRecord {
types: Record<string, string | Symbol> // TODO
}

export const enum IntlifyDevToolsHooks {
I18N_INIT = 'i18n:init',
FUNCTION_TRANSLATE = 'function:translate'
}
export const IntlifyDevToolsHooks = {
I18nInit: 'i18n:init',
FunctionTranslate: 'function:translate'
} as const

export type AdditionalPayloads = {
meta?: Record<string, unknown>
}

export type IntlifyDevToolsHooks = typeof IntlifyDevToolsHooks[keyof typeof IntlifyDevToolsHooks]

export type IntlifyDevToolsHookPayloads = {
[IntlifyDevToolsHooks.I18N_INIT]: {
[IntlifyDevToolsHooks.I18nInit]: {
timestamp: number
i18n: unknown // TODO:
version: string
} & AdditionalPayloads
[IntlifyDevToolsHooks.FUNCTION_TRANSLATE]: {
[IntlifyDevToolsHooks.FunctionTranslate]: {
timestamp: number
message: string | number
key: string
Expand All @@ -32,8 +34,8 @@ export type IntlifyDevToolsHookPayloads = {
}

export type IntlifyDevToolsEmitterHooks = {
[IntlifyDevToolsHooks.I18N_INIT]: IntlifyDevToolsHookPayloads[IntlifyDevToolsHooks.I18N_INIT]
[IntlifyDevToolsHooks.FUNCTION_TRANSLATE]: IntlifyDevToolsHookPayloads[IntlifyDevToolsHooks.FUNCTION_TRANSLATE]
[IntlifyDevToolsHooks.I18nInit]: IntlifyDevToolsHookPayloads[typeof IntlifyDevToolsHooks.I18nInit]
[IntlifyDevToolsHooks.FunctionTranslate]: IntlifyDevToolsHookPayloads[typeof IntlifyDevToolsHooks.FunctionTranslate]
}

export type IntlifyDevToolsEmitter = Emittable<IntlifyDevToolsEmitterHooks>
4 changes: 2 additions & 2 deletions packages/vue-i18n/test/i18n.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -867,8 +867,8 @@ test('Intlify devtools hooking', () => {

const fnI18nInit = jest.fn()
const fnTranslate = jest.fn()
emitter.on(IntlifyDevToolsHooks.I18N_INIT, fnI18nInit)
emitter.on(IntlifyDevToolsHooks.FUNCTION_TRANSLATE, fnTranslate)
emitter.on(IntlifyDevToolsHooks.I18nInit, fnI18nInit)
emitter.on(IntlifyDevToolsHooks.FunctionTranslate, fnTranslate)

const i18n = createI18n({
locale: 'en',
Expand Down

0 comments on commit 57cdea8

Please sign in to comment.