refactor: reuse createLangDictionary

pull/353/head
Eduardo San Martin Morote 4 years ago
parent dc9234cb3a
commit 1bb4124829

@ -4,7 +4,12 @@ import chalk from 'chalk'
import globby from 'globby' import globby from 'globby'
import { AliasOptions, UserConfig as ViteConfig } from 'vite' import { AliasOptions, UserConfig as ViteConfig } from 'vite'
import { Options as VuePluginOptions } from '@vitejs/plugin-vue' import { Options as VuePluginOptions } from '@vitejs/plugin-vue'
import { SiteData, HeadConfig, LocaleConfig } from './shared' import {
SiteData,
HeadConfig,
LocaleConfig,
createLangDictionary
} from './shared'
import { resolveAliases, APP_PATH, DEFAULT_THEME_PATH } from './alias' import { resolveAliases, APP_PATH, DEFAULT_THEME_PATH } from './alias'
import { MarkdownOptions } from './markdown/markdown' import { MarkdownOptions } from './markdown/markdown'
@ -142,6 +147,9 @@ export async function resolveSiteData(
head: userConfig.head || [], head: userConfig.head || [],
themeConfig: userConfig.themeConfig || {}, themeConfig: userConfig.themeConfig || {},
locales: userConfig.locales || {}, locales: userConfig.locales || {},
langs: createLangDictionary(
userConfig.themeConfig && userConfig.themeConfig.locales
),
customData: userConfig.customData || {} customData: userConfig.customData || {}
} }
} }

@ -36,6 +36,15 @@ function resolveLocales<T>(
return localeRoot ? locales[localeRoot] : undefined return localeRoot ? locales[localeRoot] : undefined
} }
export function createLangDictionary(locales: any | undefined) {
return locales
? Object.keys(locales).reduce((langs, path) => {
langs[path] = locales![path].label
return langs
}, {} as Record<string, string>)
: {}
}
// this merges the locales data to the main data by the route // this merges the locales data to the main data by the route
export function resolveSiteDataByRoute( export function resolveSiteDataByRoute(
siteData: SiteData, siteData: SiteData,
@ -61,12 +70,7 @@ export function resolveSiteDataByRoute(
lang: (localeData || siteData).lang, lang: (localeData || siteData).lang,
// clean the locales to reduce the bundle size // clean the locales to reduce the bundle size
locales: {}, locales: {},
langs: siteData.themeConfig.locales langs: createLangDictionary(siteData.themeConfig.locales)
? Object.keys(siteData.themeConfig.locales).reduce((locales, path) => {
locales[path] = siteData.themeConfig.locales![path].label
return locales
}, {} as Record<string, string>)
: {}
} }
} }

Loading…
Cancel
Save