Home / Function/ renderJSX() — astro Function Reference

renderJSX() — astro Function Reference

Architecture documentation for the renderJSX() function in jsx.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  f8b74354_3072_bf56_a8c7_17096550d5c3["renderJSX()"]
  f6e39b43_58a2_4ca6_30bf_a01e3e031e49["jsx.ts"]
  f8b74354_3072_bf56_a8c7_17096550d5c3 -->|defined in| f6e39b43_58a2_4ca6_30bf_a01e3e031e49
  a27b3bdd_5259_4e6f_425c_e15df53ed960["renderJSXVNode()"]
  a27b3bdd_5259_4e6f_425c_e15df53ed960 -->|calls| f8b74354_3072_bf56_a8c7_17096550d5c3
  f285e264_99e9_5260_2d17_5969017d03f8["renderElement()"]
  f285e264_99e9_5260_2d17_5969017d03f8 -->|calls| f8b74354_3072_bf56_a8c7_17096550d5c3
  a27b3bdd_5259_4e6f_425c_e15df53ed960["renderJSXVNode()"]
  f8b74354_3072_bf56_a8c7_17096550d5c3 -->|calls| a27b3bdd_5259_4e6f_425c_e15df53ed960
  style f8b74354_3072_bf56_a8c7_17096550d5c3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/runtime/server/jsx.ts lines 26–61

export async function renderJSX(result: SSRResult, vnode: any): Promise<any> {
	// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
	switch (true) {
		case vnode instanceof HTMLString:
			if (vnode.toString().trim() === '') {
				return '';
			}
			return vnode;
		case typeof vnode === 'string':
			return markHTMLString(escapeHTML(vnode));
		case typeof vnode === 'function':
			return vnode;
		case !vnode && vnode !== 0:
			return '';
		case Array.isArray(vnode): {
			const renderedItems = await Promise.all(vnode.map((v: any) => renderJSX(result, v)));
			// Collect instructions from SlotString items to preserve hydration scripts
			let instructions: RenderInstruction[] | null = null;
			let content = '';
			for (const item of renderedItems) {
				if (item instanceof SlotString) {
					content += item;
					instructions = mergeSlotInstructions(instructions, item);
				} else {
					content += item;
				}
			}
			if (instructions) {
				return markHTMLString(new SlotString(content, instructions));
			}
			return markHTMLString(content);
		}
	}

	return renderJSXVNode(result, vnode);
}

Domain

Subdomains

Frequently Asked Questions

What does renderJSX() do?
renderJSX() is a function in the astro codebase, defined in packages/astro/src/runtime/server/jsx.ts.
Where is renderJSX() defined?
renderJSX() is defined in packages/astro/src/runtime/server/jsx.ts at line 26.
What does renderJSX() call?
renderJSX() calls 1 function(s): renderJSXVNode.
What calls renderJSX()?
renderJSX() is called by 2 function(s): renderElement, renderJSXVNode.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free