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; |