observer = {
var targetNode = document.body;
var config = { attributes: false, childList: true, subtree: true };
var callback = function(mutationsList, observer) {
console.log(mutationsList);
for(var mutation of mutationsList) {
if (mutation.type == 'childList') {
console.log('A child node has been added or removed.');
mutation.addedNodes[0].dispatchEvent(new CustomEvent('attached'));
}
else if (mutation.type == 'attributes') {
console.log('The ' + mutation.attributeName + ' attribute was modified.');
}
}
};
var observer = new MutationObserver(callback);
observer.observe(targetNode, config);
invalidation.then(() => observer.disconnect());
return observer
}