fix: Resolve variable hoisting error in version comparison API

Critical Bug Fix:
- archivedVersions was used before declaration (line 147 vs line 165)
- Caused 'Cannot access before initialization' error
- Moved versionDescriptions and archivedVersions declarations to top
- Now defined BEFORE usage in resultsWithArchived.map()

Impact: Analytics page was completely broken (stuck on loading)
Resolution: API now returns data correctly, UI functional

Error: ReferenceError: Cannot access 'g' before initialization
Fix: Proper variable ordering in route.ts
This commit is contained in:
mindesbunister
2025-11-22 15:02:43 +01:00
parent bba91c1df8
commit 0ec2896c5d

View File

@@ -118,6 +118,17 @@ export async function GET() {
}
})
// Define version metadata FIRST (before usage)
const versionDescriptions: Record<string, string> = {
'v8': 'Money Line Sticky Trend (Nov 18+) - PRODUCTION',
'v7': 'HalfTrend with toggles (deprecated)',
'v6': 'HalfTrend + BarColor (Nov 12-18) - ARCHIVED',
'v5': 'Buy/Sell Signal (pre-Nov 12) - ARCHIVED',
'unknown': 'No version tracked (pre-Nov 12) - ARCHIVED'
}
const archivedVersions = ['v5', 'v6', 'v7', 'unknown']
// Sort versions: v8 first (production), then v7, v6, v5, unknown (archived)
const versionOrder: Record<string, number> = {
'v8': 0, 'v7': 1, 'v6': 2, 'v5': 3, 'unknown': 4
@@ -128,23 +139,12 @@ export async function GET() {
return orderA - orderB
})
// Mark archived versions
// Mark archived versions (archivedVersions now defined above)
const resultsWithArchived = results.map(r => ({
...r,
archived: archivedVersions.includes(r.version)
}))
// Get version descriptions and archived status
const versionDescriptions: Record<string, string> = {
'v8': 'Money Line Sticky Trend (Nov 18+) - PRODUCTION',
'v7': 'HalfTrend with toggles (deprecated)',
'v6': 'HalfTrend + BarColor (Nov 12-18) - ARCHIVED',
'v5': 'Buy/Sell Signal (pre-Nov 12) - ARCHIVED',
'unknown': 'No version tracked (pre-Nov 12) - ARCHIVED'
}
const archivedVersions = ['v5', 'v6', 'v7', 'unknown']
return NextResponse.json({
success: true,
versions: resultsWithArchived,