| 
									
										
										
										
											2018-09-27 16:00:11 +05:30
										 |  |  | const visit = require('unist-util-visit'); | 
					
						
							|  |  |  | const toHTML = require('hast-util-to-html'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-30 20:34:01 +01:00
										 |  |  | const { sectionFilter } = require('./utils'); | 
					
						
							| 
									
										
										
										
											2018-09-27 16:00:11 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  | function textToData(sectionIds) { | 
					
						
							|  |  |  |   if (!sectionIds || !Array.isArray(sectionIds) || sectionIds.length <= 0) { | 
					
						
							|  |  |  |     throw new Error("textToData must have an array of section id's supplied"); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   function transformer(tree, file) { | 
					
						
							|  |  |  |     visit(tree, 'element', visitor); | 
					
						
							|  |  |  |     function visitor(node) { | 
					
						
							|  |  |  |       sectionIds.forEach(sectionId => { | 
					
						
							|  |  |  |         if (sectionFilter(node, sectionId)) { | 
					
						
							|  |  |  |           const textArray = toHTML(node); | 
					
						
							|  |  |  |           file.data = { | 
					
						
							|  |  |  |             ...file.data, | 
					
						
							|  |  |  |             [sectionId]: textArray | 
					
						
							|  |  |  |           }; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   return transformer; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = textToData; |