fix(update): normalize version strings for correct comparison
All checks were successful
CI / Type Check & Lint (push) Successful in 5s
CI / Build Test (Current Platform) (push) Successful in 5s
Release / build-and-release (push) Successful in 46s
CI / Build All Platforms (push) Successful in 50s

The version check was comparing "4.0.8" (no prefix) with "v4.0.8"
(with prefix), causing it to always think an update was available.

Now both versions are normalized to have the "v" prefix before
comparison, so "Already up to date!" works correctly.
This commit is contained in:
2025-10-19 22:56:12 +00:00
parent c2f2f1e2ee
commit 95fa4f8b0b
2 changed files with 9 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "@serve.zone/nupst", "name": "@serve.zone/nupst",
"version": "4.0.8", "version": "4.0.9",
"exports": "./mod.ts", "exports": "./mod.ts",
"tasks": { "tasks": {
"dev": "deno run --allow-all mod.ts", "dev": "deno run --allow-all mod.ts",

View File

@@ -145,12 +145,16 @@ export class ServiceHandler {
const release = JSON.parse(response); const release = JSON.parse(response);
const latestVersion = release.tag_name; // e.g., "v4.0.7" const latestVersion = release.tag_name; // e.g., "v4.0.7"
logger.dim(`Current version: ${currentVersion}`); // Normalize versions for comparison (ensure both have "v" prefix)
logger.dim(`Latest version: ${latestVersion}`); const normalizedCurrent = currentVersion.startsWith('v') ? currentVersion : `v${currentVersion}`;
const normalizedLatest = latestVersion.startsWith('v') ? latestVersion : `v${latestVersion}`;
logger.dim(`Current version: ${normalizedCurrent}`);
logger.dim(`Latest version: ${normalizedLatest}`);
console.log(''); console.log('');
// Compare versions (both are in format "v4.0.7") // Compare normalized versions
if (currentVersion === latestVersion) { if (normalizedCurrent === normalizedLatest) {
logger.success('Already up to date!'); logger.success('Already up to date!');
console.log(''); console.log('');
return; return;