Skip to content

Commit 35b292e

Browse files
authored
fix: cannot infuse with external locale messages (#87)
1 parent 99de5c3 commit 35b292e

File tree

2 files changed

+6
-26
lines changed

2 files changed

+6
-26
lines changed

src/utils.ts

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -401,42 +401,22 @@ export function splitLocaleMessages (
401401
return info
402402
}, info)
403403
}, [] as ExternalLocaleMessagesParseInfo[])
404-
debug(`splitLocaleMessages: externalLocaleMessagesParseInfo = ${JSON.stringify(externalLocaleMessagesParseInfo)}`)
404+
debug('splitLocaleMessages: externalLocaleMessagesParseInfo:', externalLocaleMessagesParseInfo)
405405

406-
debug(`splitLocaleMessages: messages (before) = ${JSON.stringify(messages)}`)
406+
debug('splitLocaleMessages: messages (before):', messages)
407407
const metaExternalLocaleMessages = externalLocaleMessagesParseInfo.reduce((meta, { path, locale, namespace, filename }) => {
408-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
409-
const stack = [] as { key: string, ref: any }[]
410-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
411408
let targetLocaleMessage = messages[locale]
412409
if (namespace && isLocaleMessageDictionary(targetLocaleMessage)) {
413-
const ref1 = targetLocaleMessage
414410
targetLocaleMessage = targetLocaleMessage[namespace]
415-
stack.push({ key: namespace, ref: ref1 })
416411
}
417412
if (filename && isLocaleMessageDictionary(targetLocaleMessage)) {
418-
const ref2 = targetLocaleMessage
419413
targetLocaleMessage = targetLocaleMessage[filename]
420-
stack.push({ key: filename, ref: ref2 })
421414
}
422415
meta.push({ path, messages: deepCopy(targetLocaleMessage) })
423-
424-
// remove properties from messages
425-
let item = stack.shift()
426-
while (item) {
427-
const { ref: obj, key } = item
428-
delete obj[key]
429-
item.ref = null // remove reference
430-
item = stack.shift()
431-
}
432-
if (Object.keys(messages[locale]).length === 0) {
433-
delete messages[locale]
434-
}
435-
436416
return meta
437417
}, [] as MetaExternalLocaleMessages[])
438-
debug(`splitLocaleMessages: messages (after) = ${JSON.stringify(messages)}`)
439-
debug(`splitLocaleMessages: metaExternalLocaleMessages = ${JSON.stringify(metaExternalLocaleMessages)}`)
418+
debug('splitLocaleMessages: messages (after):', messages)
419+
debug('splitLocaleMessages: metaExternalLocaleMessages:', metaExternalLocaleMessages)
440420

441421
return { sfc: messages, external: metaExternalLocaleMessages }
442422
}

test/utils.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,10 @@ test('splitLocaleMessages: basic usage', async () => {
101101
'./test/fixtures/packages/package2/locales/**/*.json': 'package2'
102102
}
103103
const unbundleTo = './test/fixtures/packages/package1/locales/**/*.json,./test/fixtures/packages/package2/locales/**/*.json'
104-
const unbundleMatch = '([\\w]*)/([\\w]*)\\.json$'
104+
const unbundleMatch = '.*/([\\w]{2})/([\\w]*)\\.json$'
105105
const { sfc, external } = splitLocaleMessages(messages, namespaces, unbundleTo, unbundleMatch)
106106

107-
expect(sfc).toEqual(squeezeLocaleMessages)
107+
expect(sfc).toEqual(messages)
108108
external.forEach(ex => {
109109
expect(ex.messages).toMatchSnapshot()
110110
})

0 commit comments

Comments
 (0)