vnode-children.ts — astro Source File
Architecture documentation for vnode-children.ts, a typescript file in the astro codebase. 2 imports, 0 dependents.
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
Source
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