( node: JSXNode, result: RenderableNode[] = [], )
| 7 | } |
| 8 | |
| 9 | export function nodeToRenderableNodes( |
| 10 | node: JSXNode, |
| 11 | result: RenderableNode[] = [], |
| 12 | ): RenderableNode[] { |
| 13 | if (!node || typeof node === 'boolean') { |
| 14 | return result; |
| 15 | } |
| 16 | |
| 17 | if (Array.isArray(node)) { |
| 18 | node.forEach((child) => nodeToRenderableNodes(child, result)); |
| 19 | } else { |
| 20 | if (isFragment(node)) { |
| 21 | const children = node.props?.children; |
| 22 | (Array.isArray(children) ? children : [children]) |
| 23 | .filter(Boolean) |
| 24 | .forEach((child) => { |
| 25 | nodeToRenderableNodes(child, result); |
| 26 | }); |
| 27 | } else if (typeof node === 'object') result.push(node); |
| 28 | else result.push(node); |
| 29 | } |
| 30 | return result; |
| 31 | } |
no test coverage detected