* Get the latest version from npm registry.
()
| 65 | * Get the latest version from npm registry. |
| 66 | */ |
| 67 | async function getLatestVersion(): Promise<string | null> { |
| 68 | const result = await execFileNoThrowWithCwd( |
| 69 | 'npm', |
| 70 | ['view', `${PACKAGE_NAME}@latest`, 'version', '--prefer-online'], |
| 71 | { abortSignal: AbortSignal.timeout(10_000), cwd: homedir() }, |
| 72 | ) |
| 73 | if (result.code !== 0) { |
| 74 | logForDebugging(`npm view failed: ${result.stderr}`) |
| 75 | return null |
| 76 | } |
| 77 | return result.stdout.trim() |
| 78 | } |
| 79 | |
| 80 | /** |
| 81 | * Compare two semver strings. Returns true if a >= b. |
no test coverage detected