| 
									
										
										
										
											2018-10-07 08:52:41 +01:00
										 |  |  | const { flatten } = require('lodash'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-25 20:16:08 +02:00
										 |  |  | const { dasherize } = require('../../../utils/slugs'); | 
					
						
							| 
									
										
										
										
											2018-10-07 08:52:41 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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; |