Home / File/ vnode-children.ts — astro Source File

vnode-children.ts — astro Source File

Architecture documentation for vnode-children.ts, a typescript file in the astro codebase. 2 imports, 0 dependents.

File typescript CoreAstro CoreMiddleware 2 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  6f5ec033_8af8_3202_95a9_d7c5cd028ed3["vnode-children.ts"]
  d9988dd0_c044_f9d2_85cd_a31a0a2bdf80["react"]
  6f5ec033_8af8_3202_95a9_d7c5cd028ed3 --> d9988dd0_c044_f9d2_85cd_a31a0a2bdf80
  115170fa_0670_7778_2f13_84e482d5f344["ultrahtml"]
  6f5ec033_8af8_3202_95a9_d7c5cd028ed3 --> 115170fa_0670_7778_2f13_84e482d5f344
  style 6f5ec033_8af8_3202_95a9_d7c5cd028ed3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { createElement, Fragment } from 'react';
import { DOCUMENT_NODE, ELEMENT_NODE, parse, TEXT_NODE } from 'ultrahtml';

let ids = 0;
export default function convert(children: any) {
	let doc = parse(children.toString().trim());
	let id = ids++;
	let key = 0;

	function createReactElementFromNode(node: any) {
		const childVnodes =
			Array.isArray(node.children) && node.children.length
				? node.children.map((child: any) => createReactElementFromNode(child)).filter(Boolean)
				: undefined;

		if (node.type === DOCUMENT_NODE) {
			return createElement(Fragment, {}, childVnodes);
		} else if (node.type === ELEMENT_NODE) {
			const { class: className, ...props } = node.attributes;
			return createElement(node.name, { ...props, className, key: `${id}-${key++}` }, childVnodes);
		} else if (node.type === TEXT_NODE) {
			// 0-length text gets omitted in JSX
			return node.value.trim() ? node.value : undefined;
		}
	}

	const root = createReactElementFromNode(doc);
	return root.props.children;
}

Domain

Subdomains

Functions

Dependencies

  • react
  • ultrahtml

Frequently Asked Questions

What does vnode-children.ts do?
vnode-children.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, CoreMiddleware subdomain.
What functions are defined in vnode-children.ts?
vnode-children.ts defines 1 function(s): convert.
What does vnode-children.ts depend on?
vnode-children.ts imports 2 module(s): react, ultrahtml.
Where is vnode-children.ts in the architecture?
vnode-children.ts is located at packages/integrations/react/src/vnode-children.ts (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/integrations/react/src).

Analyze Your Own Codebase

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

Try Supermodel Free