名称Branding变更

This commit is contained in:
biss committed 2026-09-29 10:42:28 +08:00
1 parent c74c1e3914
commit 8b5103d542
41 files changed
+282 -93

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
import { readFileSync } from 'node:fs'
export interface AppBranding {
brandName: string
institutionName: string
productName: string
shortName: string
tagline: string
description: string
}
interface AppSettings {
Branding?: Partial<Record<keyof AppBranding | Capitalize<keyof AppBranding>, unknown>>
}
const appsettings = JSON.parse(
readFileSync(new URL('../src/Jiaowu.Api/appsettings.json', import.meta.url), 'utf8'),
) as AppSettings
function required(field: keyof AppBranding): string {
const pascalCase = `${field.charAt(0).toUpperCase()}${field.slice(1)}` as Capitalize<keyof AppBranding>
const value = appsettings.Branding?.[pascalCase] ?? appsettings.Branding?.[field]
if (typeof value !== 'string' || !value.trim()) {
throw new Error(`appsettings.json 中缺少 Branding:${pascalCase}。`)
}
return value.trim()
}
export const branding: Readonly<AppBranding> = Object.freeze({
brandName: required('brandName'),
institutionName: required('institutionName'),
productName: required('productName'),
shortName: required('shortName'),
tagline: required('tagline'),
description: required('description'),
})