UNPKG

@trifrost/core

Version:

Blazingly fast, runtime-agnostic server framework for modern edge and node environments

57 lines (56 loc) 2.4 kB
"use strict"; /* eslint-disable @typescript-eslint/no-unused-vars */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Fragment = void 0; exports.jsx = jsx; exports.jsxs = jsxs; exports.jsxDEV = jsxDEV; /** * Creates a JSX element representation. * @note This function is called when JSX is used and compiled with `jsx` mode. * * @param {JSXType} type - The tag/component type (e.g., 'div' or MyComponent). * @param {JSXProps} props - The properties/attributes for the element. * @param {JSXKey} key - An optional key for element identity in a list. */ function jsx(type, props, key) { return { type, props: props || {}, key }; } /** * Identical to `jsx`, but used when a JSX element has multiple children. * @note This function is called by the compiler in `jsxs` mode. * * @param {JSXType} type - The tag/component type (e.g., 'div' or MyComponent). * @param {JSXProps} props - The properties/attributes for the element. * @param {JSXKey} key - An optional key for element identity in a list. */ function jsxs(type, props, key) { return jsx(type, props, key); } /** * Dev-mode JSX function. Used by Bun, TypeScript, Vite etc. when compiling JSX in development. * * TriFrost does not currently use dev metadata like `source` or `self` for traceability, * but this function exists to maintain compatibility with modern JSX pipelines. * * Internally, it aliases `jsx()`, discarding the extra parameters. * * @future Consider emitting debug info (filename, line) for error boundaries or logging. * * @param {JSXType} type - The tag/component type (e.g., 'div' or MyComponent). * @param {JSXProps} props - The properties/attributes for the element. * @param {JSXKey} key - Optional key for list reconciliation (not currently used). * @param {boolean} _isStaticChildren - Indicates if children are statically analyzed (unused). * @param {{fileName: string;lineNumber:number}} _source - Metadata about the JSX origin location (file + line). * @param {any} _self - The lexical 'this' in source (unused). */ function jsxDEV(type, props, key, _isStaticChildren, _source, _self) { return jsx(type, props, key); } /** * JSX Fragment support. Allows grouping multiple children without adding a parent DOM element. * * @param props - Props object containing `children`. */ const Fragment = (props) => props.children; exports.Fragment = Fragment;