astro
Version:
Astro is a modern site builder with web best practices, performance, and DX front-of-mind.
34 lines (33 loc) • 1.4 kB
TypeScript
import type { SSRResult } from '../../../../types/public/internal.js';
import type { RenderQueue, StackItem, QueueNode } from './types.js';
import type { NodePool } from './pool.js';
/**
* Get JSX queue rendering statistics
*/
export declare function getJSXQueueStats(): {
vnodeCount: number;
elementCount: number;
componentCount: number;
hasLogged: boolean;
};
/**
* Reset JSX queue rendering statistics
*/
export declare function resetJSXQueueStats(): void;
/**
* Processes JSX VNodes and adds them to the render queue.
* Unlike renderJSX(), this doesn't build strings recursively -
* it pushes nodes directly to the queue for batching and memory efficiency.
*
* This function handles JSX created by astro:jsx (JSX in .astro files).
* It converts VNodes to queue nodes, enabling content-aware pooling and batching.
*
* @param vnode - JSX VNode to process
* @param result - SSR result context
* @param queue - Queue to append nodes to
* @param pool - Node pool for memory efficiency
* @param stack - Stack for depth-first traversal
* @param parent - Parent queue node (for tracking)
* @param metadata - Metadata passed through stack (props, slots, displayName)
*/
export declare function renderJSXToQueue(vnode: any, result: SSRResult, queue: RenderQueue, pool: NodePool, stack: StackItem[], parent: QueueNode | null, metadata?: StackItem['metadata']): void;