37 lines
987 B
TypeScript
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;
|
|
}
|