UNPKG

@kubb/react

Version:

React integration for Kubb, providing JSX runtime support and React component generation capabilities for code generation plugins.

24 lines (18 loc) 754 B
import { nodeNames } from '../dom.ts' import type { KubbFile } from '@kubb/core/fs' import type React from 'react' import type { File } from '../components/File.tsx' import type { DOMElement } from '../types.ts' export function squashImportNodes(node: DOMElement): Set<KubbFile.Import> { let imports = new Set<KubbFile.Import>() node.childNodes.filter(Boolean).forEach((childNode) => { if (childNode.nodeName !== '#text' && nodeNames.includes(childNode.nodeName)) { imports = new Set([...imports, ...squashImportNodes(childNode)]) } if (childNode.nodeName === 'kubb-import') { const attributes = childNode.attributes as React.ComponentProps<typeof File.Import> imports.add(attributes) } }) return imports }