26 lines
		
	
	
		
			803 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			803 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const { flatten } = require('lodash');
 | 
						|
 | 
						|
const { dasherize } = require('../../../utils/slugs');
 | 
						|
 | 
						|
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;
 |