Files
ftb-project-management/apps/web/lib/runtime-version.ts
2026-07-06 14:45:44 +08:00

37 lines
987 B
TypeScript

type RuntimeEnv = {
NEXT_PUBLIC_APP_VERSION?: string;
NEXT_PUBLIC_APP_BUILD_TIME?: string;
};
export interface ClientRuntimeVersion {
service: 'web';
version: string;
buildTime: string;
}
export interface ServerRuntimeVersion {
service: 'server';
version: string;
buildTime: string;
imageTag: string;
}
export function getClientRuntimeVersion(
env: RuntimeEnv = {
NEXT_PUBLIC_APP_VERSION: process.env.NEXT_PUBLIC_APP_VERSION,
NEXT_PUBLIC_APP_BUILD_TIME: process.env.NEXT_PUBLIC_APP_BUILD_TIME,
},
): ClientRuntimeVersion {
return {
service: 'web',
version: env.NEXT_PUBLIC_APP_VERSION || 'unknown',
buildTime: env.NEXT_PUBLIC_APP_BUILD_TIME || '',
};
}
export function shouldPromptForNewRuntimeVersion(clientVersion: string, serverVersion: string): boolean {
if (!clientVersion || !serverVersion) return false;
if (clientVersion === 'unknown' || serverVersion === 'unknown') return false;
return clientVersion !== serverVersion;
}