You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							32 lines
						
					
					
						
							824 B
						
					
					
				
			
		
		
	
	
							32 lines
						
					
					
						
							824 B
						
					
					
				| 'use strict'; | |
| 
 | |
| const List = require('../utils/List.cjs'); | |
| 
 | |
| function createConvertor(walk) { | |
|     return { | |
|         fromPlainObject(ast) { | |
|             walk(ast, { | |
|                 enter(node) { | |
|                     if (node.children && node.children instanceof List.List === false) { | |
|                         node.children = new List.List().fromArray(node.children); | |
|                     } | |
|                 } | |
|             }); | |
| 
 | |
|             return ast; | |
|         }, | |
|         toPlainObject(ast) { | |
|             walk(ast, { | |
|                 leave(node) { | |
|                     if (node.children && node.children instanceof List.List) { | |
|                         node.children = node.children.toArray(); | |
|                     } | |
|                 } | |
|             }); | |
| 
 | |
|             return ast; | |
|         } | |
|     }; | |
| } | |
| 
 | |
| exports.createConvertor = createConvertor;
 | |
| 
 |