1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-02-26 04:22:36 +01:00
developer-roadmap/lib/roadmap.js
2019-11-13 23:06:07 +04:00

28 lines
918 B
JavaScript

import roadmaps from "storage/roadmaps";
export const getRequestedRoadmap = req => {
// Considering it a new roadmap URL e.g. `/roadmaps/frontend`
const currentUrl = req.url.replace(/\/$/, '');
// Get the roadmap version out of the URL e.g. `/roadmaps/frontend/2019`
const [foundVersion = ''] = currentUrl.match(/(\d+|latest)$/) || ['latest'];
const foundVersionRegex = new RegExp(`\/?${foundVersion}$`);
// Remove version from the URL because urls in roadmaps list don't have versions
const urlWithoutVersion = currentUrl.replace(foundVersionRegex, '');
const urlToSlugList = [
currentUrl,
urlWithoutVersion,
];
const foundRoadmap = roadmaps.find(roadmap => urlToSlugList.includes(roadmap.url));
if (!foundRoadmap) {
return null;
}
return {
...foundRoadmap,
version: foundVersion,
picture: (foundRoadmap.picture || '').replace('{version}', foundVersion),
};
};