// ============================================================ // 应用常量 —— 版本号、版本类型、窗口标题 // 主进程 & 渲染进程共享 // ============================================================ import type { Edition, Platform } from '../types'; import { APP_VERSION } from './version'; /** 应用显示名称 */ export const APP_NAME = '船长·HeiXiu'; // APP_VERSION 从 ./version.ts 导入(读取 package.json),不再硬编码 // ============================================================ // 版本类型(企业版 / 个人版) // ============================================================ /** * 解析版本类型字符串 * @param raw - 环境变量值,如 "enterprise" / undefined * @returns 版本类型,默认 personal */ export function parseEdition(raw: string | undefined): Edition { if (raw === 'enterprise') return 'enterprise'; return 'personal'; } /** 版本中文名称 */ export function getEditionName(edition: Edition): string { return edition === 'enterprise' ? '企业版' : '个人版'; } // ============================================================ // 窗口标题构建 // ============================================================ /** 平台中文名称(简写) */ function platformShortName(platform: Platform): string { if (platform === 'darwin') return 'MAC'; if (platform === 'win32') return 'Windows'; return 'Linux'; } /** * 构建完整窗口标题 * 格式:船长·HeiXiu V{版本号} {平台}{版本} * 示例:"船长·HeiXiu V0.0.1 MAC企业版" * "船长·HeiXiu V0.0.1 Windows个人版" * * @param platform - 当前操作系统平台 * @param edition - 版本类型 * @param version - 可选覆盖版本号(默认 APP_VERSION) */ export function buildWindowTitle(platform: Platform, edition: Edition, version?: string): string { const ver = version ?? APP_VERSION; const os = platformShortName(platform); const edName = getEditionName(edition); return `${APP_NAME} V${ver} ${os}${edName}`; }