@kubb/renderer-jsx 5.0.0-beta.16 → 5.0.0-beta.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { n as __name } from "./chunk-Bb7HlUDG.js";
2
- import { a as JSDoc, h as KubbReactNode, m as KubbReactElement, o as Key } from "./types-nAFMiWFw.js";
3
- import * as _$_kubb_ast0 from "@kubb/ast";
4
- import { ExportNode, ImportNode, SourceNode } from "@kubb/ast";
2
+ import { a as JSDoc, h as KubbReactNode, m as KubbReactElement, o as Key } from "./types-Dk7A1Y5U.js";
3
+ import { ExportNode, FileNode, ImportNode, SourceNode } from "@kubb/ast";
5
4
  import * as _$react from "react";
6
5
 
7
6
  //#region ../../internals/utils/src/context.d.ts
@@ -521,19 +520,16 @@ declare namespace Type {
521
520
  //#endregion
522
521
  //#region src/createRenderer.d.ts
523
522
  /**
524
- * A renderer factory for generators that produce JSX output.
523
+ * Renderer factory for generators that produce JSX output.
525
524
  *
526
- * Pass this as the `renderer` property of a `defineGenerator` call so that
527
- * core can render the JSX element tree returned by your generator methods
525
+ * Pass as the `renderer` property of `defineGenerator`. Core drives rendering
528
526
  * without a hard dependency on `@kubb/renderer-jsx`.
529
527
  *
530
528
  * @example
531
529
  * ```ts
532
530
  * import { jsxRenderer } from '@kubb/renderer-jsx'
533
- * import { defineGenerator } from '@kubb/core'
534
531
  *
535
532
  * export const myGenerator = defineGenerator<PluginTs>({
536
- * name: 'my-generator',
537
533
  * renderer: jsxRenderer,
538
534
  * schema(node, options) {
539
535
  * return <File baseName="output.ts" path="src/output.ts">...</File>
@@ -543,9 +539,41 @@ declare namespace Type {
543
539
  */
544
540
  declare const jsxRenderer: () => {
545
541
  render(element: KubbReactElement): Promise<void>;
546
- readonly files: _$_kubb_ast0.FileNode[];
542
+ readonly files: FileNode[];
547
543
  unmount(error?: Error | number | null): void;
548
544
  };
545
+ /**
546
+ * Lightweight renderer factory with no React fiber, scheduler, or work loop.
547
+ *
548
+ * Walks the JSX element tree in a single recursive pass. All components must be
549
+ * pure functions; hooks and class components are not supported. Drop-in
550
+ * replacement for {@link jsxRenderer} at approximately 2–4× the speed.
551
+ *
552
+ * @example Drop-in replacement
553
+ * ```ts
554
+ * import { jsxRendererSync } from '@kubb/renderer-jsx'
555
+ *
556
+ * export const myGenerator = defineGenerator<PluginTs>({
557
+ * renderer: jsxRendererSync,
558
+ * schema(node, options) {
559
+ * return <File baseName="output.ts" path="src/output.ts">...</File>
560
+ * },
561
+ * })
562
+ * ```
563
+ *
564
+ * @example Stream files as they are produced
565
+ * ```ts
566
+ * for await (const file of jsxRendererSync().stream(element)) {
567
+ * await writeFile(file)
568
+ * }
569
+ * ```
570
+ */
571
+ declare const jsxRendererSync: () => {
572
+ render(element: KubbReactElement): Promise<void>;
573
+ readonly files: FileNode[];
574
+ stream(element: KubbReactElement): AsyncGenerator<FileNode>;
575
+ unmount(_error?: Error | number | null): void;
576
+ };
549
577
  //#endregion
550
- export { Const, File, Function, Jsx, Root, Type, createContext, inject, jsxRenderer, provide, unprovide };
578
+ export { Const, File, Function, Jsx, Root, Type, createContext, inject, jsxRenderer, jsxRendererSync, provide, unprovide };
551
579
  //# sourceMappingURL=index.d.ts.map