Compare commits

..

1 Commits

Author SHA1 Message Date
95fa4f8b0b 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.
2025-10-19 22:56:35 +00:00
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;