// @ts-ignore
import toHTML from '@starptech/prettyhtml-hast-to-html'
import { CodeGeneratorFunction, HastNode } from '@teleporthq/teleport-types'
export const generator: CodeGeneratorFunction = (htmlObject) => {
const normalizedHtml = normalizeHtmlObject(htmlObject)
return toHTML(normalizedHtml)
}
// Normalizes HTML structure by flattening nested arrays in children
const normalizeHtmlObject = (node: HastNode): HastNode => {
if (!node) {
return node
}
if (node.children) {
// Flatten any nested arrays in children
node.children = node.children.flat()
// Recursively normalize all children
node.children = node.children.map((child: HastNode) => normalizeHtmlObject(child))
}
return node
}