@kubb/react-fabric 0.12.11 → 0.13.1
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/README.md +0 -13
- package/dist/{chunk-DbZtQ4qb.js → chunk-Cnw5r_-A.js} +1 -5
- package/dist/{getFunctionParams-BaDz1zZu.d.cts → getFunctionParams-BJb7Kd-D.d.ts} +2 -1
- package/dist/{getFunctionParams-CINBJQGH.d.ts → getFunctionParams-ClT1iMr_.d.ts} +2 -3
- package/dist/globals.d.ts +2 -2
- package/dist/index.cjs +37 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +39 -41
- package/dist/index.js.map +1 -1
- package/dist/jsx-dev-runtime.cjs +4 -21
- package/dist/jsx-dev-runtime.cjs.map +1 -1
- package/dist/jsx-dev-runtime.d.ts +3 -3
- package/dist/jsx-dev-runtime.js +5 -22
- package/dist/jsx-dev-runtime.js.map +1 -1
- package/dist/{jsx-namespace-Bg7Kfg54.d.ts → jsx-namespace-BLQ6SvuD.d.ts} +2 -2
- package/dist/{jsx-namespace-zRAnd-2Y.d.cts → jsx-namespace-CFK460kI.d.ts} +3 -3
- package/dist/{jsx-runtime-CRt7_dDm.cjs → jsx-runtime-7CEZevwV.cjs} +5 -23
- package/dist/{jsx-runtime-CRt7_dDm.cjs.map → jsx-runtime-7CEZevwV.cjs.map} +1 -1
- package/dist/{jsx-runtime-CQFBnRKx.js → jsx-runtime-Dm7PKVbc.js} +6 -24
- package/dist/{jsx-runtime-CQFBnRKx.js.map → jsx-runtime-Dm7PKVbc.js.map} +1 -1
- package/dist/jsx-runtime.cjs +4 -3
- package/dist/jsx-runtime.d.ts +3 -3
- package/dist/jsx-runtime.js +5 -4
- package/dist/plugins.cjs +3 -3
- package/dist/plugins.d.ts +1 -1
- package/dist/plugins.js +3 -3
- package/dist/{react--draJ5Pm.js → react-D652OKii.js} +31 -91
- package/dist/{react--draJ5Pm.js.map → react-D652OKii.js.map} +1 -1
- package/dist/{react-s8IDJhpB.cjs → react-DorQ0Kea.cjs} +30 -100
- package/dist/{react-s8IDJhpB.cjs.map → react-DorQ0Kea.cjs.map} +1 -1
- package/dist/{reactPlugin-D7d08sbQ.d.ts → reactPlugin-BAQFl4pj.d.ts} +2 -2
- package/dist/{reactPlugin-DqJsInTf.js → reactPlugin-BkDkx1cs.js} +410 -1650
- package/dist/reactPlugin-BkDkx1cs.js.map +1 -0
- package/dist/{reactPlugin-CfilrfRJ.d.cts → reactPlugin-Ch2aSTYS.d.ts} +3 -3
- package/dist/{reactPlugin-yxgFjveE.cjs → reactPlugin-DTg048L6.cjs} +408 -1666
- package/dist/reactPlugin-DTg048L6.cjs.map +1 -0
- package/dist/types.d.ts +4 -3
- package/package.json +8 -11
- package/src/Runtime.tsx +6 -8
- package/src/devtools.ts +11 -15
- package/src/utils/getFunctionParams.ts +17 -23
- package/dist/globals.d.cts +0 -23
- package/dist/index.d.cts +0 -346
- package/dist/jsx-dev-runtime.d.cts +0 -13
- package/dist/jsx-runtime.d.cts +0 -15
- package/dist/parsers.d.cts +0 -1
- package/dist/plugins.d.cts +0 -3
- package/dist/reactPlugin-DqJsInTf.js.map +0 -1
- package/dist/reactPlugin-yxgFjveE.cjs.map +0 -1
- package/dist/types.d.cts +0 -61
package/README.md
CHANGED
|
@@ -154,19 +154,6 @@ import { loggerPlugin } from '@kubb/fabric-core/plugins'
|
|
|
154
154
|
By default the plugin displays a progress bar, starts a websocket server on an ephemeral port, and announces the URL. Every key lifecycle hook (`start`, `process:*`, `file:*`, `write:*`, `end`) is logged with a `Fabric` tag, animated in the progress bar, and broadcast to connected clients—perfect for building dashboards on top of Fabric.
|
|
155
155
|
|
|
156
156
|
|
|
157
|
-
#### `graphPlugin`
|
|
158
|
-
Shows a graph of all files
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
import { graphPlugin } from '@kubb/fabric-core/plugins'
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
| Option | Type | Default | Description |
|
|
165
|
-
|--------|-----------|---------|-----------------------------------------------|
|
|
166
|
-
| root | `string` | | Root directory where to start searching from. |
|
|
167
|
-
| open | `boolean` | false | Open a webpage with the generated graph |
|
|
168
|
-
|
|
169
|
-
|
|
170
157
|
#### `reactPlugin`
|
|
171
158
|
Enables rendering React components to the terminal or to a string. Useful for CLI UIs and templating.
|
|
172
159
|
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
//#region \0rolldown/runtime.js
|
|
2
2
|
var __create = Object.create;
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
|
-
var __name = (target, value) => __defProp(target, "name", {
|
|
5
|
-
value,
|
|
6
|
-
configurable: true
|
|
7
|
-
});
|
|
8
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
@@ -44,4 +40,4 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
44
40
|
}) : target, mod));
|
|
45
41
|
|
|
46
42
|
//#endregion
|
|
47
|
-
export { __toESM as
|
|
43
|
+
export { __toESM as i, __exportAll as n, __reExport as r, __commonJSMin as t };
|
|
@@ -44,4 +44,5 @@ declare class FunctionParams {
|
|
|
44
44
|
toConstructor(): string;
|
|
45
45
|
}
|
|
46
46
|
//#endregion
|
|
47
|
-
export { __exportAll as a, createFunctionParams as i, Param as n,
|
|
47
|
+
export { __exportAll as a, createFunctionParams as i, Param as n, __reExport as o, Params as r, FunctionParams as t };
|
|
48
|
+
//# sourceMappingURL=getFunctionParams-BJb7Kd-D.d.ts.map
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { r as __name } from "./chunk-DbZtQ4qb.js";
|
|
2
|
-
|
|
3
1
|
//#region src/utils/getFunctionParams.d.ts
|
|
4
2
|
type Param = {
|
|
5
3
|
/**
|
|
@@ -45,4 +43,5 @@ declare class FunctionParams {
|
|
|
45
43
|
toConstructor(): string;
|
|
46
44
|
}
|
|
47
45
|
//#endregion
|
|
48
|
-
export { createFunctionParams as i, Param as n, Params as r, FunctionParams as t };
|
|
46
|
+
export { createFunctionParams as i, Param as n, Params as r, FunctionParams as t };
|
|
47
|
+
//# sourceMappingURL=getFunctionParams-ClT1iMr_.d.ts.map
|
package/dist/globals.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { r as __name } from "./chunk-DbZtQ4qb.js";
|
|
2
1
|
import { FabricExportProps, FabricFileProps, FabricImportProps, FabricReactElement, FabricReactNode, FabricSourceProps, FabricTextProps, LineBreakProps } from "./types.js";
|
|
3
2
|
import React from "react";
|
|
4
3
|
|
|
@@ -20,4 +19,5 @@ declare global {
|
|
|
20
19
|
dedent: {};
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
|
-
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=globals.d.ts.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_react$1 = require('./react-
|
|
3
|
-
require('./jsx-runtime-
|
|
2
|
+
const require_react$1 = require('./react-DorQ0Kea.cjs');
|
|
3
|
+
require('./jsx-runtime-7CEZevwV.cjs');
|
|
4
4
|
const require_jsx_runtime$1 = require('./jsx-runtime.cjs');
|
|
5
|
-
const require_reactPlugin = require('./reactPlugin-
|
|
5
|
+
const require_reactPlugin = require('./reactPlugin-DTg048L6.cjs');
|
|
6
6
|
let _kubb_fabric_core = require("@kubb/fabric-core");
|
|
7
|
-
let
|
|
8
|
-
let signal_exit = require("signal-exit");
|
|
7
|
+
let node_child_process = require("node:child_process");
|
|
9
8
|
let ws = require("ws");
|
|
10
9
|
ws = require_react$1.__toESM(ws);
|
|
11
|
-
let
|
|
10
|
+
let remeda = require("remeda");
|
|
12
11
|
|
|
13
12
|
//#region src/components/App.tsx
|
|
14
13
|
var import_react = /* @__PURE__ */ require_react$1.__toESM(require_react$1.require_react(), 1);
|
|
@@ -44,7 +43,7 @@ function Const({ children, ...props }) {
|
|
|
44
43
|
props
|
|
45
44
|
}));
|
|
46
45
|
return /* @__PURE__ */ require_jsx_runtime$1.jsxs(require_jsx_runtime$1.Fragment, { children: [
|
|
47
|
-
|
|
46
|
+
JSDoc?.comments && /* @__PURE__ */ require_jsx_runtime$1.jsxs(require_jsx_runtime$1.Fragment, { children: [(0, _kubb_fabric_core.createJSDoc)({ comments: JSDoc?.comments }), /* @__PURE__ */ require_jsx_runtime$1.jsx("br", {})] }),
|
|
48
47
|
canExport && /* @__PURE__ */ require_jsx_runtime$1.jsx(require_jsx_runtime$1.Fragment, { children: "export " }),
|
|
49
48
|
"const ",
|
|
50
49
|
name,
|
|
@@ -188,7 +187,7 @@ function Function({ children, ...props }) {
|
|
|
188
187
|
props
|
|
189
188
|
}));
|
|
190
189
|
return /* @__PURE__ */ require_jsx_runtime$1.jsxs(require_jsx_runtime$1.Fragment, { children: [
|
|
191
|
-
|
|
190
|
+
JSDoc?.comments && /* @__PURE__ */ require_jsx_runtime$1.jsxs(require_jsx_runtime$1.Fragment, { children: [(0, _kubb_fabric_core.createJSDoc)({ comments: JSDoc?.comments }), /* @__PURE__ */ require_jsx_runtime$1.jsx("br", {})] }),
|
|
192
191
|
canExport && /* @__PURE__ */ require_jsx_runtime$1.jsx(require_jsx_runtime$1.Fragment, { children: "export " }),
|
|
193
192
|
isDefault && /* @__PURE__ */ require_jsx_runtime$1.jsx(require_jsx_runtime$1.Fragment, { children: "default " }),
|
|
194
193
|
async && /* @__PURE__ */ require_jsx_runtime$1.jsx(require_jsx_runtime$1.Fragment, { children: "async " }),
|
|
@@ -233,7 +232,7 @@ function ArrowFunction({ children, ...props }) {
|
|
|
233
232
|
props
|
|
234
233
|
}));
|
|
235
234
|
return /* @__PURE__ */ require_jsx_runtime$1.jsxs(require_jsx_runtime$1.Fragment, { children: [
|
|
236
|
-
|
|
235
|
+
JSDoc?.comments && /* @__PURE__ */ require_jsx_runtime$1.jsxs(require_jsx_runtime$1.Fragment, { children: [(0, _kubb_fabric_core.createJSDoc)({ comments: JSDoc?.comments }), /* @__PURE__ */ require_jsx_runtime$1.jsx("br", {})] }),
|
|
237
236
|
canExport && /* @__PURE__ */ require_jsx_runtime$1.jsx(require_jsx_runtime$1.Fragment, { children: "export " }),
|
|
238
237
|
isDefault && /* @__PURE__ */ require_jsx_runtime$1.jsx(require_jsx_runtime$1.Fragment, { children: "default " }),
|
|
239
238
|
"const ",
|
|
@@ -289,7 +288,7 @@ function Type({ children, ...props }) {
|
|
|
289
288
|
}));
|
|
290
289
|
if (name.charAt(0).toUpperCase() !== name.charAt(0)) throw new Error("Name should start with a capital letter(see TypeScript types)");
|
|
291
290
|
return /* @__PURE__ */ require_jsx_runtime$1.jsxs(require_jsx_runtime$1.Fragment, { children: [
|
|
292
|
-
|
|
291
|
+
JSDoc?.comments && /* @__PURE__ */ require_jsx_runtime$1.jsxs(require_jsx_runtime$1.Fragment, { children: [(0, _kubb_fabric_core.createJSDoc)({ comments: JSDoc?.comments }), /* @__PURE__ */ require_jsx_runtime$1.jsx("br", {})] }),
|
|
293
292
|
canExport && /* @__PURE__ */ require_jsx_runtime$1.jsx(require_jsx_runtime$1.Fragment, { children: "export " }),
|
|
294
293
|
"type ",
|
|
295
294
|
name,
|
|
@@ -305,9 +304,9 @@ let isOpen = false;
|
|
|
305
304
|
function openDevtools() {
|
|
306
305
|
if (isOpen) return;
|
|
307
306
|
const customGlobal = global;
|
|
308
|
-
customGlobal.WebSocket
|
|
309
|
-
customGlobal.window
|
|
310
|
-
customGlobal.self
|
|
307
|
+
customGlobal.WebSocket ||= ws.default;
|
|
308
|
+
customGlobal.window ||= global;
|
|
309
|
+
customGlobal.self ||= global;
|
|
311
310
|
customGlobal.isDevtoolsEnabled = true;
|
|
312
311
|
customGlobal.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ = [
|
|
313
312
|
{
|
|
@@ -362,14 +361,13 @@ function openDevtools() {
|
|
|
362
361
|
import("react-devtools-core").then(async (devtools) => {
|
|
363
362
|
console.info("Opening devtools");
|
|
364
363
|
const controller = new AbortController();
|
|
365
|
-
if (!isOpen) (0,
|
|
364
|
+
if (!isOpen) (0, node_child_process.spawn)("npx", ["react-devtools@6.1.5"], {
|
|
365
|
+
signal: controller.signal,
|
|
366
366
|
stdio: "pipe",
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
gracefulCancel: true
|
|
370
|
-
})`npx react-devtools@6.1.5`;
|
|
367
|
+
detached: true
|
|
368
|
+
}).unref();
|
|
371
369
|
isOpen = true;
|
|
372
|
-
const { initialize, connectToDevTools } =
|
|
370
|
+
const { initialize, connectToDevTools } = devtools?.default || devtools;
|
|
373
371
|
initialize();
|
|
374
372
|
console.info("Initializing devtools");
|
|
375
373
|
require_reactPlugin.Renderer.injectIntoDevTools({
|
|
@@ -390,10 +388,10 @@ function openDevtools() {
|
|
|
390
388
|
console.error(e);
|
|
391
389
|
console.info("Error when connecting the devtools");
|
|
392
390
|
}
|
|
393
|
-
(0,
|
|
391
|
+
(0, _kubb_fabric_core.onProcessExit)(() => {
|
|
394
392
|
console.info("Disconnecting devtools");
|
|
395
393
|
controller.abort();
|
|
396
|
-
}
|
|
394
|
+
});
|
|
397
395
|
});
|
|
398
396
|
}
|
|
399
397
|
|
|
@@ -414,18 +412,18 @@ function createReactFabric(config = {}) {
|
|
|
414
412
|
//#endregion
|
|
415
413
|
//#region src/utils/getFunctionParams.ts
|
|
416
414
|
function order(items) {
|
|
417
|
-
return (0,
|
|
418
|
-
if (item
|
|
419
|
-
if (item
|
|
420
|
-
if (item
|
|
415
|
+
return (0, remeda.sortBy)(items.filter(Boolean), ([_key, item]) => {
|
|
416
|
+
if (item?.children) return 0;
|
|
417
|
+
if (item?.optional) return 1;
|
|
418
|
+
if (item?.default) return 2;
|
|
421
419
|
return 0;
|
|
422
|
-
}
|
|
420
|
+
});
|
|
423
421
|
}
|
|
424
422
|
function parseChild(key, item, options) {
|
|
425
423
|
const entries = order(Object.entries(item.children));
|
|
426
424
|
const types = [];
|
|
427
425
|
const names = [];
|
|
428
|
-
const optional = entries.every(([_key, item]) =>
|
|
426
|
+
const optional = entries.every(([_key, item]) => item?.optional || !!item?.default);
|
|
429
427
|
entries.forEach(([key, entryItem]) => {
|
|
430
428
|
if (entryItem) {
|
|
431
429
|
const name = parseItem(key, {
|
|
@@ -440,7 +438,7 @@ function parseChild(key, item, options) {
|
|
|
440
438
|
else names.push(name);
|
|
441
439
|
} else if (options.type === "call" && options.transformName) names.push(`${key}: ${name}`);
|
|
442
440
|
else names.push(name);
|
|
443
|
-
if (entries.some(([_key, item]) => item
|
|
441
|
+
if (entries.some(([_key, item]) => item?.type)) types.push(parseItem(key, {
|
|
444
442
|
...entryItem,
|
|
445
443
|
default: void 0
|
|
446
444
|
}, options));
|
|
@@ -487,41 +485,40 @@ function getFunctionParams(params, options) {
|
|
|
487
485
|
function createFunctionParams(params) {
|
|
488
486
|
return params;
|
|
489
487
|
}
|
|
490
|
-
var _params = /* @__PURE__ */ new WeakMap();
|
|
491
488
|
var FunctionParams = class FunctionParams {
|
|
489
|
+
#params;
|
|
492
490
|
static factory(params) {
|
|
493
491
|
return new FunctionParams(params);
|
|
494
492
|
}
|
|
495
493
|
constructor(params) {
|
|
496
|
-
|
|
497
|
-
require_reactPlugin._classPrivateFieldSet2(_params, this, params);
|
|
494
|
+
this.#params = params;
|
|
498
495
|
}
|
|
499
496
|
get params() {
|
|
500
|
-
return
|
|
497
|
+
return this.#params;
|
|
501
498
|
}
|
|
502
499
|
get flatParams() {
|
|
503
500
|
const flatter = (acc, [key, item]) => {
|
|
504
|
-
if (item
|
|
501
|
+
if (item?.children) return Object.entries(item.children).reduce(flatter, acc);
|
|
505
502
|
if (item) acc[key] = item;
|
|
506
503
|
return acc;
|
|
507
504
|
};
|
|
508
|
-
return Object.entries(
|
|
505
|
+
return Object.entries(this.#params).reduce(flatter, {});
|
|
509
506
|
}
|
|
510
507
|
toCall({ transformName, transformType } = {}) {
|
|
511
|
-
return getFunctionParams(
|
|
508
|
+
return getFunctionParams(this.#params, {
|
|
512
509
|
type: "call",
|
|
513
510
|
transformName,
|
|
514
511
|
transformType
|
|
515
512
|
});
|
|
516
513
|
}
|
|
517
514
|
toObject() {
|
|
518
|
-
return getFunctionParams(
|
|
515
|
+
return getFunctionParams(this.#params, { type: "object" });
|
|
519
516
|
}
|
|
520
517
|
toObjectValue() {
|
|
521
|
-
return getFunctionParams(
|
|
518
|
+
return getFunctionParams(this.#params, { type: "objectValue" });
|
|
522
519
|
}
|
|
523
520
|
toConstructor() {
|
|
524
|
-
return getFunctionParams(
|
|
521
|
+
return getFunctionParams(this.#params, { type: "constructor" });
|
|
525
522
|
}
|
|
526
523
|
};
|
|
527
524
|
|
|
@@ -607,4 +604,5 @@ Object.defineProperty(exports, 'useLifecycle', {
|
|
|
607
604
|
});
|
|
608
605
|
exports.useReducer = useReducer;
|
|
609
606
|
exports.useRef = useRef;
|
|
610
|
-
exports.useState = useState;
|
|
607
|
+
exports.useState = useState;
|
|
608
|
+
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["RootContext","NodeTreeContext","AppContext","NodeTreeContext","NodeTreeContext","FileContext","NodeTreeContext","NodeTreeContext","reactPlugin"],"sources":["../src/components/App.tsx","../src/components/Const.tsx","../src/components/File.tsx","../src/components/Function.tsx","../src/components/Type.tsx","../src/devtools.ts","../src/createReactFabric.ts","../src/utils/getFunctionParams.ts","../src/index.ts"],"sourcesContent":["import { AppContext, NodeTreeContext, provide, RootContext, useContext, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode } from '../types.ts'\n\nexport type AppProps<TMeta extends object = object> = {\n /**\n * Metadata associated with the App.\n */\n meta?: TMeta\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * App container containing the AppContext carrying `meta` and an `exit` hook.\n */\nexport function App<TMeta extends object = object>({ children, ...props }: AppProps<TMeta>): FabricReactElement {\n const { meta = {} } = props\n\n const { exit } = useContext(RootContext)\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'App', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n provide(AppContext, { exit, meta })\n\n return <>{children}</>\n}\n\nApp.displayName = 'App'\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode, JSDoc, Key } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\nexport type ConstProps = {\n key?: Key\n /**\n * Name of the const\n */\n name: string\n /**\n * Does this type need to be exported.\n */\n export?: boolean\n /**\n * Type to make the const being typed\n */\n type?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Use of `const` assertions\n */\n asConst?: boolean\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * Generates a TypeScript constant declaration.\n */\nexport function Const({ children, ...props }: ConstProps): FabricReactElement {\n const { name, export: canExport, type, JSDoc, asConst } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Const', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n const {name}\n {type ? (\n <>\n {':'}\n {type}{' '}\n </>\n ) : (\n ' '\n )}\n = {children}\n {asConst && <> as const</>}\n </>\n )\n}\n\nConst.displayName = 'Const'\n","import { FileContext, NodeTreeContext, provide, useFile, useFileManager, useNodeTree } from '@kubb/fabric-core'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { FabricReactElement, FabricReactNode, Key } from '../types.ts'\n\ntype BasePropsWithBaseName = {\n /**\n * Name to be used to dynamicly create the baseName(based on input.path).\n * Based on UNIX basename\n * @link https://nodejs.org/api/path.html#pathbasenamepath-suffix\n */\n baseName: KubbFile.BaseName\n /**\n * Path will be full qualified path to a specified file.\n */\n path: KubbFile.Path\n}\n\ntype BasePropsWithoutBaseName = {\n baseName?: never\n /**\n * Path will be full qualified path to a specified file.\n */\n path?: KubbFile.Path\n}\n\ntype BaseProps = BasePropsWithBaseName | BasePropsWithoutBaseName\n\ntype Props<TMeta> = BaseProps & {\n key?: Key\n meta?: TMeta\n banner?: string\n footer?: string\n children?: FabricReactNode\n}\n\n/**\n * Adds files to the FileManager\n */\nexport function File<TMeta extends object = object>({ children, ...props }: Props<TMeta>): FabricReactElement {\n const { baseName, path, meta = {}, footer, banner } = props\n\n const fileManager = useFileManager()\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'File', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (!baseName || !path) {\n return <>{children}</>\n }\n\n const file: KubbFile.File = {\n baseName,\n path,\n meta,\n banner,\n footer,\n sources: [],\n imports: [],\n exports: [],\n }\n\n const [resolvedFile] = fileManager.add(file)\n provide(FileContext, resolvedFile)\n\n return <kubb-file {...props}>{children}</kubb-file>\n}\n\nFile.displayName = 'File'\n\ntype FileSourceProps = Omit<KubbFile.Source, 'value'> & {\n key?: Key\n children?: FabricReactNode\n}\n\n/**\n * File.Source\n *\n * Marks a block of source text to be associated with the current file when\n * rendering with the FileCollector. Children are treated as the source string.\n */\nfunction FileSource({ children, ...props }: FileSourceProps): FabricReactElement {\n const { name, isExportable, isIndexable, isTypeOnly } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileSource', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <kubb-source name={name} isTypeOnly={isTypeOnly} isExportable={isExportable} isIndexable={isIndexable}>\n {children}\n </kubb-source>\n )\n}\n\nFileSource.displayName = 'FileSource'\n\nexport type FileExportProps = KubbFile.Export & { key?: Key }\n\n/**\n * File.Export\n *\n * Declares an export entry for the current file. This will be collected by\n * the FileCollector for later emission.\n */\nfunction FileExport(props: FileExportProps): FabricReactElement {\n const { name, path, isTypeOnly, asAlias } = props\n\n const nodeTree = useNodeTree()\n const file = useFile()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileExport', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (file) {\n file.exports.push({\n name,\n path,\n asAlias,\n isTypeOnly,\n })\n }\n\n return <kubb-export name={name} path={path} isTypeOnly={isTypeOnly} asAlias={asAlias} />\n}\n\nFileExport.displayName = 'FileExport'\n\nexport type FileImportProps = KubbFile.Import & { key?: Key }\n\n/**\n * File.Import\n *\n * Declares an import entry for the current file.\n */\nfunction FileImport(props: FileImportProps): FabricReactElement {\n const { name, root, path, isTypeOnly, isNameSpace } = props\n\n const nodeTree = useNodeTree()\n const file = useFile()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileImport', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (file) {\n file.imports.push({\n name,\n path,\n root,\n isNameSpace,\n isTypeOnly,\n })\n }\n\n return <kubb-import name={name} root={root} path={path} isNameSpace={isNameSpace} isTypeOnly={isTypeOnly} />\n}\n\nFileImport.displayName = 'FileImport'\n\nFile.Export = FileExport\nFile.Import = FileImport\nFile.Source = FileSource\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode, JSDoc, Key } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\n key?: Key\n /**\n * Name of the function.\n */\n name: string\n /**\n * Add default when export is being used\n */\n default?: boolean\n /**\n * Parameters/options/props that need to be used.\n */\n params?: string\n /**\n * Does this function need to be exported.\n */\n export?: boolean\n /**\n * Does the function has async/promise behavior.\n * This will also add `Promise<returnType>` as the returnType.\n */\n async?: boolean\n /**\n * Generics that needs to be added for TypeScript.\n */\n generics?: string | string[]\n /**\n * ReturnType(see async for adding Promise type).\n */\n returnType?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * Generates a TypeScript function declaration.\n */\nexport function Function({ children, ...props }: Props): FabricReactElement {\n const { name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Function', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n {isDefault && <>default </>}\n {async && <>async </>}\n function {name}\n {generics && (\n <>\n {'<'}\n {Array.isArray(generics) ? generics.join(', ').trim() : generics}\n {'>'}\n </>\n )}\n ({params}){returnType && !async && <>: {returnType}</>}\n {returnType && async && (\n <>\n : Promise{'<'}\n {returnType}\n {'>'}\n </>\n )}\n {' {'}\n <br />\n <indent />\n {/* Indent component to handle indentation*/}\n {children}\n <br />\n <dedent />\n {/* Indent component to handle indentation*/}\n {'}'}\n </>\n )\n}\n\nFunction.displayName = 'Function'\n\ntype ArrowFunctionProps = Props & {\n /**\n * Create Arrow function in one line\n */\n singleLine?: boolean\n}\n\n/**\n * ArrowFunction\n *\n * Renders an arrow function definition. Supports the same flags as `Function`.\n * Use `singleLine` to render the body as a single-line expression.\n */\nfunction ArrowFunction({ children, ...props }: ArrowFunctionProps) {\n const { name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, singleLine } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'ArrowFunction', props })\n\n provide(NodeTreeContext, childTree)\n }\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n {isDefault && <>default </>}\n const {name} = {async && <>async </>}\n {generics && (\n <>\n {'<'}\n {Array.isArray(generics) ? generics.join(', ').trim() : generics}\n {'>'}\n </>\n )}\n ({params}){returnType && !async && <>: {returnType}</>}\n {returnType && async && (\n <>\n : Promise{'<'}\n {returnType}\n {'>'}\n </>\n )}\n {singleLine && (\n <>\n {' => '}\n {children}\n <br />\n </>\n )}\n {!singleLine && (\n <>\n {' => {'}\n <br />\n <indent />\n {/* Indent component to handle indentation*/}\n {children}\n <br />\n <dedent />\n {/* Indent component to handle indentation*/}\n {'}'}\n <br />\n </>\n )}\n </>\n )\n}\n\nArrowFunction.displayName = 'ArrowFunction'\nFunction.Arrow = ArrowFunction\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode, JSDoc, Key } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\nexport type TypeProps = {\n key?: Key\n /**\n * Name of the type, this needs to start with a capital letter.\n */\n name: string\n /**\n * Does this type need to be exported.\n */\n export?: boolean\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * Generates a TypeScript type declaration.\n */\nexport function Type({ children, ...props }: TypeProps): FabricReactElement {\n const { name, export: canExport, JSDoc } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Type', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (name.charAt(0).toUpperCase() !== name.charAt(0)) {\n throw new Error('Name should start with a capital letter(see TypeScript types)')\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n type {name} = {children}\n </>\n )\n}\n\nType.displayName = 'Type'\n","import { execa } from 'execa'\nimport { onExit } from 'signal-exit'\nimport ws from 'ws'\n\nimport { Renderer } from './Renderer.ts'\n\ndeclare global {\n var WebSocket: typeof WebSocket\n var self: any\n var window: any\n var isDevtoolsEnabled: any\n}\n\nlet isOpen = false\n\nexport function openDevtools() {\n if (isOpen) {\n return undefined\n }\n // Set up global polyfills BEFORE importing react-devtools-core\n // This is required because react-devtools-core expects these to be available\n const customGlobal = global as any\n customGlobal.WebSocket ||= ws\n customGlobal.window ||= global\n customGlobal.self ||= global\n customGlobal.isDevtoolsEnabled = true\n\n // Filter out Kubb internal components from devtools for a cleaner view.\n // See https://github.com/facebook/react/blob/edf6eac8a181860fd8a2d076a43806f1237495a1/packages/react-devtools-shared/src/types.js#L24\n customGlobal.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ = [\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'Context.Provider',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'Root',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'ErrorBoundary',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-file',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-text',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-import',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-export',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-source',\n isEnabled: true,\n isValid: true,\n },\n ]\n\n // biome-ignore lint/suspicious/noTsIgnore: cannot find types\n // @ts-ignore\n import('react-devtools-core').then(async (devtools) => {\n console.info('Opening devtools')\n const controller = new AbortController()\n if (!isOpen) {\n execa({\n stdio: 'pipe',\n preferLocal: true,\n cancelSignal: controller.signal,\n gracefulCancel: true,\n })`npx react-devtools@6.1.5`\n }\n\n isOpen = true\n\n // Destructure the functions from the module\n const { initialize, connectToDevTools } = devtools?.default || devtools\n\n // Initialize DevTools BEFORE importing Renderer (which imports React)\n initialize()\n console.info('Initializing devtools')\n\n // Inject the renderer BEFORE connecting to DevTools\n // This ensures DevTools can properly discover the custom renderer\n Renderer.injectIntoDevTools({\n bundleType: 1,\n version: '19.2.3',\n rendererPackageName: 'kubb',\n // findFiberByHostInstance is required for DevTools to map elements to fibers\n findFiberByHostInstance: () => null,\n })\n\n console.info('Connecting devtools')\n\n try {\n connectToDevTools({\n host: 'localhost',\n port: 8097,\n useHttps: false,\n isAppActive: () => true,\n })\n } catch (e) {\n console.error(e)\n console.info('Error when connecting the devtools')\n }\n\n onExit(\n () => {\n console.info('Disconnecting devtools')\n controller.abort()\n },\n { alwaysLast: false },\n )\n })\n}\n","import { createFabric } from '@kubb/fabric-core'\nimport type { Fabric, FabricConfig, FabricMode } from '@kubb/fabric-core/types'\nimport { openDevtools } from './devtools.ts'\nimport type { Options } from './plugins/reactPlugin.ts'\nimport { reactPlugin } from './plugins/reactPlugin.ts'\n\nexport function createReactFabric(\n config: FabricConfig<Options & { mode?: FabricMode; devtools?: boolean }> = {},\n): Fabric<Options & { mode?: FabricMode; devtools?: boolean }> {\n if (config.devtools) {\n openDevtools()\n }\n\n const fabric = createFabric({ mode: config.mode })\n\n fabric.use(reactPlugin, {\n stdout: config.stdout,\n stderr: config.stderr,\n debug: config.debug,\n stdin: config.stdin,\n })\n\n return fabric\n}\n","import { orderBy } from 'natural-orderby'\n\nexport type Param = {\n /**\n * `object` will return the pathParams as an object.\n *\n * `inline` will return the pathParams as comma separated params.\n * @default `'inline'`\n * @private\n */\n mode?: 'object' | 'inline' | 'inlineSpread'\n type?: 'string' | 'number' | (string & {})\n optional?: boolean\n /**\n * @example test = \"default\"\n */\n default?: string\n /**\n * Used for no TypeScript(with mode object)\n * @example test: \"default\"\n */\n value?: string\n children?: Params\n}\n\ntype ParamItem =\n | (Pick<Param, 'mode' | 'type' | 'value'> & {\n optional?: true\n default?: never\n children?: Params\n })\n | (Pick<Param, 'mode' | 'type' | 'value'> & {\n optional?: false\n default?: string\n children?: Params\n })\n\nexport type Params = Record<string, Param | undefined>\n\ntype Options = {\n type: 'constructor' | 'call' | 'object' | 'objectValue'\n transformName?: (name: string) => string\n transformType?: (type: string) => string\n}\n\nfunction order(items: Array<[key: string, item?: ParamItem]>) {\n return orderBy(\n items.filter(Boolean),\n [\n ([_key, item]) => {\n if (item?.children) {\n return 0 // Treat items with children as required (they'll get = {} if all children are optional)\n }\n // Priority order: required (0) → optional (1) → default-only (2)\n if (item?.optional) {\n return 1 // Optional parameters (with or without default)\n }\n if (item?.default) {\n // Parameters with default only (not marked as optional)\n // Note: While the ParamItem type suggests optional and default are mutually exclusive,\n // this handles the case where a parameter has a default value but isn't explicitly marked as optional\n return 2\n }\n return 0 // Required parameters\n },\n ],\n ['asc'],\n )\n}\n\nfunction parseChild(key: string, item: ParamItem, options: Options): string | null {\n // @ts-expect-error\n const entries = order(Object.entries(item.children))\n\n const types: string[] = []\n const names: string[] = []\n\n const optional = entries.every(([_key, item]) => item?.optional || !!item?.default)\n\n entries.forEach(([key, entryItem]) => {\n if (entryItem) {\n const name = parseItem(key, { ...entryItem, type: undefined }, options)\n if (entryItem.children) {\n const subTypes = Object.entries(entryItem.children)\n .map(([key]) => {\n return key\n })\n .join(', ')\n\n if (subTypes) {\n names.push(`${name}: { ${subTypes} }`)\n } else {\n names.push(name)\n }\n } else {\n if (options.type === 'call' && options.transformName) {\n names.push(`${key}: ${name}`)\n } else {\n names.push(name)\n }\n }\n\n if (entries.some(([_key, item]) => item?.type)) {\n types.push(parseItem(key, { ...entryItem, default: undefined }, options))\n }\n }\n })\n\n const name = item.mode === 'inline' ? key : names.length ? `{ ${names.join(', ')} }` : undefined\n const type = item.type ? item.type : types.length ? `{ ${types.join('; ')} }` : undefined\n\n if (!name) {\n return null\n }\n\n return parseItem(\n name,\n {\n type,\n default: item.default,\n optional: !item.default ? optional : undefined,\n } as ParamItem,\n options,\n )\n}\n\nfunction parseItem(name: string, item: ParamItem, options: Options): string {\n const acc: string[] = []\n const transformedName = options.transformName ? options.transformName(name) : name\n const transformedType = options.transformType && item.type ? options.transformType(item.type) : item.type\n\n if (options.type === 'object') {\n return transformedName\n }\n\n if (options.type === 'objectValue') {\n return item.value ? `${transformedName}: ${item.value}` : transformedName\n }\n\n //LEGACY\n if (item.type && options.type === 'constructor') {\n if (item.optional) {\n // Check if this is a destructured parameter (object mode)\n const isDestructured = transformedName.startsWith('{')\n if (isDestructured) {\n // For destructured parameters, use \": type = {}\" syntax to make it optional\n acc.push(`${transformedName}: ${transformedType} = {}`)\n } else {\n // For inline parameters, use \"?: type\" syntax\n acc.push(`${transformedName}?: ${transformedType}`)\n }\n } else {\n acc.push(`${transformedName}: ${transformedType}${item.default ? ` = ${item.default}` : ''}`)\n }\n } else if (item.default && options.type === 'constructor') {\n acc.push(`${transformedName} = ${item.default}`)\n } else if (item.value) {\n acc.push(`${transformedName} : ${item.value}`)\n } else if (item.mode === 'inlineSpread') {\n acc.push(`... ${transformedName}`)\n } else {\n acc.push(transformedName)\n }\n\n return acc[0] as string\n}\n\nexport function getFunctionParams(params: Params, options: Options): string {\n const entries = order(Object.entries(params as Record<string, ParamItem | undefined>))\n\n return entries\n .reduce((acc, [key, item]) => {\n if (!item) {\n return acc\n }\n\n if (item.children) {\n if (Object.keys(item.children).length === 0) {\n return acc\n }\n\n if (item.mode === 'inlineSpread') {\n return [...acc, getFunctionParams(item.children, options)]\n }\n\n const parsedItem = parseChild(key, item, options)\n if (!parsedItem) {\n return acc\n }\n\n return [...acc, parsedItem]\n }\n\n const parsedItem = parseItem(key, item, options)\n\n return [...acc, parsedItem]\n }, [] as string[])\n .join(', ')\n}\n\nexport function createFunctionParams(params: Params): Params {\n return params\n}\n// TODO use of zod\n//TODO use of string as `$name: $type` to create templates for functions instead of call/constructor\nexport class FunctionParams {\n #params: Params\n\n static factory(params: Params) {\n return new FunctionParams(params)\n }\n constructor(params: Params) {\n this.#params = params\n }\n\n get params(): Params {\n return this.#params\n }\n\n get flatParams(): Params {\n const flatter = (acc: Params, [key, item]: [key: string, item?: Param]): Params => {\n if (item?.children) {\n return Object.entries(item.children).reduce(flatter, acc)\n }\n if (item) {\n acc[key] = item\n }\n\n return acc\n }\n return Object.entries(this.#params).reduce(flatter, {} as Params)\n }\n\n toCall({ transformName, transformType }: Pick<Options, 'transformName' | 'transformType'> = {}): string {\n return getFunctionParams(this.#params, { type: 'call', transformName, transformType })\n }\n\n toObject(): string {\n return getFunctionParams(this.#params, { type: 'object' })\n }\n toObjectValue(): string {\n return getFunctionParams(this.#params, { type: 'objectValue' })\n }\n\n toConstructor(): string {\n return getFunctionParams(this.#params, { type: 'constructor' })\n }\n}\n","// import './globals.ts'\nimport * as React from 'react'\n\nexport type { Fabric } from '@kubb/fabric-core'\n// expose fabric core helpers\nexport { createContext, createFabric, createFile, FileManager, FileProcessor, TreeNode, useContext } from '@kubb/fabric-core'\n\n// react helpers\nexport const useState = React.useState\nexport const useEffect = React.useEffect\nexport const useReducer = React.useReducer\nexport const useRef = React.useRef\n\nexport { App } from './components/App.tsx'\nexport { Const } from './components/Const.tsx'\nexport { File } from './components/File.tsx'\nexport { Function } from './components/Function.tsx'\n// components\nexport { Root } from './components/Root.tsx'\nexport { Type } from './components/Type.tsx'\n\n// composables\nexport { useApp } from './composables/useApp.ts'\nexport { useFile } from './composables/useFile.ts'\nexport { useLifecycle } from './composables/useLifecycle.tsx'\n\n// factories\nexport { createReactFabric } from './createReactFabric.ts'\nexport { openDevtools } from './devtools.ts'\nexport { Runtime } from './Runtime.tsx'\n// utils\nexport { createFunctionParams, FunctionParams } from './utils/getFunctionParams.ts'\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["RootContext","NodeTreeContext","AppContext","NodeTreeContext","NodeTreeContext","FileContext","NodeTreeContext","NodeTreeContext","reactPlugin","#params"],"sources":["../src/components/App.tsx","../src/components/Const.tsx","../src/components/File.tsx","../src/components/Function.tsx","../src/components/Type.tsx","../src/devtools.ts","../src/createReactFabric.ts","../src/utils/getFunctionParams.ts","../src/index.ts"],"sourcesContent":["import { AppContext, NodeTreeContext, provide, RootContext, useContext, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode } from '../types.ts'\n\nexport type AppProps<TMeta extends object = object> = {\n /**\n * Metadata associated with the App.\n */\n meta?: TMeta\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * App container containing the AppContext carrying `meta` and an `exit` hook.\n */\nexport function App<TMeta extends object = object>({ children, ...props }: AppProps<TMeta>): FabricReactElement {\n const { meta = {} } = props\n\n const { exit } = useContext(RootContext)\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'App', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n provide(AppContext, { exit, meta })\n\n return <>{children}</>\n}\n\nApp.displayName = 'App'\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode, JSDoc, Key } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\nexport type ConstProps = {\n key?: Key\n /**\n * Name of the const\n */\n name: string\n /**\n * Does this type need to be exported.\n */\n export?: boolean\n /**\n * Type to make the const being typed\n */\n type?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Use of `const` assertions\n */\n asConst?: boolean\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * Generates a TypeScript constant declaration.\n */\nexport function Const({ children, ...props }: ConstProps): FabricReactElement {\n const { name, export: canExport, type, JSDoc, asConst } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Const', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n const {name}\n {type ? (\n <>\n {':'}\n {type}{' '}\n </>\n ) : (\n ' '\n )}\n = {children}\n {asConst && <> as const</>}\n </>\n )\n}\n\nConst.displayName = 'Const'\n","import { FileContext, NodeTreeContext, provide, useFile, useFileManager, useNodeTree } from '@kubb/fabric-core'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { FabricReactElement, FabricReactNode, Key } from '../types.ts'\n\ntype BasePropsWithBaseName = {\n /**\n * Name to be used to dynamicly create the baseName(based on input.path).\n * Based on UNIX basename\n * @link https://nodejs.org/api/path.html#pathbasenamepath-suffix\n */\n baseName: KubbFile.BaseName\n /**\n * Path will be full qualified path to a specified file.\n */\n path: KubbFile.Path\n}\n\ntype BasePropsWithoutBaseName = {\n baseName?: never\n /**\n * Path will be full qualified path to a specified file.\n */\n path?: KubbFile.Path\n}\n\ntype BaseProps = BasePropsWithBaseName | BasePropsWithoutBaseName\n\ntype Props<TMeta> = BaseProps & {\n key?: Key\n meta?: TMeta\n banner?: string\n footer?: string\n children?: FabricReactNode\n}\n\n/**\n * Adds files to the FileManager\n */\nexport function File<TMeta extends object = object>({ children, ...props }: Props<TMeta>): FabricReactElement {\n const { baseName, path, meta = {}, footer, banner } = props\n\n const fileManager = useFileManager()\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'File', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (!baseName || !path) {\n return <>{children}</>\n }\n\n const file: KubbFile.File = {\n baseName,\n path,\n meta,\n banner,\n footer,\n sources: [],\n imports: [],\n exports: [],\n }\n\n const [resolvedFile] = fileManager.add(file)\n provide(FileContext, resolvedFile)\n\n return <kubb-file {...props}>{children}</kubb-file>\n}\n\nFile.displayName = 'File'\n\ntype FileSourceProps = Omit<KubbFile.Source, 'value'> & {\n key?: Key\n children?: FabricReactNode\n}\n\n/**\n * File.Source\n *\n * Marks a block of source text to be associated with the current file when\n * rendering with the FileCollector. Children are treated as the source string.\n */\nfunction FileSource({ children, ...props }: FileSourceProps): FabricReactElement {\n const { name, isExportable, isIndexable, isTypeOnly } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileSource', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <kubb-source name={name} isTypeOnly={isTypeOnly} isExportable={isExportable} isIndexable={isIndexable}>\n {children}\n </kubb-source>\n )\n}\n\nFileSource.displayName = 'FileSource'\n\nexport type FileExportProps = KubbFile.Export & { key?: Key }\n\n/**\n * File.Export\n *\n * Declares an export entry for the current file. This will be collected by\n * the FileCollector for later emission.\n */\nfunction FileExport(props: FileExportProps): FabricReactElement {\n const { name, path, isTypeOnly, asAlias } = props\n\n const nodeTree = useNodeTree()\n const file = useFile()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileExport', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (file) {\n file.exports.push({\n name,\n path,\n asAlias,\n isTypeOnly,\n })\n }\n\n return <kubb-export name={name} path={path} isTypeOnly={isTypeOnly} asAlias={asAlias} />\n}\n\nFileExport.displayName = 'FileExport'\n\nexport type FileImportProps = KubbFile.Import & { key?: Key }\n\n/**\n * File.Import\n *\n * Declares an import entry for the current file.\n */\nfunction FileImport(props: FileImportProps): FabricReactElement {\n const { name, root, path, isTypeOnly, isNameSpace } = props\n\n const nodeTree = useNodeTree()\n const file = useFile()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileImport', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (file) {\n file.imports.push({\n name,\n path,\n root,\n isNameSpace,\n isTypeOnly,\n })\n }\n\n return <kubb-import name={name} root={root} path={path} isNameSpace={isNameSpace} isTypeOnly={isTypeOnly} />\n}\n\nFileImport.displayName = 'FileImport'\n\nFile.Export = FileExport\nFile.Import = FileImport\nFile.Source = FileSource\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode, JSDoc, Key } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\n key?: Key\n /**\n * Name of the function.\n */\n name: string\n /**\n * Add default when export is being used\n */\n default?: boolean\n /**\n * Parameters/options/props that need to be used.\n */\n params?: string\n /**\n * Does this function need to be exported.\n */\n export?: boolean\n /**\n * Does the function has async/promise behavior.\n * This will also add `Promise<returnType>` as the returnType.\n */\n async?: boolean\n /**\n * Generics that needs to be added for TypeScript.\n */\n generics?: string | string[]\n /**\n * ReturnType(see async for adding Promise type).\n */\n returnType?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * Generates a TypeScript function declaration.\n */\nexport function Function({ children, ...props }: Props): FabricReactElement {\n const { name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Function', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n {isDefault && <>default </>}\n {async && <>async </>}\n function {name}\n {generics && (\n <>\n {'<'}\n {Array.isArray(generics) ? generics.join(', ').trim() : generics}\n {'>'}\n </>\n )}\n ({params}){returnType && !async && <>: {returnType}</>}\n {returnType && async && (\n <>\n : Promise{'<'}\n {returnType}\n {'>'}\n </>\n )}\n {' {'}\n <br />\n <indent />\n {/* Indent component to handle indentation*/}\n {children}\n <br />\n <dedent />\n {/* Indent component to handle indentation*/}\n {'}'}\n </>\n )\n}\n\nFunction.displayName = 'Function'\n\ntype ArrowFunctionProps = Props & {\n /**\n * Create Arrow function in one line\n */\n singleLine?: boolean\n}\n\n/**\n * ArrowFunction\n *\n * Renders an arrow function definition. Supports the same flags as `Function`.\n * Use `singleLine` to render the body as a single-line expression.\n */\nfunction ArrowFunction({ children, ...props }: ArrowFunctionProps) {\n const { name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, singleLine } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'ArrowFunction', props })\n\n provide(NodeTreeContext, childTree)\n }\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n {isDefault && <>default </>}\n const {name} = {async && <>async </>}\n {generics && (\n <>\n {'<'}\n {Array.isArray(generics) ? generics.join(', ').trim() : generics}\n {'>'}\n </>\n )}\n ({params}){returnType && !async && <>: {returnType}</>}\n {returnType && async && (\n <>\n : Promise{'<'}\n {returnType}\n {'>'}\n </>\n )}\n {singleLine && (\n <>\n {' => '}\n {children}\n <br />\n </>\n )}\n {!singleLine && (\n <>\n {' => {'}\n <br />\n <indent />\n {/* Indent component to handle indentation*/}\n {children}\n <br />\n <dedent />\n {/* Indent component to handle indentation*/}\n {'}'}\n <br />\n </>\n )}\n </>\n )\n}\n\nArrowFunction.displayName = 'ArrowFunction'\nFunction.Arrow = ArrowFunction\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode, JSDoc, Key } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\nexport type TypeProps = {\n key?: Key\n /**\n * Name of the type, this needs to start with a capital letter.\n */\n name: string\n /**\n * Does this type need to be exported.\n */\n export?: boolean\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * Generates a TypeScript type declaration.\n */\nexport function Type({ children, ...props }: TypeProps): FabricReactElement {\n const { name, export: canExport, JSDoc } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Type', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (name.charAt(0).toUpperCase() !== name.charAt(0)) {\n throw new Error('Name should start with a capital letter(see TypeScript types)')\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n type {name} = {children}\n </>\n )\n}\n\nType.displayName = 'Type'\n","import { spawn } from 'node:child_process'\nimport { onProcessExit } from '@kubb/fabric-core'\nimport ws from 'ws'\nimport { Renderer } from './Renderer.ts'\n\ndeclare global {\n var WebSocket: typeof WebSocket\n var self: any\n var window: any\n var isDevtoolsEnabled: any\n}\n\nlet isOpen = false\n\nexport function openDevtools() {\n if (isOpen) {\n return undefined\n }\n // Set up global polyfills BEFORE importing react-devtools-core\n // This is required because react-devtools-core expects these to be available\n const customGlobal = global as any\n customGlobal.WebSocket ||= ws\n customGlobal.window ||= global\n customGlobal.self ||= global\n customGlobal.isDevtoolsEnabled = true\n\n // Filter out Kubb internal components from devtools for a cleaner view.\n // See https://github.com/facebook/react/blob/edf6eac8a181860fd8a2d076a43806f1237495a1/packages/react-devtools-shared/src/types.js#L24\n customGlobal.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ = [\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'Context.Provider',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'Root',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'ErrorBoundary',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-file',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-text',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-import',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-export',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-source',\n isEnabled: true,\n isValid: true,\n },\n ]\n\n // biome-ignore lint/suspicious/noTsIgnore: cannot find types\n // @ts-ignore\n import('react-devtools-core').then(async (devtools) => {\n console.info('Opening devtools')\n const controller = new AbortController()\n if (!isOpen) {\n const child = spawn('npx', ['react-devtools@6.1.5'], {\n signal: controller.signal,\n stdio: 'pipe',\n detached: true,\n })\n child.unref()\n }\n\n isOpen = true\n\n // Destructure the functions from the module\n const { initialize, connectToDevTools } = devtools?.default || devtools\n\n // Initialize DevTools BEFORE importing Renderer (which imports React)\n initialize()\n console.info('Initializing devtools')\n\n // Inject the renderer BEFORE connecting to DevTools\n // This ensures DevTools can properly discover the custom renderer\n Renderer.injectIntoDevTools({\n bundleType: 1,\n version: '19.2.3',\n rendererPackageName: 'kubb',\n // findFiberByHostInstance is required for DevTools to map elements to fibers\n findFiberByHostInstance: () => null,\n })\n\n console.info('Connecting devtools')\n\n try {\n connectToDevTools({\n host: 'localhost',\n port: 8097,\n useHttps: false,\n isAppActive: () => true,\n })\n } catch (e) {\n console.error(e)\n console.info('Error when connecting the devtools')\n }\n\n onProcessExit(() => {\n console.info('Disconnecting devtools')\n controller.abort()\n })\n })\n}\n","import { createFabric } from '@kubb/fabric-core'\nimport type { Fabric, FabricConfig, FabricMode } from '@kubb/fabric-core/types'\nimport { openDevtools } from './devtools.ts'\nimport type { Options } from './plugins/reactPlugin.ts'\nimport { reactPlugin } from './plugins/reactPlugin.ts'\n\nexport function createReactFabric(\n config: FabricConfig<Options & { mode?: FabricMode; devtools?: boolean }> = {},\n): Fabric<Options & { mode?: FabricMode; devtools?: boolean }> {\n if (config.devtools) {\n openDevtools()\n }\n\n const fabric = createFabric({ mode: config.mode })\n\n fabric.use(reactPlugin, {\n stdout: config.stdout,\n stderr: config.stderr,\n debug: config.debug,\n stdin: config.stdin,\n })\n\n return fabric\n}\n","import { sortBy } from 'remeda'\n\nexport type Param = {\n /**\n * `object` will return the pathParams as an object.\n *\n * `inline` will return the pathParams as comma separated params.\n * @default `'inline'`\n * @private\n */\n mode?: 'object' | 'inline' | 'inlineSpread'\n type?: 'string' | 'number' | (string & {})\n optional?: boolean\n /**\n * @example test = \"default\"\n */\n default?: string\n /**\n * Used for no TypeScript(with mode object)\n * @example test: \"default\"\n */\n value?: string\n children?: Params\n}\n\ntype ParamItem =\n | (Pick<Param, 'mode' | 'type' | 'value'> & {\n optional?: true\n default?: never\n children?: Params\n })\n | (Pick<Param, 'mode' | 'type' | 'value'> & {\n optional?: false\n default?: string\n children?: Params\n })\n\nexport type Params = Record<string, Param | undefined>\n\ntype Options = {\n type: 'constructor' | 'call' | 'object' | 'objectValue'\n transformName?: (name: string) => string\n transformType?: (type: string) => string\n}\n\nfunction order(items: Array<[key: string, item?: ParamItem]>) {\n return sortBy(items.filter(Boolean) as Array<[key: string, item?: ParamItem]>, ([_key, item]) => {\n if (item?.children) {\n return 0 // Treat items with children as required (they'll get = {} if all children are optional)\n }\n // Priority order: required (0) → optional (1) → default-only (2)\n if (item?.optional) {\n return 1 // Optional parameters (with or without default)\n }\n if (item?.default) {\n // Parameters with default only (not marked as optional)\n // Note: While the ParamItem type suggests optional and default are mutually exclusive,\n // this handles the case where a parameter has a default value but isn't explicitly marked as optional\n return 2\n }\n return 0 // Required parameters\n })\n}\n\nfunction parseChild(key: string, item: ParamItem, options: Options): string | null {\n // @ts-expect-error\n const entries = order(Object.entries(item.children))\n\n const types: string[] = []\n const names: string[] = []\n\n const optional = entries.every(([_key, item]) => item?.optional || !!item?.default)\n\n entries.forEach(([key, entryItem]) => {\n if (entryItem) {\n const name = parseItem(key, { ...entryItem, type: undefined }, options)\n if (entryItem.children) {\n const subTypes = Object.entries(entryItem.children)\n .map(([key]) => {\n return key\n })\n .join(', ')\n\n if (subTypes) {\n names.push(`${name}: { ${subTypes} }`)\n } else {\n names.push(name)\n }\n } else {\n if (options.type === 'call' && options.transformName) {\n names.push(`${key}: ${name}`)\n } else {\n names.push(name)\n }\n }\n\n if (entries.some(([_key, item]) => item?.type)) {\n types.push(parseItem(key, { ...entryItem, default: undefined }, options))\n }\n }\n })\n\n const name = item.mode === 'inline' ? key : names.length ? `{ ${names.join(', ')} }` : undefined\n const type = item.type ? item.type : types.length ? `{ ${types.join('; ')} }` : undefined\n\n if (!name) {\n return null\n }\n\n return parseItem(\n name,\n {\n type,\n default: item.default,\n optional: !item.default ? optional : undefined,\n } as ParamItem,\n options,\n )\n}\n\nfunction parseItem(name: string, item: ParamItem, options: Options): string {\n const acc: string[] = []\n const transformedName = options.transformName ? options.transformName(name) : name\n const transformedType = options.transformType && item.type ? options.transformType(item.type) : item.type\n\n if (options.type === 'object') {\n return transformedName\n }\n\n if (options.type === 'objectValue') {\n return item.value ? `${transformedName}: ${item.value}` : transformedName\n }\n\n //LEGACY\n if (item.type && options.type === 'constructor') {\n if (item.optional) {\n // Check if this is a destructured parameter (object mode)\n const isDestructured = transformedName.startsWith('{')\n if (isDestructured) {\n // For destructured parameters, use \": type = {}\" syntax to make it optional\n acc.push(`${transformedName}: ${transformedType} = {}`)\n } else {\n // For inline parameters, use \"?: type\" syntax\n acc.push(`${transformedName}?: ${transformedType}`)\n }\n } else {\n acc.push(`${transformedName}: ${transformedType}${item.default ? ` = ${item.default}` : ''}`)\n }\n } else if (item.default && options.type === 'constructor') {\n acc.push(`${transformedName} = ${item.default}`)\n } else if (item.value) {\n acc.push(`${transformedName} : ${item.value}`)\n } else if (item.mode === 'inlineSpread') {\n acc.push(`... ${transformedName}`)\n } else {\n acc.push(transformedName)\n }\n\n return acc[0] as string\n}\n\nexport function getFunctionParams(params: Params, options: Options): string {\n const entries = order(Object.entries(params as Record<string, ParamItem | undefined>))\n\n return entries\n .reduce((acc, [key, item]) => {\n if (!item) {\n return acc\n }\n\n if (item.children) {\n if (Object.keys(item.children).length === 0) {\n return acc\n }\n\n if (item.mode === 'inlineSpread') {\n return [...acc, getFunctionParams(item.children, options)]\n }\n\n const parsedItem = parseChild(key, item, options)\n if (!parsedItem) {\n return acc\n }\n\n return [...acc, parsedItem]\n }\n\n const parsedItem = parseItem(key, item, options)\n\n return [...acc, parsedItem]\n }, [] as string[])\n .join(', ')\n}\n\nexport function createFunctionParams(params: Params): Params {\n return params\n}\n// TODO use of zod\n//TODO use of string as `$name: $type` to create templates for functions instead of call/constructor\nexport class FunctionParams {\n #params: Params\n\n static factory(params: Params) {\n return new FunctionParams(params)\n }\n constructor(params: Params) {\n this.#params = params\n }\n\n get params(): Params {\n return this.#params\n }\n\n get flatParams(): Params {\n const flatter = (acc: Params, [key, item]: [key: string, item?: Param]): Params => {\n if (item?.children) {\n return Object.entries(item.children).reduce(flatter, acc)\n }\n if (item) {\n acc[key] = item\n }\n\n return acc\n }\n return Object.entries(this.#params).reduce(flatter, {} as Params)\n }\n\n toCall({ transformName, transformType }: Pick<Options, 'transformName' | 'transformType'> = {}): string {\n return getFunctionParams(this.#params, { type: 'call', transformName, transformType })\n }\n\n toObject(): string {\n return getFunctionParams(this.#params, { type: 'object' })\n }\n toObjectValue(): string {\n return getFunctionParams(this.#params, { type: 'objectValue' })\n }\n\n toConstructor(): string {\n return getFunctionParams(this.#params, { type: 'constructor' })\n }\n}\n","// import './globals.ts'\nimport * as React from 'react'\n\nexport type { Fabric } from '@kubb/fabric-core'\n// expose fabric core helpers\nexport { createContext, createFabric, createFile, FileManager, FileProcessor, TreeNode, useContext } from '@kubb/fabric-core'\n\n// react helpers\nexport const useState = React.useState\nexport const useEffect = React.useEffect\nexport const useReducer = React.useReducer\nexport const useRef = React.useRef\n\nexport { App } from './components/App.tsx'\nexport { Const } from './components/Const.tsx'\nexport { File } from './components/File.tsx'\nexport { Function } from './components/Function.tsx'\n// components\nexport { Root } from './components/Root.tsx'\nexport { Type } from './components/Type.tsx'\n\n// composables\nexport { useApp } from './composables/useApp.ts'\nexport { useFile } from './composables/useFile.ts'\nexport { useLifecycle } from './composables/useLifecycle.tsx'\n\n// factories\nexport { createReactFabric } from './createReactFabric.ts'\nexport { openDevtools } from './devtools.ts'\nexport { Runtime } from './Runtime.tsx'\n// utils\nexport { createFunctionParams, FunctionParams } from './utils/getFunctionParams.ts'\n"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as createFunctionParams, t as FunctionParams } from "./getFunctionParams-CINBJQGH.js";
|
|
1
|
+
import { i as createFunctionParams, t as FunctionParams } from "./getFunctionParams-ClT1iMr_.js";
|
|
3
2
|
import { FabricReactElement, FabricReactNode, Key, t as types_d_exports } from "./types.js";
|
|
4
|
-
import { t as Options$1 } from "./reactPlugin-
|
|
3
|
+
import { t as Options$1 } from "./reactPlugin-Ch2aSTYS.js";
|
|
5
4
|
import { Fabric, FileManager, FileManager as FileManager$1, FileProcessor, TreeNode, TreeNode as TreeNode$1, createContext, createFabric, createFile, useApp, useContext, useFile, useLifecycle } from "@kubb/fabric-core";
|
|
6
5
|
import { Fabric as Fabric$1, FabricConfig, FabricMode, KubbFile } from "@kubb/fabric-core/types";
|
|
7
6
|
import * as react from "react";
|
|
@@ -344,4 +343,5 @@ declare const useEffect: typeof react.useEffect;
|
|
|
344
343
|
declare const useReducer: typeof react.useReducer;
|
|
345
344
|
declare const useRef: typeof react.useRef;
|
|
346
345
|
//#endregion
|
|
347
|
-
export { App, Const, type Fabric, File, FileManager, FileProcessor, Function, FunctionParams, Root, Runtime, TreeNode, Type, createContext, createFabric, createFile, createFunctionParams, createReactFabric, openDevtools, useApp, useContext, useEffect, useFile, useLifecycle, useReducer, useRef, useState };
|
|
346
|
+
export { App, Const, type Fabric, File, FileManager, FileProcessor, Function, FunctionParams, Root, Runtime, TreeNode, Type, createContext, createFabric, createFile, createFunctionParams, createReactFabric, openDevtools, useApp, useContext, useEffect, useFile, useLifecycle, useReducer, useRef, useState };
|
|
347
|
+
//# sourceMappingURL=index.d.ts.map
|