mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-09-02 22:02:39 +02:00
Add courses json file in the frontend roadmap
This commit is contained in:
16
src/data/roadmaps/frontend/courses.json
Normal file
16
src/data/roadmaps/frontend/courses.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"title": "HTML in 50 days",
|
||||||
|
"description": "Learn HTML in 50 days",
|
||||||
|
"url": "https://www.youtube.com/watch?v=xR33433-EE",
|
||||||
|
"topicIds": ["348318888", "234837387834"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"title": "CSS in 50 days",
|
||||||
|
"description": "Learn HTML in 50 days",
|
||||||
|
"url": "https://www.youtube.com/watch?v=xR33433-EE",
|
||||||
|
"topicIds": ["348318888", "234837387834"]
|
||||||
|
}
|
||||||
|
]
|
33
src/pages/[roadmapId]/courses.json.ts
Normal file
33
src/pages/[roadmapId]/courses.json.ts
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import type { APIRoute } from 'astro';
|
||||||
|
import { getRoadmapIds } from '../../lib/roadmap.ts';
|
||||||
|
|
||||||
|
export async function getStaticPaths() {
|
||||||
|
const coursesJsons: Record<string, any> = import.meta.glob(
|
||||||
|
'/src/data/roadmaps/**/courses.json',
|
||||||
|
{
|
||||||
|
eager: true,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
const roadmapIds = await getRoadmapIds();
|
||||||
|
|
||||||
|
return roadmapIds.map((roadmapId) => ({
|
||||||
|
params: {
|
||||||
|
roadmapId,
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
courses:
|
||||||
|
coursesJsons[`/src/data/roadmaps/${roadmapId}/courses.json`]?.default ||
|
||||||
|
{},
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
export const GET: APIRoute = async function ({ params, request, props }) {
|
||||||
|
return new Response(JSON.stringify(props.courses), {
|
||||||
|
status: 200,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
Reference in New Issue
Block a user