UNPKG

@kubb/react

Version:
35 lines (30 loc) 977 B
import { getFiles } from './utils/getFiles.ts' import { squashExportNodes } from './utils/squashExportNodes.ts' import { squashImportNodes } from './utils/squashImportNodes.ts' import { squashTextNodes } from './utils/squashTextNodes.ts' import type * as KubbFile from '@kubb/fs/types' import type { DOMElement } from './types.ts' export type RendererResult = { output: string imports: Array<KubbFile.Import> exports: Array<KubbFile.Export> files: Array<KubbFile.File> } export function renderer(node: DOMElement): RendererResult { const imports = squashImportNodes(node) const exports = squashExportNodes(node) const files = getFiles(node) const text = squashTextNodes(node) const output = files.size ? [...files] .flatMap((file) => [...file.sources].map((item) => item.value)) .filter(Boolean) .join('\n\n') : text return { output, files: [...files], imports: [...imports], exports: [...exports], } }