26 lines
815 B
JavaScript
26 lines
815 B
JavaScript
const { flatten } = require('lodash');
|
|
|
|
const { dasherize } = require('../../../api-server/server/utils');
|
|
|
|
function createPathMigrationMap(curriculum) {
|
|
return Object.keys(curriculum)
|
|
.map(key => curriculum[key].blocks)
|
|
.reduce((challenges, current) => {
|
|
const superChallenges = Object.keys(current).map(
|
|
key => current[key].challenges
|
|
);
|
|
return challenges.concat(flatten(superChallenges));
|
|
}, [])
|
|
.filter(({ isPrivate }) => !isPrivate)
|
|
.reduce((map, challenge) => {
|
|
const { title, block, superBlock } = challenge;
|
|
const dashedTitle = dasherize(title);
|
|
map[dashedTitle] = `/learn/${dasherize(superBlock)}/${dasherize(
|
|
block
|
|
)}/${dashedTitle}`;
|
|
return map;
|
|
}, {});
|
|
}
|
|
|
|
exports.createPathMigrationMap = createPathMigrationMap;
|