computer-scienceangular-roadmapbackend-roadmapblockchain-roadmapdba-roadmapdeveloper-roadmapdevops-roadmapfrontend-roadmapgo-roadmaphactoberfestjava-roadmapjavascript-roadmapnodejs-roadmappython-roadmapqa-roadmapreact-roadmaproadmapstudy-planvue-roadmapweb3-roadmap
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.4 KiB
53 lines
1.4 KiB
import roadmaps from '../content/roadmaps.json'; |
|
|
|
export type RoadmapType = { |
|
seo: { |
|
title: string; |
|
description: string; |
|
keywords: string[]; |
|
}; |
|
title: string; |
|
description: string; |
|
featuredTitle: string; |
|
featuredDescription: string; |
|
author: { |
|
name: string; |
|
url: string; |
|
}; |
|
type: 'role' | 'tool'; |
|
featured: boolean; |
|
imageUrl?: string; |
|
jsonUrl?: string; |
|
isNew?: boolean; |
|
landingPath?: string; |
|
resourcesPath: string; |
|
contentPathsFilePath?: string; |
|
metaPath: string; |
|
isCommunity: boolean; |
|
isUpcoming: boolean; |
|
id: string; |
|
pdfUrl?: string; |
|
relatedRoadmaps?: string[]; |
|
}; |
|
|
|
export function getRoadmapById(id: string): RoadmapType | undefined { |
|
return (roadmaps as RoadmapType[]).find((roadmap) => roadmap.id === id); |
|
} |
|
|
|
export function getAllRoadmaps(): RoadmapType[] { |
|
return roadmaps as RoadmapType[]; |
|
} |
|
|
|
export function filterRoadmapsByIds(ids: string[]): RoadmapType[] { |
|
return (roadmaps as RoadmapType[]).filter(roadmap => ids.includes(roadmap.id)); |
|
} |
|
|
|
export function getFeaturedRoadmaps(): RoadmapType[] { |
|
const roadmaps: RoadmapType[] = getAllRoadmaps(); |
|
|
|
return roadmaps.filter((roadmap) => roadmap.featured); |
|
} |
|
|
|
export function isInteractiveRoadmap(id: string): boolean { |
|
return ['frontend', 'backend', 'devops', 'react', 'vue', 'python', 'java', 'blockchain', 'golang', 'javascript', 'nodejs', 'qa', 'design-system', 'angular'].includes(id); |
|
}
|
|
|