
Product
Introducing Repository Access Permissions and Custom Roles
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.
@kubb/renderer-jsx
Advanced tools
Self-contained synchronous JSX renderer for Kubb. Turns JSX into FileNodes with built-in components (File, Function, Type, Const) for component-based, type-safe code generation. No React dependency.
Provides a React-free JSX runtime and built-in components (File, Function, Type, Const) for component-based, type-safe code generation inside Kubb plugins.
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
JSX-based renderer for Kubb. Provides a custom React runtime, reconciler, and built-in components (File, Function, Type, Const) for component-based, type-safe code generation.
The npm package @kubb/renderer-jsx receives a total of 5,754 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.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.

Product
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.