a6cbcc273e
Made-with: Cursor
25 lines
955 B
TypeScript
25 lines
955 B
TypeScript
import { app } from 'electron';
|
|
|
|
/**
|
|
* Семантическая версия приложения: из упакованного приложения — `app.getVersion()` (= `version` из package.json),
|
|
* в dev при запуске через npm — обычно то же; иначе fallback на `npm_package_version` / `0.0.0`.
|
|
*/
|
|
export function getAppSemanticVersion(): string {
|
|
try {
|
|
const v = app.getVersion();
|
|
if (typeof v === 'string' && v.trim().length > 0) {
|
|
return v.trim();
|
|
}
|
|
} catch {
|
|
/* вне процесса Electron */
|
|
}
|
|
const fromEnv = process.env.npm_package_version?.trim();
|
|
return fromEnv !== undefined && fromEnv.length > 0 ? fromEnv : '0.0.0';
|
|
}
|
|
|
|
/** Необязательный номер сборки из CI (`DND_BUILD_NUMBER`). */
|
|
export function getOptionalBuildNumber(): string | null {
|
|
const b = process.env.DND_BUILD_NUMBER?.trim();
|
|
return b && b.length > 0 ? b : null;
|
|
}
|