29 lines
		
	
	
		
			804 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			804 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var List = require('../common/List');
 | 
						|
 | 
						|
module.exports = function createConvertors(walk) {
 | 
						|
    return {
 | 
						|
        fromPlainObject: function(ast) {
 | 
						|
            walk(ast, {
 | 
						|
                enter: function(node) {
 | 
						|
                    if (node.children && node.children instanceof List === false) {
 | 
						|
                        node.children = new List().fromArray(node.children);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            });
 | 
						|
 | 
						|
            return ast;
 | 
						|
        },
 | 
						|
        toPlainObject: function(ast) {
 | 
						|
            walk(ast, {
 | 
						|
                leave: function(node) {
 | 
						|
                    if (node.children && node.children instanceof List) {
 | 
						|
                        node.children = node.children.toArray();
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            });
 | 
						|
 | 
						|
            return ast;
 | 
						|
        }
 | 
						|
    };
 | 
						|
};
 |