From 52072047788d5211c7854dd0c79c0f47ecee6080 Mon Sep 17 00:00:00 2001 From: Your Name <119736744+aborayan2022@users.noreply.github.com> Date: Mon, 23 Mar 2026 19:26:53 +0200 Subject: [PATCH] feat: update prebuild script to ensure generated SEO data is used and refactor SEO data import --- frontend/package.json | 2 +- frontend/src/seo/seoData.ts | 20 +++++++------------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 30d657d..a69e911 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "vite", - "prebuild": "node scripts/generate-seo-assets.mjs", + "prebuild": "node scripts/merge-keywords.mjs && node scripts/generate-seo-assets.mjs", "build": "tsc --noEmit && vite build", "preview": "vite preview", "lint": "eslint .", diff --git a/frontend/src/seo/seoData.ts b/frontend/src/seo/seoData.ts index 3ce98f1..407ca1d 100644 --- a/frontend/src/seo/seoData.ts +++ b/frontend/src/seo/seoData.ts @@ -1,17 +1,11 @@ // Prefer a generated SEO data file at build time if present (seoData.generated.json). // This file is optional and created by frontend/scripts/merge-keywords.mjs. -let seoSeedConfig: any; -try { - // try to load generated first - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - seoSeedConfig = (await import('@/seo/seoData.generated.json')).default; -} catch (err) { - // fallback to original - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - seoSeedConfig = (await import('@/seo/seoData.json')).default; -} +// At build time we prefer the generated SEO data file. The build's `prebuild` +// script ensures `seoData.generated.json` exists. Import it statically so the +// bundler does not need top-level await. +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import seoSeedConfig from '@/seo/seoData.generated.json'; import type { LocalizedText, LocalizedTextList, @@ -46,7 +40,7 @@ interface SeoSeedConfig { collectionPageSeeds: CollectionPageSeed[]; } -const seedConfig = seoSeedConfig as SeoSeedConfig; +const seedConfig = (seoSeedConfig as unknown) as SeoSeedConfig; function buildToolFaqs(seed: ToolPageSeed): SeoFaqTemplate[] { return [