From 2f5af2ceb51559424f66468f681d129de68a2303 Mon Sep 17 00:00:00 2001 From: Hsi <94444077+Hsiii@users.noreply.github.com> Date: Wed, 24 Jun 2026 17:35:49 +0800 Subject: [PATCH] fix(docs): allow icon popularity prebuild without token (#4481) Co-authored-by: Eric Fennis --- docs/scripts/writeiconPopularity.mts | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs/scripts/writeiconPopularity.mts b/docs/scripts/writeiconPopularity.mts index 0d1d617b2..0ef0fb924 100644 --- a/docs/scripts/writeiconPopularity.mts +++ b/docs/scripts/writeiconPopularity.mts @@ -35,9 +35,20 @@ interface AnalyticsResponse { }[]; } +const writeIconPopularity = async (iconVisitCounts: Record) => { + const writePopularityPromises = Object.entries(iconVisitCounts).map(([iconName, count]) => { + const location = path.resolve(iconPopularityDirectory, `${iconName}.json`); + return fs.promises.writeFile(location, JSON.stringify({ count }, null, 2), 'utf-8'); + }); + + await Promise.all(writePopularityPromises); + console.log('Successfully written icon popularity data for', writePopularityPromises.length, 'icons.'); +}; + if (process.env.LUCIDE_ANALYTICS_TOKEN === undefined) { - console.error('LUCIDE_ANALYTICS_TOKEN environment variable is not set. Please set it to fetch analytics data.'); - process.exit(1); + console.warn('LUCIDE_ANALYTICS_TOKEN environment variable is not set. Writing default icon popularity data.'); + await writeIconPopularity(defaultIconNamePopularity); + process.exit(0); } try { @@ -85,15 +96,9 @@ try { return acc; }, defaultIconNamePopularity); - const writePopularityPromises = Object.entries(iconVisitCounts).map(([iconName, count]) => { - const location = path.resolve(iconPopularityDirectory, `${iconName}.json`); - return fs.promises.writeFile(location, JSON.stringify({ count }, null, 2), 'utf-8'); - }); - - await Promise.all(writePopularityPromises); - console.log('Successfully written icon popularity data for', writePopularityPromises.length, 'icons.'); + await writeIconPopularity(iconVisitCounts); } catch (error) { console.error('Error fetching analytics data:', error); + await writeIconPopularity(defaultIconNamePopularity); } -