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 ]
|
|
|