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.
		
		
		
		
		
			
		
			
				
					
					
						
							34 lines
						
					
					
						
							559 B
						
					
					
				
			
		
		
	
	
							34 lines
						
					
					
						
							559 B
						
					
					
				'use strict' | 
						|
 | 
						|
const walk = ( node, parent, cb ) => { | 
						|
  cb( node, parent ) | 
						|
 | 
						|
  if( Array.isArray( node.children ) ) | 
						|
    node.children.forEach( child => walk( child, node, cb ) ) | 
						|
} | 
						|
 | 
						|
const data = { | 
						|
  name: 'div', | 
						|
  attribs: { | 
						|
    id: 'container', | 
						|
    class: 'message' | 
						|
  }, | 
						|
  children: [ | 
						|
    { | 
						|
      name: 'strong', | 
						|
      attribs: { | 
						|
        class: 'message' | 
						|
      }, | 
						|
      children: [ | 
						|
        { text: 'Hello' } | 
						|
      ] | 
						|
    }, | 
						|
    { text: ', World!' } | 
						|
  ] | 
						|
} | 
						|
 | 
						|
walk( data, null, ( node, parent ) => { | 
						|
  if( parent ) node.parent = parent | 
						|
}) | 
						|
 | 
						|
module.exports = [ data ]
 | 
						|
 |