mirror of
https://github.com/kennethnym/jrx.git
synced 2026-03-20 03:41:18 +00:00
JSX factory that compiles JSX trees into json-render Spec JSON.
Framework-agnostic custom jsx-runtime, no React dependency at runtime.
- jsx/jsxs/Fragment via jsxImportSource: "jrx"
- render() flattens JrxNode tree into { root, elements, state? } Spec
- Auto key generation (type-N) with explicit key override
- Full feature parity: visible, on, repeat, watch as reserved props
- Function components via component() or plain functions
- @json-render/core as peer dependency
Co-authored-by: Ona <no-reply@ona.com>
19 lines
729 B
TypeScript
19 lines
729 B
TypeScript
import { Window } from "happy-dom";
|
|
|
|
const window = new Window({ url: "http://localhost" });
|
|
|
|
// Register DOM globals for @testing-library/react
|
|
for (const key of Object.getOwnPropertyNames(window)) {
|
|
if (!(key in globalThis)) {
|
|
Object.defineProperty(globalThis, key, {
|
|
value: (window as unknown as Record<string, unknown>)[key],
|
|
writable: true,
|
|
configurable: true,
|
|
});
|
|
}
|
|
}
|
|
|
|
Object.defineProperty(globalThis, "window", { value: window, writable: true, configurable: true });
|
|
Object.defineProperty(globalThis, "document", { value: window.document, writable: true, configurable: true });
|
|
Object.defineProperty(globalThis, "navigator", { value: window.navigator, writable: true, configurable: true });
|