import { Code } from "@/components/code"; export const metadata = { title: "@json-render/codegen API | json-render", }; export default function CodegenApiPage() { return (

@json-render/codegen

Utilities for generating code from UI trees.

Tree Traversal

traverseTree

Walk the UI tree depth-first.

{`function traverseTree( tree: UITree, visitor: TreeVisitor, startKey?: string ): void interface TreeVisitor { (element: UIElement, depth: number, parent: UIElement | null): void; }`}

collectUsedComponents

Get all unique component types used in a tree.

{`function collectUsedComponents(tree: UITree): Set // Example const components = collectUsedComponents(tree); // Set { 'Card', 'Metric', 'Chart' }`}

collectDataPaths

Get all data paths referenced in props (valuePath, dataPath, bindPath, etc.).

{`function collectDataPaths(tree: UITree): Set // Example const paths = collectDataPaths(tree); // Set { 'analytics/revenue', 'analytics/customers' }`}

collectActions

Get all action names used in the tree.

{`function collectActions(tree: UITree): Set // Example const actions = collectActions(tree); // Set { 'submit_form', 'refresh_data' }`}

Serialization

serializePropValue

Serialize a single value to a code string.

{`function serializePropValue( value: unknown, options?: SerializeOptions ): { value: string; needsBraces: boolean } // Examples serializePropValue("hello") // { value: '"hello"', needsBraces: false } serializePropValue(42) // { value: '42', needsBraces: true } serializePropValue({ path: 'user/name' }) // { value: '{ path: "user/name" }', needsBraces: true }`}

serializeProps

Serialize a props object to a JSX attributes string.

{`function serializeProps( props: Record, options?: SerializeOptions ): string // Example serializeProps({ title: 'Dashboard', columns: 3, disabled: true }) // 'title="Dashboard" columns={3} disabled'`}

escapeString

Escape a string for use in code.

{`function escapeString( str: string, quotes?: 'single' | 'double' ): string`}

Types

GeneratedFile

{`interface GeneratedFile { /** File path relative to project root */ path: string; /** File contents */ content: string; }`}

CodeGenerator

{`interface CodeGenerator { /** Generate files from a UI tree */ generate(tree: UITree): GeneratedFile[]; }`}

SerializeOptions

{`interface SerializeOptions { /** Quote style for strings */ quotes?: 'single' | 'double'; /** Indent for objects/arrays */ indent?: number; }`}
); }