From 9e0c6ff9cca8553c05d818af6da0ea83c5ff51ce Mon Sep 17 00:00:00 2001 From: tobinio Date: Sun, 20 Apr 2025 13:09:40 +0200 Subject: [PATCH] better handle version with limited data --- server/utils/export/projectStats.ts | 24 ++++++++++++++---------- server/utils/processing/aggregate.ts | 2 -- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/server/utils/export/projectStats.ts b/server/utils/export/projectStats.ts index 9c4da2c..92c59b4 100644 --- a/server/utils/export/projectStats.ts +++ b/server/utils/export/projectStats.ts @@ -98,7 +98,9 @@ export async function exportStatsOverTime( const date = firstDate; - while (true) { + let hasData = true; + while (hasData) { + hasData = false; const stats = await getProjectStats(date, type, versionCategory, exclusive); if (stats instanceof Error) { @@ -109,19 +111,21 @@ export async function exportStatsOverTime( statsOverTime.versions.splice(0, 0, dateToFormatted(date)); - outer: for (const data of stats.data) { - const versionData = data.values[versionIndex]; + for (const data of stats.data) { + let versionData = data.values[versionIndex]; + if (versionData) hasData = true; if (!versionData) { - consola.warn(`no version data - ${stats}`); - continue; + versionData = { versions: 0, downloads: 0, count: 0 }; } - for (const dataOverTime of statsOverTime.data) { - if (dataOverTime.name === data.name) { - dataOverTime.values.splice(0, 0, versionData); - continue outer; - } + const loaderIndex = statsOverTime.data.findIndex((loader) => { + return loader.name === data.name; + }); + + if (loaderIndex !== -1) { + statsOverTime.data[loaderIndex].values.splice(0, 0, versionData); + continue; } statsOverTime.data.push({ diff --git a/server/utils/processing/aggregate.ts b/server/utils/processing/aggregate.ts index 0198965..7e268ba 100644 --- a/server/utils/processing/aggregate.ts +++ b/server/utils/processing/aggregate.ts @@ -2,8 +2,6 @@ import { align } from "consola/utils"; import type { StatExport } from "~~/shared/types/types"; export function fracture(data: StatExport): StatExport { - data.labels.splice(0, 1); - data.data.map((value) => { const data = []; -- 2.54.0