2021-08-29 16:05:19 +02:00
|
|
|
import roadmaps from '../content/roadmaps.json';
|
|
|
|
|
|
|
|
export type RoadmapType = {
|
|
|
|
seo: {
|
|
|
|
title: string;
|
|
|
|
description: string;
|
2021-12-07 14:05:13 +01:00
|
|
|
keywords: string[];
|
|
|
|
};
|
|
|
|
title: string;
|
|
|
|
description: string;
|
2021-08-29 16:05:19 +02:00
|
|
|
featuredTitle: string;
|
2021-12-07 14:05:13 +01:00
|
|
|
featuredDescription: string;
|
2021-08-29 16:05:19 +02:00
|
|
|
author: {
|
2021-12-07 14:05:13 +01:00
|
|
|
name: string;
|
|
|
|
url: string;
|
|
|
|
};
|
2022-09-08 20:20:30 +04:00
|
|
|
type: 'role' | 'tool';
|
2021-12-07 14:05:13 +01:00
|
|
|
featured: boolean;
|
|
|
|
imageUrl?: string;
|
|
|
|
jsonUrl?: string;
|
2022-08-29 18:48:57 +04:00
|
|
|
isNew?: boolean;
|
2021-12-03 14:16:41 +01:00
|
|
|
landingPath?: string;
|
2021-08-29 16:05:19 +02:00
|
|
|
resourcesPath: string;
|
2021-12-03 19:58:25 +01:00
|
|
|
contentPathsFilePath?: string;
|
2021-09-26 22:02:59 +02:00
|
|
|
metaPath: string;
|
2021-08-29 16:05:19 +02:00
|
|
|
isCommunity: boolean;
|
2021-09-04 18:50:38 +02:00
|
|
|
isUpcoming: boolean;
|
2021-08-29 21:29:14 +02:00
|
|
|
id: string;
|
2021-09-04 19:14:02 +02:00
|
|
|
pdfUrl?: string;
|
2022-09-08 20:20:30 +04:00
|
|
|
relatedRoadmaps?: string[];
|
2021-08-29 16:05:19 +02:00
|
|
|
};
|
|
|
|
|
2021-08-29 21:29:14 +02:00
|
|
|
export function getRoadmapById(id: string): RoadmapType | undefined {
|
2021-12-07 14:05:13 +01:00
|
|
|
return (roadmaps as RoadmapType[]).find((roadmap) => roadmap.id === id);
|
2021-08-29 16:05:19 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
export function getAllRoadmaps(): RoadmapType[] {
|
2021-12-07 14:05:13 +01:00
|
|
|
return roadmaps as RoadmapType[];
|
2021-08-29 16:05:19 +02:00
|
|
|
}
|
|
|
|
|
2022-09-08 20:20:30 +04:00
|
|
|
export function filterRoadmapsByIds(ids: string[]): RoadmapType[] {
|
|
|
|
return (roadmaps as RoadmapType[]).filter(roadmap => ids.includes(roadmap.id));
|
|
|
|
}
|
|
|
|
|
2021-08-29 16:05:19 +02:00
|
|
|
export function getFeaturedRoadmaps(): RoadmapType[] {
|
|
|
|
const roadmaps: RoadmapType[] = getAllRoadmaps();
|
|
|
|
|
2021-12-07 14:05:13 +01:00
|
|
|
return roadmaps.filter((roadmap) => roadmap.featured);
|
2021-08-29 16:05:19 +02:00
|
|
|
}
|
2022-01-09 11:29:03 +04:00
|
|
|
|
|
|
|
export function isInteractiveRoadmap(id: string): boolean {
|
2022-10-28 19:22:48 +04:00
|
|
|
return ['frontend', 'backend', 'devops', 'react', 'vue', 'python', 'java', 'blockchain', 'golang', 'javascript', 'nodejs', 'qa', 'design-system', 'angular', 'software-architect', 'software-design-architecture', 'aspnet-core', 'flutter'].includes(id);
|
2022-01-09 11:29:03 +04:00
|
|
|
}
|