mirror of https://github.com/sveltejs/svelte
19 lines
402 B
19 lines
402 B
export default function walkHtml ( html, visitors ) {
|
|
function visit ( node ) {
|
|
const visitor = visitors[ node.type ];
|
|
if ( !visitor ) throw new Error( `Not implemented: ${node.type}` );
|
|
|
|
if ( visitor.enter ) visitor.enter( node );
|
|
|
|
if ( node.children ) {
|
|
node.children.forEach( child => {
|
|
visit( child );
|
|
});
|
|
}
|
|
|
|
if ( visitor.leave ) visitor.leave( node );
|
|
}
|
|
|
|
visit( html );
|
|
}
|