Skip to content

Commit c980a31

Browse files
committed
refactor: replace languageToCodeMap with formatLanguage and formatLanguages functions
1 parent a107fb5 commit c980a31

4 files changed

Lines changed: 23 additions & 21 deletions

File tree

packages/cli/src/commands/exd.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { mkdir } from 'node:fs/promises'
22
import { join } from 'node:path'
33
import { createExdFilter, ExdCSVFormat } from '@ffcafe/ixion-exd'
44
import { servers } from '@ffcafe/ixion-server'
5-
import { languageToCodeMap } from '@ffcafe/ixion-utils'
5+
import { formatLanguages } from '@ffcafe/ixion-utils'
66
import type { Command } from 'commander'
77
import { parseServerVersions } from '../actions/exd-base'
88
import { buildExdFiles } from '../actions/exd-build'
@@ -406,9 +406,7 @@ export function registerExdCommand(program: Command) {
406406

407407
console.log(`📊 Exporting EXD files${description}...`)
408408
console.log(` Format: ${options.format || 'single'}`)
409-
console.log(
410-
` Languages: ${languages.map((l) => languageToCodeMap[l]).join(', ')}`,
411-
)
409+
console.log(` Languages: ${formatLanguages(languages)}`)
412410
await exportExdFilesToCSV({
413411
server,
414412
version: options.version,

packages/exd/src/csv.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
getExdPath,
99
type SqPackReader,
1010
} from '@ffcafe/ixion-sqpack'
11-
import { Language, languageToCodeMap } from '@ffcafe/ixion-utils'
11+
import { formatLanguage, Language } from '@ffcafe/ixion-utils'
1212
import { SingleBar } from 'cli-progress'
1313
import type { DefinitionProvider } from './schema/interface'
1414
import { getSaintcoinachType } from './schema/utils'
@@ -42,7 +42,7 @@ export enum ExdCSVFormat {
4242

4343
const csvName = (sheet: string, language?: Language) => {
4444
if (language) {
45-
return `${sheet}.${languageToCodeMap[language]}.csv`
45+
return `${sheet}.${formatLanguage(language)}.csv`
4646
}
4747
return `${sheet}.csv`
4848
}

packages/exd/src/strings.ts

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { mkdirSync, writeFileSync } from 'node:fs'
22
import { dirname, join } from 'node:path'
33
import { ExcelColumnDataType, type SqPackReader } from '@ffcafe/ixion-sqpack'
4-
import { Language, languageToCodeMap } from '@ffcafe/ixion-utils'
4+
import { formatLanguage, Language } from '@ffcafe/ixion-utils'
55
import { SingleBar } from 'cli-progress'
66
import { formatSeString, parseSeString } from './sestring'
77
import {
@@ -97,28 +97,24 @@ export class StringsExporter {
9797
const stringMap: Record<string, Map<string, any[]>> = {}
9898
const idSet = new Set<string>()
9999
for (const [language, reader] of readers.entries()) {
100+
const code = formatLanguage(language)
100101
try {
101102
const header = await readExhHeaderFromReader(reader, sheet)
102103
const columnIndexes = getStringColumnIndexes(header)
103104
columnCount = Math.max(columnCount, columnIndexes.length)
104105

105-
stringMap[languageToCodeMap[language]] = await readColumnsFromSheet(
106-
reader,
107-
{
108-
sheetName: sheet,
109-
header,
110-
language,
111-
columnIndexes,
112-
},
113-
)
114-
115-
for (const id of stringMap[languageToCodeMap[language]].keys()) {
106+
stringMap[code] = await readColumnsFromSheet(reader, {
107+
sheetName: sheet,
108+
header,
109+
language,
110+
columnIndexes,
111+
})
112+
113+
for (const id of stringMap[code].keys()) {
116114
idSet.add(id)
117115
}
118116
} catch {
119-
console.error(
120-
`${sheet}: Failed reading language ${languageToCodeMap[language]}`,
121-
)
117+
console.error(`${sheet}: Failed reading language ${code}`)
122118
}
123119
}
124120

packages/utils/src/language.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,11 @@ export const languageToCodeMap: Record<Language, string> = {
3232
[Language.Korean]: 'ko',
3333
[Language.ChineseTraditional2]: 'tc',
3434
}
35+
36+
export function formatLanguage(lang: Language) {
37+
return languageToCodeMap[lang] || `unk(${lang})`
38+
}
39+
40+
export function formatLanguages(arr: Language[]) {
41+
return arr.map(formatLanguage).join(', ')
42+
}

0 commit comments

Comments
 (0)