1
0
mirror of synced 2025-12-19 18:10:59 -05:00
Files
docs/src/app/lib/server-context-utils.ts

46 lines
1.3 KiB
TypeScript

import { extractLanguageFromPath } from '@/app/lib/language-utils'
import { extractVersionFromPath } from '@/app/lib/version-utils'
import { getUIDataMerged } from '@/data-directory/lib/get-data'
import { type LanguageCode } from '@/languages/lib/languages'
import { createTranslationFunctions, translate } from '@/languages/lib/translation-utils'
export interface ServerAppRouterContext {
currentLanguage: LanguageCode
currentVersion: string
sitename: string
site: { data: { ui: any } }
}
/**
* Server-side context creation using filesystem data
* Use in server components where filesystem access is available
*/
export function createServerAppRouterContext(pathname: string): ServerAppRouterContext {
const language = extractLanguageFromPath(pathname)
const currentVersion = extractVersionFromPath(pathname)
const uiData = getUIDataMerged(language)
const siteName = translate(uiData, 'header.github_docs', 'GitHub Docs')
return {
currentLanguage: language,
currentVersion,
sitename: siteName,
site: { data: { ui: uiData } },
}
}
/**
* Create server-side footer with translations
*/
export function createServerFooterContent(language: LanguageCode) {
const uiData = getUIDataMerged(language)
const { t } = createTranslationFunctions(uiData, 'footer')
return {
t,
language,
footerData: uiData.footer || {},
}
}