From b1e60f1614df8ec8b19950cc4c7c256105d1271b Mon Sep 17 00:00:00 2001 From: Arik Chakma Date: Tue, 2 Sep 2025 22:38:12 +0600 Subject: [PATCH] fix: beginner roadmaps --- src/pages/pages.json.ts | 21 +++++++-------------- src/queries/official-roadmap.ts | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/pages/pages.json.ts b/src/pages/pages.json.ts index 48627bc6c..b075cac9f 100644 --- a/src/pages/pages.json.ts +++ b/src/pages/pages.json.ts @@ -5,31 +5,24 @@ import { listOfficialAuthors, listOfficialGuides, } from '../queries/official-guide'; -import { listOfficialRoadmaps } from '../queries/official-roadmap'; +import { + listOfficialBeginnerRoadmaps, + listOfficialRoadmaps, +} from '../queries/official-roadmap'; import { listOfficialProjects } from '../queries/official-project'; -// Add utility to fetch beginner roadmap file IDs -function getBeginnerRoadmapIds() { - const files = import.meta.glob('/src/data/roadmaps/*/*-beginner.json', { - eager: true, - }); - - return Object.keys(files).map((filePath) => { - const fileName = filePath.split('/').pop() || ''; - return fileName.replace('.json', ''); - }); -} - export async function GET() { const guides = await listOfficialGuides(); const authors = await listOfficialAuthors(); const videos = await getAllVideos(); const questionGroups = await getAllQuestionGroups(); - const roadmaps = await listOfficialRoadmaps(); + const mainRoadmaps = await listOfficialRoadmaps(); + const beginnerRoadmaps = await listOfficialBeginnerRoadmaps(); const bestPractices = await getAllBestPractices(); const projects = await listOfficialProjects(); + const roadmaps = [...mainRoadmaps, ...beginnerRoadmaps]; // Transform main roadmaps into page objects first so that we can reuse their meta for beginner variants const roadmapPages = roadmaps .map((roadmap) => { diff --git a/src/queries/official-roadmap.ts b/src/queries/official-roadmap.ts index 15dc8f2f0..4ebb66a1d 100644 --- a/src/queries/official-roadmap.ts +++ b/src/queries/official-roadmap.ts @@ -128,6 +128,22 @@ export async function listOfficialRoadmaps() { } } +export async function listOfficialBeginnerRoadmaps() { + try { + const roadmaps = await httpGet( + `/v1-list-official-beginner-roadmaps`, + ); + + return roadmaps; + } catch (error) { + if (FetchError.isFetchError(error) && error.status === 404) { + return []; + } + + throw error; + } +} + export function isNewRoadmap(createdAt: Date) { return ( createdAt &&