mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-30 12:59:55 +00:00
* fix: normalize pack IDs to fix version detection for disabled packs When a pack is disabled, ComfyUI-Manager returns it with a version suffix (e.g., "ComfyUI-GGUF@1_1_4") while enabled packs don't have this suffix. This inconsistency caused disabled packs to incorrectly show as having updates available even when they were on the latest version. Changes: - Add normalizePackId utility to consistently remove version suffixes - Apply normalization in refreshInstalledList and WebSocket updates - Use the utility across conflict detection and node help modules - Ensure pack version info is preserved in the object's ver field This fixes the "Update Available" indicator incorrectly showing for disabled packs that are already on the latest version. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feature: test code added * test: packUtils test code added * test: address PR review feedback for test improvements - Remove unnecessary .not.toThrow() assertion in useManagerQueue test - Add clarifying comments for version normalization test logic - Replace 'as any' with vi.mocked() for better type safety --------- Co-authored-by: Claude <noreply@anthropic.com>
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import { mapKeys } from 'es-toolkit/compat'
|
|
|
|
/**
|
|
* Normalizes a pack ID by removing the version suffix.
|
|
*
|
|
* ComfyUI-Manager returns pack IDs in different formats:
|
|
* - Enabled packs: "packname" (without version)
|
|
* - Disabled packs: "packname@1_0_3" (with version suffix)
|
|
* - Latest versions from registry: "packname" (without version)
|
|
*
|
|
* Since the pack object itself contains the version info (ver field),
|
|
* we normalize all pack IDs to just the base name for consistent access.
|
|
* This ensures we can always find a pack by its base name (nodePack.id)
|
|
* regardless of its enabled/disabled state.
|
|
*
|
|
* @param packId - The pack ID that may contain a version suffix
|
|
* @returns The normalized pack ID without version suffix
|
|
*/
|
|
export function normalizePackId(packId: string): string {
|
|
return packId.split('@')[0]
|
|
}
|
|
|
|
/**
|
|
* Normalizes all keys in a pack record by removing version suffixes.
|
|
* This is used when receiving pack data from the server to ensure
|
|
* consistent key format across the application.
|
|
*
|
|
* @param packs - Record of packs with potentially versioned keys
|
|
* @returns Record with normalized keys
|
|
*/
|
|
export function normalizePackKeys<T>(
|
|
packs: Record<string, T>
|
|
): Record<string, T> {
|
|
return mapKeys(packs, (_value, key) => normalizePackId(key))
|
|
}
|