
Security News
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.
@kubb/renderer-jsx
Advanced tools
Self-contained synchronous JSX renderer for Kubb. Turns JSX into FileNodes with built-in components (File, Function, Type, Const). An alternative for the ast.factory syntax.
Provides a JSX runtime and built-in components (File, Function, Type, Const) for component-based, type-safe code generation inside Kubb plugins.
An alternative for the ast.factory syntax.
bun add @kubb/renderer-jsx
# or
pnpm add @kubb/renderer-jsx
# or
npm install @kubb/renderer-jsx
Use the built-in components inside a Kubb plugin to emit generated files:
import { jsxRenderer } from '@kubb/renderer-jsx'
import { File, Function, Type } from '@kubb/renderer-jsx'
const renderer = jsxRenderer()
await renderer.render(
<File baseName="petStore.ts" path="src/gen/petStore.ts">
<File.Source>
<Type name="Pet">{'{ id: number; name: string }'}</Type>
<Function name="getPet" async>
{"return fetch('/pets')"}
</Function>
</File.Source>
</File>,
)
const files = renderer.files
| Component | Description |
|---|---|
<File> | Declares a generated output file with its path and optional imports/exports |
<File.Source> | The source content block inside a <File> |
<Function> | Generates a TypeScript function declaration |
<Type> | Generates a TypeScript type alias |
<Const> | Generates a const variable declaration |
<Jsx> | Renders JSX expressions inside generated output |
<Callout> | Generates a callout block in markdown output |
<Frontmatter> | Generates a frontmatter block in markdown output |
<Heading> | Generates a heading in markdown output |
<List> | Generates a list in markdown output |
<Paragraph> | Generates a paragraph in markdown output |
jsxRenderer()Creates a renderer instance with render, files, and stream:
const renderer = jsxRenderer()
await renderer.render(<MyComponent />)
const files = renderer.files // FileNode[]
Use stream(element) instead of render to consume files one at a time as they are produced.
@kubb/renderer-jsx ships its own JSX runtime (jsx-runtime and jsx-dev-runtime). Configure your tsconfig.json to use it:
{
"compilerOptions": {
"jsx": "react-jsx",
"jsxImportSource": "@kubb/renderer-jsx"
}
}
Kubb is an open source project, and its development is funded entirely by sponsors. If you would like to become a sponsor, please consider:
FAQs
Self-contained synchronous JSX renderer for Kubb. Turns JSX into FileNodes with built-in components (File, Function, Type, Const). An alternative for the ast.factory syntax.
The npm package @kubb/renderer-jsx receives a total of 21,330 weekly downloads. As such, @kubb/renderer-jsx popularity was classified as popular.
We found that @kubb/renderer-jsx demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.

Threat Research
/Security News
A supply chain attack compromised LiteLLM 1.107.0 on PyPI and Docker, spreading malware that steals cloud credentials, developer secrets, and AI provider keys.