Wie kann ich innerHTML gerendert bekommen, das Shadow DOM enthält?

Ich verwende Webkomponenten mit Schatten-DOM in einem Projekt und möchte das innere HTML der Seite so kopieren, wie sie gerendert wird.

Ich denke, ich muss eine Funktionsschleife über jeden DOM-Knoten schreiben und entweder die Schatten-DOM-Kinder, falls verfügbar, oder die Licht-DOM-Kinder abrufen.

node.shadowRoot ? node.shadowRoot.children : node.children

Ich habe Probleme, es richtig zu machen, und bin überrascht, dass ich bei Google nichts finden kann.