2025-06-06 16:21:20 -07:00
|
|
|
/**
|
|
|
|
|
* @license
|
|
|
|
|
* Copyright 2025 Google LLC
|
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
*/
|
|
|
|
|
|
2025-12-09 16:38:33 -08:00
|
|
|
import { getPackageJson } from './package.js';
|
2025-10-29 13:23:35 -07:00
|
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
|
import path from 'node:path';
|
|
|
|
|
|
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
|
|
|
const __dirname = path.dirname(__filename);
|
2025-06-18 09:57:17 -07:00
|
|
|
|
2026-02-11 12:01:50 -05:00
|
|
|
let versionPromise: Promise<string> | undefined;
|
|
|
|
|
|
|
|
|
|
export function getVersion(): Promise<string> {
|
|
|
|
|
if (versionPromise) {
|
|
|
|
|
return versionPromise;
|
|
|
|
|
}
|
|
|
|
|
versionPromise = (async () => {
|
|
|
|
|
const pkgJson = await getPackageJson(__dirname);
|
|
|
|
|
return process.env['CLI_VERSION'] || pkgJson?.version || 'unknown';
|
|
|
|
|
})();
|
|
|
|
|
return versionPromise;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** For testing purposes only */
|
|
|
|
|
export function resetVersionCache(): void {
|
|
|
|
|
versionPromise = undefined;
|
2025-06-06 16:21:20 -07:00
|
|
|
}
|