@kubb/react-fabric 0.2.2 → 0.2.3
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/{Fabric-DwVGMumV.d.ts → Fabric-CoGYXq1o.d.ts} +2 -2
- package/dist/{Fabric-nxgJyzWH.d.cts → Fabric-PGwn47Lb.d.cts} +2 -2
- package/dist/index.cjs +7 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -4
- package/dist/index.d.ts +12 -4
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/parsers.d.cts +1 -1
- package/dist/parsers.d.ts +1 -1
- package/dist/plugins.d.cts +2 -2
- package/dist/plugins.d.ts +2 -2
- package/dist/{reactPlugin-DyvfLVFa.d.ts → reactPlugin-CCty1XGl.d.ts} +2 -2
- package/dist/{reactPlugin-CLgWWifj.d.cts → reactPlugin-SuzV8fwK.d.cts} +2 -2
- package/package.json +2 -2
- package/src/index.ts +1 -1
|
@@ -196,5 +196,5 @@ interface Fabric<TOptions extends FabricOptions = FabricOptions> extends Kubb.Fa
|
|
|
196
196
|
addFile(...files: Array<File>): Promise<void>;
|
|
197
197
|
}
|
|
198
198
|
//#endregion
|
|
199
|
-
export {
|
|
200
|
-
//# sourceMappingURL=Fabric-
|
|
199
|
+
export { FileProcessor as a, Plugin as c, FileManager as i, UserPlugin as l, FabricMode as n, Parser as o, FabricOptions as r, UserParser as s, Fabric as t };
|
|
200
|
+
//# sourceMappingURL=Fabric-CoGYXq1o.d.ts.map
|
|
@@ -196,5 +196,5 @@ interface Fabric<TOptions extends FabricOptions = FabricOptions> extends Kubb.Fa
|
|
|
196
196
|
addFile(...files: Array<File>): Promise<void>;
|
|
197
197
|
}
|
|
198
198
|
//#endregion
|
|
199
|
-
export {
|
|
200
|
-
//# sourceMappingURL=Fabric-
|
|
199
|
+
export { FileProcessor as a, Plugin as c, FileManager as i, UserPlugin as l, FabricMode as n, Parser as o, FabricOptions as r, UserParser as s, Fabric as t };
|
|
200
|
+
//# sourceMappingURL=Fabric-PGwn47Lb.d.cts.map
|
package/dist/index.cjs
CHANGED
|
@@ -427,12 +427,6 @@ exports.Runtime = require_plugins.Runtime;
|
|
|
427
427
|
exports.Type = Type;
|
|
428
428
|
exports.createContext = createContext;
|
|
429
429
|
exports.createElement = createElement;
|
|
430
|
-
Object.defineProperty(exports, 'createFabric', {
|
|
431
|
-
enumerable: true,
|
|
432
|
-
get: function () {
|
|
433
|
-
return __kubb_fabric_core.createFabric;
|
|
434
|
-
}
|
|
435
|
-
});
|
|
436
430
|
exports.createFunctionParams = createFunctionParams;
|
|
437
431
|
exports.createReactFabric = createReactFabric;
|
|
438
432
|
exports.use = use;
|
|
@@ -444,4 +438,11 @@ exports.useLifecycle = useLifecycle;
|
|
|
444
438
|
exports.useReducer = useReducer;
|
|
445
439
|
exports.useRef = useRef;
|
|
446
440
|
exports.useState = useState;
|
|
441
|
+
Object.keys(__kubb_fabric_core).forEach(function (k) {
|
|
442
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
443
|
+
enumerable: true,
|
|
444
|
+
get: function () { return __kubb_fabric_core[k]; }
|
|
445
|
+
});
|
|
446
|
+
});
|
|
447
|
+
|
|
447
448
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["RootContext","result: React.ReactNode[]","Root","reactPlugin","types: string[]","names: string[]","item","key","name","acc: string[]","parsedItem"],"sources":["../src/components/App.tsx","../src/utils/createJSDoc.ts","../src/components/Const.tsx","../src/components/File.tsx","../../../node_modules/.pnpm/indent-string@5.0.0/node_modules/indent-string/index.js","../src/components/Indent.tsx","../src/components/Function.tsx","../src/components/Type.tsx","../src/composables/useApp.ts","../src/composables/useFile.ts","../src/composables/useLifecycle.tsx","../src/createReactFabric.ts","../src/utils/getFunctionParams.ts","../src/index.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { KubbNode } from '../types.ts'\nimport { RootContext } from './Root.tsx'\n\nexport type AppContextProps<TMeta = unknown> = {\n /**\n * Exit (unmount)\n */\n readonly exit: (error?: Error) => void\n readonly meta: TMeta\n}\n\nconst AppContext = createContext<AppContextProps | undefined>(undefined)\n\ntype Props<TMeta = unknown> = {\n readonly children?: KubbNode\n readonly meta: TMeta\n}\n\nexport function App<TMeta = unknown>({ meta, children }: Props<TMeta>) {\n const { exit } = useContext(RootContext)\n\n return <AppContext.Provider value={{ exit, meta }}>{children}</AppContext.Provider>\n}\n\nApp.Context = AppContext\nApp.displayName = 'KubbApp'\n","export function createJSDoc({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\n\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\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 children?: KubbNode\n}\n\nexport function Const({ name, export: canExport, type, JSDoc, asConst, children }: Props) {\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 = {children}\n {asConst && <> as const</>}\n </>\n )\n}\n\nConst.displayName = 'KubbConst'\n","import { createContext } from 'react'\n\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Key, KubbNode } from '../types.ts'\n\nexport type FileContextProps<TMeta extends object = object> = {\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 meta?: TMeta\n}\nconst FileContext = createContext<FileContextProps>({} as FileContextProps)\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?: KubbNode\n}\n\nexport function File<TMeta extends object = object>({ children, ...rest }: Props<TMeta>) {\n if (!rest.baseName || !rest.path) {\n return <>{children}</>\n }\n\n return (\n <kubb-file {...rest}>\n <FileContext.Provider value={{ baseName: rest.baseName, path: rest.path, meta: rest.meta }}>{children}</FileContext.Provider>\n </kubb-file>\n )\n}\n\nFile.displayName = 'KubbFile'\n\ntype FileSourceProps = Omit<KubbFile.Source, 'value'> & {\n key?: Key\n children?: KubbNode\n}\n\nfunction FileSource({ isTypeOnly, name, isExportable, isIndexable, children }: FileSourceProps) {\n return (\n <kubb-source name={name} isTypeOnly={isTypeOnly} isExportable={isExportable} isIndexable={isIndexable}>\n {children}\n </kubb-source>\n )\n}\n\nFileSource.displayName = 'KubbFileSource'\n\ntype FileExportProps = KubbFile.Export & { key?: Key }\n\nfunction FileExport({ name, path, isTypeOnly, asAlias }: FileExportProps) {\n return <kubb-export name={name} path={path} isTypeOnly={isTypeOnly || false} asAlias={asAlias} />\n}\n\nFileExport.displayName = 'KubbFileExport'\n\ntype FileImportProps = KubbFile.Import & { key?: Key }\n\nfunction FileImport({ name, root, path, isTypeOnly, isNameSpace }: FileImportProps) {\n return <kubb-import name={name} root={root} path={path} isNameSpace={isNameSpace} isTypeOnly={isTypeOnly || false} />\n}\n\nFileImport.displayName = 'KubbFileImport'\n\nFile.Export = FileExport\nFile.Import = FileImport\nFile.Source = FileSource\nFile.Context = FileContext\n","export default function indentString(string, count = 1, options = {}) {\n\tconst {\n\t\tindent = ' ',\n\t\tincludeEmptyLines = false\n\t} = options;\n\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof string}\\``\n\t\t);\n\t}\n\n\tif (typeof count !== 'number') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof count}\\``\n\t\t);\n\t}\n\n\tif (count < 0) {\n\t\tthrow new RangeError(\n\t\t\t`Expected \\`count\\` to be at least 0, got \\`${count}\\``\n\t\t);\n\t}\n\n\tif (typeof indent !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof indent}\\``\n\t\t);\n\t}\n\n\tif (count === 0) {\n\t\treturn string;\n\t}\n\n\tconst regex = includeEmptyLines ? /^/gm : /^(?!\\s*$)/gm;\n\n\treturn string.replace(regex, indent.repeat(count));\n}\n","import dedent from 'dedent'\nimport indentString from 'indent-string'\nimport React from 'react'\n\ntype IndentProps = {\n size?: number\n children?: React.ReactNode\n}\n\n/**\n * Indents all children by `size` spaces.\n * Collapses consecutive <br /> tags to at most 2.\n */\nexport function Indent({ size = 2, children }: IndentProps) {\n if (!children) return null\n\n const filtered = React.Children.toArray(children).filter(Boolean)\n const result: React.ReactNode[] = []\n\n let prevWasBr = false\n let brCount = 0\n\n filtered.forEach((child) => {\n if (React.isValidElement(child) && child.type === 'br') {\n if (!prevWasBr || brCount < 2) {\n result.push(child)\n brCount++\n }\n prevWasBr = true\n } else {\n prevWasBr = false\n brCount = 0\n result.push(child)\n }\n })\n\n return (\n <>\n {result.map((child) => {\n if (typeof child === 'string') {\n const cleaned = dedent(child)\n return <>{indentString(cleaned, size)}</>\n }\n return (\n <>\n {' '.repeat(size)}\n {child}\n </>\n )\n })}\n </>\n )\n}\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\nimport { Indent } from './Indent.tsx'\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 behaviour.\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 /**\n * ReturnType(see async for adding Promise type).\n */\n returnType?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n children?: KubbNode\n}\n\nexport function Function({ name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, children }: Props) {\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 size={2}>{children}</Indent>\n <br />\n {'}'}\n </>\n )\n}\n\nFunction.displayName = 'KubbFunction'\n\ntype ArrowFunctionProps = Props & {\n /**\n * Create Arrow function in one line\n */\n singleLine?: boolean\n}\n\nfunction ArrowFunction({ name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, singleLine, children }: ArrowFunctionProps) {\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 size={2}>{children}</Indent>\n <br />\n {'}'}\n <br />\n </>\n )}\n </>\n )\n}\n\nArrowFunction.displayName = 'KubbArrowFunction'\nFunction.Arrow = ArrowFunction\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\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 children?: KubbNode\n}\n\nexport function Type({ name, export: canExport, JSDoc, children }: Props) {\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 = 'KubbType'\n","import { useContext } from 'react'\nimport { App, type AppContextProps } from '../components/App.tsx'\n\n/**\n * `useApp` will return the current App with plugin, pluginManager, fileManager and mode.\n */\nexport function useApp<TMeta = unknown>(): AppContextProps<TMeta> {\n const app = useContext(App.Context)\n\n if (!app) {\n throw new Error('<App /> should be set')\n }\n\n return app as AppContextProps<TMeta>\n}\n","import { useContext } from 'react'\n\nimport { File } from '../components/File.tsx'\n\nimport type { FileContextProps } from '../components/File.tsx'\n\n/**\n * `useFile` will return the current file when <File/> is used.\n */\nexport function useFile(): FileContextProps {\n const file = useContext(File.Context)\n\n return file as FileContextProps\n}\n","import { useContext } from 'react'\n\nimport { Root } from '../components/Root.tsx'\n\n/**\n * `useLifecycle` will return some helpers to exit/restart the generation.\n */\nexport function useLifecycle() {\n const { exit } = useContext(Root.Context)\n\n return {\n exit: () => {\n setTimeout(() => {\n exit()\n }, 0)\n },\n }\n}\n","import { createFabric } from '@kubb/fabric-core'\nimport { reactPlugin } from '@kubb/react-fabric/plugins'\nimport type { Options } from './plugins/reactPlugin.ts'\nimport type { FabricMode } from '@kubb/fabric-core/types'\nimport { open } from './devtools.ts'\n\nexport function createReactFabric(options?: Options & { mode?: FabricMode; devtools?: boolean }) {\n const fabric = createFabric({ mode: options?.mode })\n\n if (options?.devtools) {\n open()\n }\n\n fabric.use(reactPlugin, options)\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 undefined\n }\n return !item?.default\n },\n ([_key, item]) => {\n if (item?.children) {\n return undefined\n }\n return !item?.optional\n },\n ],\n ['desc', 'desc'],\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)\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 acc.push(`${transformedName}?: ${transformedType}`)\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'\n\nimport * as React from 'react'\n\n// components\nexport { App } from './components/App.tsx'\nexport { Const } from './components/Const.tsx'\nexport { File } from './components/File.tsx'\nexport { Function } from './components/Function.tsx'\nexport { Indent } from './components/Indent.tsx'\nexport { Type } from './components/Type.tsx'\n\nexport { useApp } from './composables/useApp.ts'\nexport { useFile } from './composables/useFile.ts'\nexport { useLifecycle } from './composables/useLifecycle.tsx'\n\n// expose fabric core helpers\nexport { createFabric } from '@kubb/fabric-core'\nexport { createReactFabric } from './createReactFabric.ts'\n\n// utils\nexport { createFunctionParams, FunctionParams } from './utils/getFunctionParams.ts'\nexport { Runtime } from './Runtime.tsx'\n\n// react helpers\nexport const createContext = React.createContext\nexport const createElement = React.createElement\nexport const useContext = React.useContext\nexport const useEffect = React.useEffect\nexport const useState = React.useState\nexport const useRef = React.useRef\nexport const use = React.use\nexport const useReducer = React.useReducer\n"],"x_google_ignoreList":[4],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["RootContext","result: React.ReactNode[]","Root","reactPlugin","types: string[]","names: string[]","item","key","name","acc: string[]","parsedItem"],"sources":["../src/components/App.tsx","../src/utils/createJSDoc.ts","../src/components/Const.tsx","../src/components/File.tsx","../../../node_modules/.pnpm/indent-string@5.0.0/node_modules/indent-string/index.js","../src/components/Indent.tsx","../src/components/Function.tsx","../src/components/Type.tsx","../src/composables/useApp.ts","../src/composables/useFile.ts","../src/composables/useLifecycle.tsx","../src/createReactFabric.ts","../src/utils/getFunctionParams.ts","../src/index.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { KubbNode } from '../types.ts'\nimport { RootContext } from './Root.tsx'\n\nexport type AppContextProps<TMeta = unknown> = {\n /**\n * Exit (unmount)\n */\n readonly exit: (error?: Error) => void\n readonly meta: TMeta\n}\n\nconst AppContext = createContext<AppContextProps | undefined>(undefined)\n\ntype Props<TMeta = unknown> = {\n readonly children?: KubbNode\n readonly meta: TMeta\n}\n\nexport function App<TMeta = unknown>({ meta, children }: Props<TMeta>) {\n const { exit } = useContext(RootContext)\n\n return <AppContext.Provider value={{ exit, meta }}>{children}</AppContext.Provider>\n}\n\nApp.Context = AppContext\nApp.displayName = 'KubbApp'\n","export function createJSDoc({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\n\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\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 children?: KubbNode\n}\n\nexport function Const({ name, export: canExport, type, JSDoc, asConst, children }: Props) {\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 = {children}\n {asConst && <> as const</>}\n </>\n )\n}\n\nConst.displayName = 'KubbConst'\n","import { createContext } from 'react'\n\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Key, KubbNode } from '../types.ts'\n\nexport type FileContextProps<TMeta extends object = object> = {\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 meta?: TMeta\n}\nconst FileContext = createContext<FileContextProps>({} as FileContextProps)\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?: KubbNode\n}\n\nexport function File<TMeta extends object = object>({ children, ...rest }: Props<TMeta>) {\n if (!rest.baseName || !rest.path) {\n return <>{children}</>\n }\n\n return (\n <kubb-file {...rest}>\n <FileContext.Provider value={{ baseName: rest.baseName, path: rest.path, meta: rest.meta }}>{children}</FileContext.Provider>\n </kubb-file>\n )\n}\n\nFile.displayName = 'KubbFile'\n\ntype FileSourceProps = Omit<KubbFile.Source, 'value'> & {\n key?: Key\n children?: KubbNode\n}\n\nfunction FileSource({ isTypeOnly, name, isExportable, isIndexable, children }: FileSourceProps) {\n return (\n <kubb-source name={name} isTypeOnly={isTypeOnly} isExportable={isExportable} isIndexable={isIndexable}>\n {children}\n </kubb-source>\n )\n}\n\nFileSource.displayName = 'KubbFileSource'\n\ntype FileExportProps = KubbFile.Export & { key?: Key }\n\nfunction FileExport({ name, path, isTypeOnly, asAlias }: FileExportProps) {\n return <kubb-export name={name} path={path} isTypeOnly={isTypeOnly || false} asAlias={asAlias} />\n}\n\nFileExport.displayName = 'KubbFileExport'\n\ntype FileImportProps = KubbFile.Import & { key?: Key }\n\nfunction FileImport({ name, root, path, isTypeOnly, isNameSpace }: FileImportProps) {\n return <kubb-import name={name} root={root} path={path} isNameSpace={isNameSpace} isTypeOnly={isTypeOnly || false} />\n}\n\nFileImport.displayName = 'KubbFileImport'\n\nFile.Export = FileExport\nFile.Import = FileImport\nFile.Source = FileSource\nFile.Context = FileContext\n","export default function indentString(string, count = 1, options = {}) {\n\tconst {\n\t\tindent = ' ',\n\t\tincludeEmptyLines = false\n\t} = options;\n\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof string}\\``\n\t\t);\n\t}\n\n\tif (typeof count !== 'number') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof count}\\``\n\t\t);\n\t}\n\n\tif (count < 0) {\n\t\tthrow new RangeError(\n\t\t\t`Expected \\`count\\` to be at least 0, got \\`${count}\\``\n\t\t);\n\t}\n\n\tif (typeof indent !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof indent}\\``\n\t\t);\n\t}\n\n\tif (count === 0) {\n\t\treturn string;\n\t}\n\n\tconst regex = includeEmptyLines ? /^/gm : /^(?!\\s*$)/gm;\n\n\treturn string.replace(regex, indent.repeat(count));\n}\n","import dedent from 'dedent'\nimport indentString from 'indent-string'\nimport React from 'react'\n\ntype IndentProps = {\n size?: number\n children?: React.ReactNode\n}\n\n/**\n * Indents all children by `size` spaces.\n * Collapses consecutive <br /> tags to at most 2.\n */\nexport function Indent({ size = 2, children }: IndentProps) {\n if (!children) return null\n\n const filtered = React.Children.toArray(children).filter(Boolean)\n const result: React.ReactNode[] = []\n\n let prevWasBr = false\n let brCount = 0\n\n filtered.forEach((child) => {\n if (React.isValidElement(child) && child.type === 'br') {\n if (!prevWasBr || brCount < 2) {\n result.push(child)\n brCount++\n }\n prevWasBr = true\n } else {\n prevWasBr = false\n brCount = 0\n result.push(child)\n }\n })\n\n return (\n <>\n {result.map((child) => {\n if (typeof child === 'string') {\n const cleaned = dedent(child)\n return <>{indentString(cleaned, size)}</>\n }\n return (\n <>\n {' '.repeat(size)}\n {child}\n </>\n )\n })}\n </>\n )\n}\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\nimport { Indent } from './Indent.tsx'\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 behaviour.\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 /**\n * ReturnType(see async for adding Promise type).\n */\n returnType?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n children?: KubbNode\n}\n\nexport function Function({ name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, children }: Props) {\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 size={2}>{children}</Indent>\n <br />\n {'}'}\n </>\n )\n}\n\nFunction.displayName = 'KubbFunction'\n\ntype ArrowFunctionProps = Props & {\n /**\n * Create Arrow function in one line\n */\n singleLine?: boolean\n}\n\nfunction ArrowFunction({ name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, singleLine, children }: ArrowFunctionProps) {\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 size={2}>{children}</Indent>\n <br />\n {'}'}\n <br />\n </>\n )}\n </>\n )\n}\n\nArrowFunction.displayName = 'KubbArrowFunction'\nFunction.Arrow = ArrowFunction\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\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 children?: KubbNode\n}\n\nexport function Type({ name, export: canExport, JSDoc, children }: Props) {\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 = 'KubbType'\n","import { useContext } from 'react'\nimport { App, type AppContextProps } from '../components/App.tsx'\n\n/**\n * `useApp` will return the current App with plugin, pluginManager, fileManager and mode.\n */\nexport function useApp<TMeta = unknown>(): AppContextProps<TMeta> {\n const app = useContext(App.Context)\n\n if (!app) {\n throw new Error('<App /> should be set')\n }\n\n return app as AppContextProps<TMeta>\n}\n","import { useContext } from 'react'\n\nimport { File } from '../components/File.tsx'\n\nimport type { FileContextProps } from '../components/File.tsx'\n\n/**\n * `useFile` will return the current file when <File/> is used.\n */\nexport function useFile(): FileContextProps {\n const file = useContext(File.Context)\n\n return file as FileContextProps\n}\n","import { useContext } from 'react'\n\nimport { Root } from '../components/Root.tsx'\n\n/**\n * `useLifecycle` will return some helpers to exit/restart the generation.\n */\nexport function useLifecycle() {\n const { exit } = useContext(Root.Context)\n\n return {\n exit: () => {\n setTimeout(() => {\n exit()\n }, 0)\n },\n }\n}\n","import { createFabric } from '@kubb/fabric-core'\nimport { reactPlugin } from '@kubb/react-fabric/plugins'\nimport type { Options } from './plugins/reactPlugin.ts'\nimport type { FabricMode } from '@kubb/fabric-core/types'\nimport { open } from './devtools.ts'\n\nexport function createReactFabric(options?: Options & { mode?: FabricMode; devtools?: boolean }) {\n const fabric = createFabric({ mode: options?.mode })\n\n if (options?.devtools) {\n open()\n }\n\n fabric.use(reactPlugin, options)\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 undefined\n }\n return !item?.default\n },\n ([_key, item]) => {\n if (item?.children) {\n return undefined\n }\n return !item?.optional\n },\n ],\n ['desc', 'desc'],\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)\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 acc.push(`${transformedName}?: ${transformedType}`)\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'\n\nimport * as React from 'react'\n\n// components\nexport { App } from './components/App.tsx'\nexport { Const } from './components/Const.tsx'\nexport { File } from './components/File.tsx'\nexport { Function } from './components/Function.tsx'\nexport { Indent } from './components/Indent.tsx'\nexport { Type } from './components/Type.tsx'\n\nexport { useApp } from './composables/useApp.ts'\nexport { useFile } from './composables/useFile.ts'\nexport { useLifecycle } from './composables/useLifecycle.tsx'\n\n// expose fabric core helpers\nexport * from '@kubb/fabric-core'\nexport { createReactFabric } from './createReactFabric.ts'\n\n// utils\nexport { createFunctionParams, FunctionParams } from './utils/getFunctionParams.ts'\nexport { Runtime } from './Runtime.tsx'\n\n// react helpers\nexport const createContext = React.createContext\nexport const createElement = React.createElement\nexport const useContext = React.useContext\nexport const useEffect = React.useEffect\nexport const useState = React.useState\nexport const useRef = React.useRef\nexport const use = React.use\nexport const useReducer = React.useReducer\n"],"x_google_ignoreList":[4],"mappings":"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"}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as Import, c as Source, n as Export, o as Path, t as BaseName } from "./KubbFile-DHCtBOpy.cjs";
|
|
2
|
-
import { i as FileManager, n as FabricMode, r as FabricOptions, t as Fabric } from "./Fabric-
|
|
1
|
+
import { a as Import, c as Source, i as File$1, n as Export, o as Path, s as ResolvedFile, t as BaseName } from "./KubbFile-DHCtBOpy.cjs";
|
|
2
|
+
import { a as FileProcessor, i as FileManager, n as FabricMode, r as FabricOptions, t as Fabric } from "./Fabric-PGwn47Lb.cjs";
|
|
3
3
|
import { a as JSDoc, f as createFunctionParams, l as FunctionParams, o as Key, s as KubbNode } from "./types-DoYRYV1C.cjs";
|
|
4
4
|
import "./globals-C7dPa-nz.cjs";
|
|
5
|
-
import { t as Options$1 } from "./reactPlugin-
|
|
5
|
+
import { t as Options$1 } from "./reactPlugin-SuzV8fwK.cjs";
|
|
6
6
|
import * as react1 from "react";
|
|
7
7
|
import React, { ReactNode } from "react";
|
|
8
8
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
@@ -10,8 +10,16 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
|
10
10
|
//#region ../fabric-core/src/createFabric.d.ts
|
|
11
11
|
declare const createFabric: DefineFabric<FabricOptions>;
|
|
12
12
|
//#endregion
|
|
13
|
+
//#region ../fabric-core/src/createFile.d.ts
|
|
14
|
+
/**
|
|
15
|
+
* Helper to create a file with name and id set
|
|
16
|
+
*/
|
|
17
|
+
declare function createFile<TMeta extends object = object>(file: File$1<TMeta>): ResolvedFile<TMeta>;
|
|
18
|
+
//#endregion
|
|
13
19
|
//#region ../fabric-core/src/defineFabric.d.ts
|
|
20
|
+
type RootRenderFunction<TOptions extends FabricOptions> = (fabric: Fabric<TOptions>) => void | Promise<void>;
|
|
14
21
|
type DefineFabric<TOptions> = (options?: TOptions) => Fabric;
|
|
22
|
+
declare function defineFabric<TOptions extends FabricOptions>(instance?: RootRenderFunction<TOptions>): DefineFabric<TOptions>;
|
|
15
23
|
//#endregion
|
|
16
24
|
//#region src/components/App.d.ts
|
|
17
25
|
type AppContextProps<TMeta = unknown> = {
|
|
@@ -343,5 +351,5 @@ declare const useRef: typeof react1.useRef;
|
|
|
343
351
|
declare const use: typeof react1.use;
|
|
344
352
|
declare const useReducer: typeof react1.useReducer;
|
|
345
353
|
//#endregion
|
|
346
|
-
export { App, Const, File, Function, FunctionParams, Indent, Runtime, Type, createContext, createElement, createFabric, createFunctionParams, createReactFabric, use, useApp, useContext, useEffect, useFile, useLifecycle, useReducer, useRef, useState };
|
|
354
|
+
export { App, Const, Fabric, File, FileManager, FileProcessor, Function, FunctionParams, Indent, Runtime, Type, createContext, createElement, createFabric, createFile, createFunctionParams, createReactFabric, defineFabric, use, useApp, useContext, useEffect, useFile, useLifecycle, useReducer, useRef, useState };
|
|
347
355
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as Import, c as Source, n as Export, o as Path, t as BaseName } from "./KubbFile-bFdmEsQz.js";
|
|
2
|
-
import { i as FileManager, n as FabricMode, r as FabricOptions, t as Fabric } from "./Fabric-
|
|
1
|
+
import { a as Import, c as Source, i as File$1, n as Export, o as Path, s as ResolvedFile, t as BaseName } from "./KubbFile-bFdmEsQz.js";
|
|
2
|
+
import { a as FileProcessor, i as FileManager, n as FabricMode, r as FabricOptions, t as Fabric } from "./Fabric-CoGYXq1o.js";
|
|
3
3
|
import { a as JSDoc, f as createFunctionParams, l as FunctionParams, o as Key, s as KubbNode } from "./types-BnXxcIyv.js";
|
|
4
4
|
import "./globals-1MFa0Fvg.js";
|
|
5
|
-
import { t as Options$1 } from "./reactPlugin-
|
|
5
|
+
import { t as Options$1 } from "./reactPlugin-CCty1XGl.js";
|
|
6
6
|
import * as react1 from "react";
|
|
7
7
|
import React, { ReactNode } from "react";
|
|
8
8
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
@@ -10,8 +10,16 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
|
10
10
|
//#region ../fabric-core/src/createFabric.d.ts
|
|
11
11
|
declare const createFabric: DefineFabric<FabricOptions>;
|
|
12
12
|
//#endregion
|
|
13
|
+
//#region ../fabric-core/src/createFile.d.ts
|
|
14
|
+
/**
|
|
15
|
+
* Helper to create a file with name and id set
|
|
16
|
+
*/
|
|
17
|
+
declare function createFile<TMeta extends object = object>(file: File$1<TMeta>): ResolvedFile<TMeta>;
|
|
18
|
+
//#endregion
|
|
13
19
|
//#region ../fabric-core/src/defineFabric.d.ts
|
|
20
|
+
type RootRenderFunction<TOptions extends FabricOptions> = (fabric: Fabric<TOptions>) => void | Promise<void>;
|
|
14
21
|
type DefineFabric<TOptions> = (options?: TOptions) => Fabric;
|
|
22
|
+
declare function defineFabric<TOptions extends FabricOptions>(instance?: RootRenderFunction<TOptions>): DefineFabric<TOptions>;
|
|
15
23
|
//#endregion
|
|
16
24
|
//#region src/components/App.d.ts
|
|
17
25
|
type AppContextProps<TMeta = unknown> = {
|
|
@@ -343,5 +351,5 @@ declare const useRef: typeof react1.useRef;
|
|
|
343
351
|
declare const use: typeof react1.use;
|
|
344
352
|
declare const useReducer: typeof react1.useReducer;
|
|
345
353
|
//#endregion
|
|
346
|
-
export { App, Const, File, Function, FunctionParams, Indent, Runtime, Type, createContext, createElement, createFabric, createFunctionParams, createReactFabric, use, useApp, useContext, useEffect, useFile, useLifecycle, useReducer, useRef, useState };
|
|
354
|
+
export { App, Const, Fabric, File, FileManager, FileProcessor, Function, FunctionParams, Indent, Runtime, Type, createContext, createElement, createFabric, createFile, createFunctionParams, createReactFabric, defineFabric, use, useApp, useContext, useEffect, useFile, useLifecycle, useReducer, useRef, useState };
|
|
347
355
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -4,9 +4,11 @@ import { n as require_react, t as require_jsx_runtime } from "./jsx-runtime-C9xQ
|
|
|
4
4
|
import { a as _classPrivateFieldInitSpec, i as _classPrivateFieldGet2, n as Runtime, o as Root, r as _classPrivateFieldSet2, s as RootContext, t as reactPlugin } from "./plugins-BVFjgEC2.js";
|
|
5
5
|
import { t as open } from "./devtools-D7cmED8s.js";
|
|
6
6
|
import dedent from "dedent";
|
|
7
|
-
import { createFabric
|
|
7
|
+
import { createFabric } from "@kubb/fabric-core";
|
|
8
8
|
import { orderBy } from "natural-orderby";
|
|
9
9
|
|
|
10
|
+
export * from "@kubb/fabric-core"
|
|
11
|
+
|
|
10
12
|
//#region src/components/App.tsx
|
|
11
13
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
12
14
|
var import_jsx_runtime = /* @__PURE__ */ __toESM(require_jsx_runtime());
|
|
@@ -282,7 +284,7 @@ function useLifecycle() {
|
|
|
282
284
|
//#endregion
|
|
283
285
|
//#region src/createReactFabric.ts
|
|
284
286
|
function createReactFabric(options) {
|
|
285
|
-
const fabric = createFabric
|
|
287
|
+
const fabric = createFabric({ mode: options === null || options === void 0 ? void 0 : options.mode });
|
|
286
288
|
if (options === null || options === void 0 ? void 0 : options.devtools) open();
|
|
287
289
|
fabric.use(reactPlugin, options);
|
|
288
290
|
return fabric;
|
|
@@ -414,5 +416,5 @@ const use = import_react.use;
|
|
|
414
416
|
const useReducer = import_react.useReducer;
|
|
415
417
|
|
|
416
418
|
//#endregion
|
|
417
|
-
export { App, Const, File, Function, FunctionParams, Indent, Runtime, Type, createContext, createElement,
|
|
419
|
+
export { App, Const, File, Function, FunctionParams, Indent, Runtime, Type, createContext, createElement, createFunctionParams, createReactFabric, use, useApp, useContext, useEffect, useFile, useLifecycle, useReducer, useRef, useState };
|
|
418
420
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["result: React.ReactNode[]","createFabric","types: string[]","names: string[]","item","key","name","acc: string[]","parsedItem"],"sources":["../src/components/App.tsx","../src/utils/createJSDoc.ts","../src/components/Const.tsx","../src/components/File.tsx","../../../node_modules/.pnpm/indent-string@5.0.0/node_modules/indent-string/index.js","../src/components/Indent.tsx","../src/components/Function.tsx","../src/components/Type.tsx","../src/composables/useApp.ts","../src/composables/useFile.ts","../src/composables/useLifecycle.tsx","../src/createReactFabric.ts","../src/utils/getFunctionParams.ts","../src/index.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { KubbNode } from '../types.ts'\nimport { RootContext } from './Root.tsx'\n\nexport type AppContextProps<TMeta = unknown> = {\n /**\n * Exit (unmount)\n */\n readonly exit: (error?: Error) => void\n readonly meta: TMeta\n}\n\nconst AppContext = createContext<AppContextProps | undefined>(undefined)\n\ntype Props<TMeta = unknown> = {\n readonly children?: KubbNode\n readonly meta: TMeta\n}\n\nexport function App<TMeta = unknown>({ meta, children }: Props<TMeta>) {\n const { exit } = useContext(RootContext)\n\n return <AppContext.Provider value={{ exit, meta }}>{children}</AppContext.Provider>\n}\n\nApp.Context = AppContext\nApp.displayName = 'KubbApp'\n","export function createJSDoc({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\n\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\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 children?: KubbNode\n}\n\nexport function Const({ name, export: canExport, type, JSDoc, asConst, children }: Props) {\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 = {children}\n {asConst && <> as const</>}\n </>\n )\n}\n\nConst.displayName = 'KubbConst'\n","import { createContext } from 'react'\n\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Key, KubbNode } from '../types.ts'\n\nexport type FileContextProps<TMeta extends object = object> = {\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 meta?: TMeta\n}\nconst FileContext = createContext<FileContextProps>({} as FileContextProps)\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?: KubbNode\n}\n\nexport function File<TMeta extends object = object>({ children, ...rest }: Props<TMeta>) {\n if (!rest.baseName || !rest.path) {\n return <>{children}</>\n }\n\n return (\n <kubb-file {...rest}>\n <FileContext.Provider value={{ baseName: rest.baseName, path: rest.path, meta: rest.meta }}>{children}</FileContext.Provider>\n </kubb-file>\n )\n}\n\nFile.displayName = 'KubbFile'\n\ntype FileSourceProps = Omit<KubbFile.Source, 'value'> & {\n key?: Key\n children?: KubbNode\n}\n\nfunction FileSource({ isTypeOnly, name, isExportable, isIndexable, children }: FileSourceProps) {\n return (\n <kubb-source name={name} isTypeOnly={isTypeOnly} isExportable={isExportable} isIndexable={isIndexable}>\n {children}\n </kubb-source>\n )\n}\n\nFileSource.displayName = 'KubbFileSource'\n\ntype FileExportProps = KubbFile.Export & { key?: Key }\n\nfunction FileExport({ name, path, isTypeOnly, asAlias }: FileExportProps) {\n return <kubb-export name={name} path={path} isTypeOnly={isTypeOnly || false} asAlias={asAlias} />\n}\n\nFileExport.displayName = 'KubbFileExport'\n\ntype FileImportProps = KubbFile.Import & { key?: Key }\n\nfunction FileImport({ name, root, path, isTypeOnly, isNameSpace }: FileImportProps) {\n return <kubb-import name={name} root={root} path={path} isNameSpace={isNameSpace} isTypeOnly={isTypeOnly || false} />\n}\n\nFileImport.displayName = 'KubbFileImport'\n\nFile.Export = FileExport\nFile.Import = FileImport\nFile.Source = FileSource\nFile.Context = FileContext\n","export default function indentString(string, count = 1, options = {}) {\n\tconst {\n\t\tindent = ' ',\n\t\tincludeEmptyLines = false\n\t} = options;\n\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof string}\\``\n\t\t);\n\t}\n\n\tif (typeof count !== 'number') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof count}\\``\n\t\t);\n\t}\n\n\tif (count < 0) {\n\t\tthrow new RangeError(\n\t\t\t`Expected \\`count\\` to be at least 0, got \\`${count}\\``\n\t\t);\n\t}\n\n\tif (typeof indent !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof indent}\\``\n\t\t);\n\t}\n\n\tif (count === 0) {\n\t\treturn string;\n\t}\n\n\tconst regex = includeEmptyLines ? /^/gm : /^(?!\\s*$)/gm;\n\n\treturn string.replace(regex, indent.repeat(count));\n}\n","import dedent from 'dedent'\nimport indentString from 'indent-string'\nimport React from 'react'\n\ntype IndentProps = {\n size?: number\n children?: React.ReactNode\n}\n\n/**\n * Indents all children by `size` spaces.\n * Collapses consecutive <br /> tags to at most 2.\n */\nexport function Indent({ size = 2, children }: IndentProps) {\n if (!children) return null\n\n const filtered = React.Children.toArray(children).filter(Boolean)\n const result: React.ReactNode[] = []\n\n let prevWasBr = false\n let brCount = 0\n\n filtered.forEach((child) => {\n if (React.isValidElement(child) && child.type === 'br') {\n if (!prevWasBr || brCount < 2) {\n result.push(child)\n brCount++\n }\n prevWasBr = true\n } else {\n prevWasBr = false\n brCount = 0\n result.push(child)\n }\n })\n\n return (\n <>\n {result.map((child) => {\n if (typeof child === 'string') {\n const cleaned = dedent(child)\n return <>{indentString(cleaned, size)}</>\n }\n return (\n <>\n {' '.repeat(size)}\n {child}\n </>\n )\n })}\n </>\n )\n}\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\nimport { Indent } from './Indent.tsx'\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 behaviour.\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 /**\n * ReturnType(see async for adding Promise type).\n */\n returnType?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n children?: KubbNode\n}\n\nexport function Function({ name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, children }: Props) {\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 size={2}>{children}</Indent>\n <br />\n {'}'}\n </>\n )\n}\n\nFunction.displayName = 'KubbFunction'\n\ntype ArrowFunctionProps = Props & {\n /**\n * Create Arrow function in one line\n */\n singleLine?: boolean\n}\n\nfunction ArrowFunction({ name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, singleLine, children }: ArrowFunctionProps) {\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 size={2}>{children}</Indent>\n <br />\n {'}'}\n <br />\n </>\n )}\n </>\n )\n}\n\nArrowFunction.displayName = 'KubbArrowFunction'\nFunction.Arrow = ArrowFunction\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\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 children?: KubbNode\n}\n\nexport function Type({ name, export: canExport, JSDoc, children }: Props) {\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 = 'KubbType'\n","import { useContext } from 'react'\nimport { App, type AppContextProps } from '../components/App.tsx'\n\n/**\n * `useApp` will return the current App with plugin, pluginManager, fileManager and mode.\n */\nexport function useApp<TMeta = unknown>(): AppContextProps<TMeta> {\n const app = useContext(App.Context)\n\n if (!app) {\n throw new Error('<App /> should be set')\n }\n\n return app as AppContextProps<TMeta>\n}\n","import { useContext } from 'react'\n\nimport { File } from '../components/File.tsx'\n\nimport type { FileContextProps } from '../components/File.tsx'\n\n/**\n * `useFile` will return the current file when <File/> is used.\n */\nexport function useFile(): FileContextProps {\n const file = useContext(File.Context)\n\n return file as FileContextProps\n}\n","import { useContext } from 'react'\n\nimport { Root } from '../components/Root.tsx'\n\n/**\n * `useLifecycle` will return some helpers to exit/restart the generation.\n */\nexport function useLifecycle() {\n const { exit } = useContext(Root.Context)\n\n return {\n exit: () => {\n setTimeout(() => {\n exit()\n }, 0)\n },\n }\n}\n","import { createFabric } from '@kubb/fabric-core'\nimport { reactPlugin } from '@kubb/react-fabric/plugins'\nimport type { Options } from './plugins/reactPlugin.ts'\nimport type { FabricMode } from '@kubb/fabric-core/types'\nimport { open } from './devtools.ts'\n\nexport function createReactFabric(options?: Options & { mode?: FabricMode; devtools?: boolean }) {\n const fabric = createFabric({ mode: options?.mode })\n\n if (options?.devtools) {\n open()\n }\n\n fabric.use(reactPlugin, options)\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 undefined\n }\n return !item?.default\n },\n ([_key, item]) => {\n if (item?.children) {\n return undefined\n }\n return !item?.optional\n },\n ],\n ['desc', 'desc'],\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)\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 acc.push(`${transformedName}?: ${transformedType}`)\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'\n\nimport * as React from 'react'\n\n// components\nexport { App } from './components/App.tsx'\nexport { Const } from './components/Const.tsx'\nexport { File } from './components/File.tsx'\nexport { Function } from './components/Function.tsx'\nexport { Indent } from './components/Indent.tsx'\nexport { Type } from './components/Type.tsx'\n\nexport { useApp } from './composables/useApp.ts'\nexport { useFile } from './composables/useFile.ts'\nexport { useLifecycle } from './composables/useLifecycle.tsx'\n\n// expose fabric core helpers\nexport { createFabric } from '@kubb/fabric-core'\nexport { createReactFabric } from './createReactFabric.ts'\n\n// utils\nexport { createFunctionParams, FunctionParams } from './utils/getFunctionParams.ts'\nexport { Runtime } from './Runtime.tsx'\n\n// react helpers\nexport const createContext = React.createContext\nexport const createElement = React.createElement\nexport const useContext = React.useContext\nexport const useEffect = React.useEffect\nexport const useState = React.useState\nexport const useRef = React.useRef\nexport const use = React.use\nexport const useReducer = React.useReducer\n"],"x_google_ignoreList":[4],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["result: React.ReactNode[]","types: string[]","names: string[]","item","key","name","acc: string[]","parsedItem"],"sources":["../src/components/App.tsx","../src/utils/createJSDoc.ts","../src/components/Const.tsx","../src/components/File.tsx","../../../node_modules/.pnpm/indent-string@5.0.0/node_modules/indent-string/index.js","../src/components/Indent.tsx","../src/components/Function.tsx","../src/components/Type.tsx","../src/composables/useApp.ts","../src/composables/useFile.ts","../src/composables/useLifecycle.tsx","../src/createReactFabric.ts","../src/utils/getFunctionParams.ts","../src/index.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { KubbNode } from '../types.ts'\nimport { RootContext } from './Root.tsx'\n\nexport type AppContextProps<TMeta = unknown> = {\n /**\n * Exit (unmount)\n */\n readonly exit: (error?: Error) => void\n readonly meta: TMeta\n}\n\nconst AppContext = createContext<AppContextProps | undefined>(undefined)\n\ntype Props<TMeta = unknown> = {\n readonly children?: KubbNode\n readonly meta: TMeta\n}\n\nexport function App<TMeta = unknown>({ meta, children }: Props<TMeta>) {\n const { exit } = useContext(RootContext)\n\n return <AppContext.Provider value={{ exit, meta }}>{children}</AppContext.Provider>\n}\n\nApp.Context = AppContext\nApp.displayName = 'KubbApp'\n","export function createJSDoc({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\n\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\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 children?: KubbNode\n}\n\nexport function Const({ name, export: canExport, type, JSDoc, asConst, children }: Props) {\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 = {children}\n {asConst && <> as const</>}\n </>\n )\n}\n\nConst.displayName = 'KubbConst'\n","import { createContext } from 'react'\n\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Key, KubbNode } from '../types.ts'\n\nexport type FileContextProps<TMeta extends object = object> = {\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 meta?: TMeta\n}\nconst FileContext = createContext<FileContextProps>({} as FileContextProps)\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?: KubbNode\n}\n\nexport function File<TMeta extends object = object>({ children, ...rest }: Props<TMeta>) {\n if (!rest.baseName || !rest.path) {\n return <>{children}</>\n }\n\n return (\n <kubb-file {...rest}>\n <FileContext.Provider value={{ baseName: rest.baseName, path: rest.path, meta: rest.meta }}>{children}</FileContext.Provider>\n </kubb-file>\n )\n}\n\nFile.displayName = 'KubbFile'\n\ntype FileSourceProps = Omit<KubbFile.Source, 'value'> & {\n key?: Key\n children?: KubbNode\n}\n\nfunction FileSource({ isTypeOnly, name, isExportable, isIndexable, children }: FileSourceProps) {\n return (\n <kubb-source name={name} isTypeOnly={isTypeOnly} isExportable={isExportable} isIndexable={isIndexable}>\n {children}\n </kubb-source>\n )\n}\n\nFileSource.displayName = 'KubbFileSource'\n\ntype FileExportProps = KubbFile.Export & { key?: Key }\n\nfunction FileExport({ name, path, isTypeOnly, asAlias }: FileExportProps) {\n return <kubb-export name={name} path={path} isTypeOnly={isTypeOnly || false} asAlias={asAlias} />\n}\n\nFileExport.displayName = 'KubbFileExport'\n\ntype FileImportProps = KubbFile.Import & { key?: Key }\n\nfunction FileImport({ name, root, path, isTypeOnly, isNameSpace }: FileImportProps) {\n return <kubb-import name={name} root={root} path={path} isNameSpace={isNameSpace} isTypeOnly={isTypeOnly || false} />\n}\n\nFileImport.displayName = 'KubbFileImport'\n\nFile.Export = FileExport\nFile.Import = FileImport\nFile.Source = FileSource\nFile.Context = FileContext\n","export default function indentString(string, count = 1, options = {}) {\n\tconst {\n\t\tindent = ' ',\n\t\tincludeEmptyLines = false\n\t} = options;\n\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof string}\\``\n\t\t);\n\t}\n\n\tif (typeof count !== 'number') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof count}\\``\n\t\t);\n\t}\n\n\tif (count < 0) {\n\t\tthrow new RangeError(\n\t\t\t`Expected \\`count\\` to be at least 0, got \\`${count}\\``\n\t\t);\n\t}\n\n\tif (typeof indent !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof indent}\\``\n\t\t);\n\t}\n\n\tif (count === 0) {\n\t\treturn string;\n\t}\n\n\tconst regex = includeEmptyLines ? /^/gm : /^(?!\\s*$)/gm;\n\n\treturn string.replace(regex, indent.repeat(count));\n}\n","import dedent from 'dedent'\nimport indentString from 'indent-string'\nimport React from 'react'\n\ntype IndentProps = {\n size?: number\n children?: React.ReactNode\n}\n\n/**\n * Indents all children by `size` spaces.\n * Collapses consecutive <br /> tags to at most 2.\n */\nexport function Indent({ size = 2, children }: IndentProps) {\n if (!children) return null\n\n const filtered = React.Children.toArray(children).filter(Boolean)\n const result: React.ReactNode[] = []\n\n let prevWasBr = false\n let brCount = 0\n\n filtered.forEach((child) => {\n if (React.isValidElement(child) && child.type === 'br') {\n if (!prevWasBr || brCount < 2) {\n result.push(child)\n brCount++\n }\n prevWasBr = true\n } else {\n prevWasBr = false\n brCount = 0\n result.push(child)\n }\n })\n\n return (\n <>\n {result.map((child) => {\n if (typeof child === 'string') {\n const cleaned = dedent(child)\n return <>{indentString(cleaned, size)}</>\n }\n return (\n <>\n {' '.repeat(size)}\n {child}\n </>\n )\n })}\n </>\n )\n}\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\nimport { Indent } from './Indent.tsx'\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 behaviour.\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 /**\n * ReturnType(see async for adding Promise type).\n */\n returnType?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n children?: KubbNode\n}\n\nexport function Function({ name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, children }: Props) {\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 size={2}>{children}</Indent>\n <br />\n {'}'}\n </>\n )\n}\n\nFunction.displayName = 'KubbFunction'\n\ntype ArrowFunctionProps = Props & {\n /**\n * Create Arrow function in one line\n */\n singleLine?: boolean\n}\n\nfunction ArrowFunction({ name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, singleLine, children }: ArrowFunctionProps) {\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 size={2}>{children}</Indent>\n <br />\n {'}'}\n <br />\n </>\n )}\n </>\n )\n}\n\nArrowFunction.displayName = 'KubbArrowFunction'\nFunction.Arrow = ArrowFunction\n","import type { JSDoc, Key, KubbNode } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\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 children?: KubbNode\n}\n\nexport function Type({ name, export: canExport, JSDoc, children }: Props) {\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 = 'KubbType'\n","import { useContext } from 'react'\nimport { App, type AppContextProps } from '../components/App.tsx'\n\n/**\n * `useApp` will return the current App with plugin, pluginManager, fileManager and mode.\n */\nexport function useApp<TMeta = unknown>(): AppContextProps<TMeta> {\n const app = useContext(App.Context)\n\n if (!app) {\n throw new Error('<App /> should be set')\n }\n\n return app as AppContextProps<TMeta>\n}\n","import { useContext } from 'react'\n\nimport { File } from '../components/File.tsx'\n\nimport type { FileContextProps } from '../components/File.tsx'\n\n/**\n * `useFile` will return the current file when <File/> is used.\n */\nexport function useFile(): FileContextProps {\n const file = useContext(File.Context)\n\n return file as FileContextProps\n}\n","import { useContext } from 'react'\n\nimport { Root } from '../components/Root.tsx'\n\n/**\n * `useLifecycle` will return some helpers to exit/restart the generation.\n */\nexport function useLifecycle() {\n const { exit } = useContext(Root.Context)\n\n return {\n exit: () => {\n setTimeout(() => {\n exit()\n }, 0)\n },\n }\n}\n","import { createFabric } from '@kubb/fabric-core'\nimport { reactPlugin } from '@kubb/react-fabric/plugins'\nimport type { Options } from './plugins/reactPlugin.ts'\nimport type { FabricMode } from '@kubb/fabric-core/types'\nimport { open } from './devtools.ts'\n\nexport function createReactFabric(options?: Options & { mode?: FabricMode; devtools?: boolean }) {\n const fabric = createFabric({ mode: options?.mode })\n\n if (options?.devtools) {\n open()\n }\n\n fabric.use(reactPlugin, options)\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 undefined\n }\n return !item?.default\n },\n ([_key, item]) => {\n if (item?.children) {\n return undefined\n }\n return !item?.optional\n },\n ],\n ['desc', 'desc'],\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)\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 acc.push(`${transformedName}?: ${transformedType}`)\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'\n\nimport * as React from 'react'\n\n// components\nexport { App } from './components/App.tsx'\nexport { Const } from './components/Const.tsx'\nexport { File } from './components/File.tsx'\nexport { Function } from './components/Function.tsx'\nexport { Indent } from './components/Indent.tsx'\nexport { Type } from './components/Type.tsx'\n\nexport { useApp } from './composables/useApp.ts'\nexport { useFile } from './composables/useFile.ts'\nexport { useLifecycle } from './composables/useLifecycle.tsx'\n\n// expose fabric core helpers\nexport * from '@kubb/fabric-core'\nexport { createReactFabric } from './createReactFabric.ts'\n\n// utils\nexport { createFunctionParams, FunctionParams } from './utils/getFunctionParams.ts'\nexport { Runtime } from './Runtime.tsx'\n\n// react helpers\nexport const createContext = React.createContext\nexport const createElement = React.createElement\nexport const useContext = React.useContext\nexport const useEffect = React.useEffect\nexport const useState = React.useState\nexport const useRef = React.useRef\nexport const use = React.use\nexport const useReducer = React.useReducer\n"],"x_google_ignoreList":[4],"mappings":";;;;;;;;;;;;;;AAYA,MAAM,6CAAwD,OAAU;AAOxE,SAAgB,IAAqB,EAAE,MAAM,YAA0B;CACrE,MAAM,EAAE,sCAAoB,YAAY;AAExC,QAAO,4CAAC,WAAW;EAAS,OAAO;GAAE;GAAM;GAAM;EAAG;GAA+B;;AAGrF,IAAI,UAAU;AACd,IAAI,cAAc;;;;AC1BlB,SAAgB,YAAY,EAAE,YAAiD;CAC7E,MAAM,mBAAmB,SAAS,OAAO,QAAQ;AAEjD,KAAI,CAAC,iBAAiB,OACpB,QAAO;AAGT,QAAO,WAAW,iBAAiB,KAAK,QAAQ,CAAC;;;;;ACsBnD,SAAgB,MAAM,EAAE,MAAM,QAAQ,WAAW,MAAM,OAAO,SAAS,YAAmB;AACxF,QACE;iDACG,MAAO,aACN,uFACG,YAAY,EAAE,wDAAU,MAAO,UAAU,CAAC,EAC3C,4CAAC,SAAK,IACL;EAEJ,aAAa,qFAAE,YAAU;EAAC;EACpB;EAAM;EACZ,QACC;GACG;GACA;GAAM;MACN;EACH;EACC;EACF,WAAW,qFAAE,cAAY;KACzB;;AAIP,MAAM,cAAc;;;;AClCpB,MAAM,8CAA8C,EAAE,CAAqB;AAiC3E,SAAgB,KAAoC,EAAE,SAAU,GAAG,QAAsB;AACvF,KAAI,CAAC,KAAK,YAAY,CAAC,KAAK,KAC1B,QAAO,2EAAG,WAAY;AAGxB,QACE,4CAAC;EAAU,GAAI;YACb,4CAAC,YAAY;GAAS,OAAO;IAAE,UAAU,KAAK;IAAU,MAAM,KAAK;IAAM,MAAM,KAAK;IAAM;GAAG;IAAgC;GACnH;;AAIhB,KAAK,cAAc;AAOnB,SAAS,WAAW,EAAE,YAAY,MAAM,cAAc,aAAa,YAA6B;AAC9F,QACE,4CAAC;EAAkB;EAAkB;EAA0B;EAA2B;EACvF;GACW;;AAIlB,WAAW,cAAc;AAIzB,SAAS,WAAW,EAAE,MAAM,MAAM,YAAY,WAA4B;AACxE,QAAO,4CAAC;EAAkB;EAAY;EAAM,YAAY,cAAc;EAAgB;GAAW;;AAGnG,WAAW,cAAc;AAIzB,SAAS,WAAW,EAAE,MAAM,MAAM,MAAM,YAAY,eAAgC;AAClF,QAAO,4CAAC;EAAkB;EAAY;EAAY;EAAmB;EAAa,YAAY,cAAc;GAAS;;AAGvH,WAAW,cAAc;AAEzB,KAAK,SAAS;AACd,KAAK,SAAS;AACd,KAAK,SAAS;AACd,KAAK,UAAU;;;;ACnGf,SAAwB,aAAa,QAAQ,QAAQ,GAAG,UAAU,EAAE,EAAE;CACrE,MAAM,EACL,SAAS,KACT,oBAAoB,UACjB;AAEJ,KAAI,OAAO,WAAW,SACrB,OAAM,IAAI,UACT,gDAAgD,OAAO,OAAO,IAC9D;AAGF,KAAI,OAAO,UAAU,SACpB,OAAM,IAAI,UACT,gDAAgD,OAAO,MAAM,IAC7D;AAGF,KAAI,QAAQ,EACX,OAAM,IAAI,WACT,8CAA8C,MAAM,IACpD;AAGF,KAAI,OAAO,WAAW,SACrB,OAAM,IAAI,UACT,yDAAyD,OAAO,OAAO,IACvE;AAGF,KAAI,UAAU,EACb,QAAO;CAGR,MAAM,QAAQ,oBAAoB,QAAQ;AAE1C,QAAO,OAAO,QAAQ,OAAO,OAAO,OAAO,MAAM,CAAC;;;;;;;;;ACvBnD,SAAgB,OAAO,EAAE,OAAO,GAAG,YAAyB;AAC1D,KAAI,CAAC,SAAU,QAAO;CAEtB,MAAM,wBAAiB,SAAS,QAAQ,SAAS,CAAC,OAAO,QAAQ;CACjE,MAAMA,SAA4B,EAAE;CAEpC,IAAI,YAAY;CAChB,IAAI,UAAU;AAEd,UAAS,SAAS,UAAU;AAC1B,mBAAU,eAAe,MAAM,IAAI,MAAM,SAAS,MAAM;AACtD,OAAI,CAAC,aAAa,UAAU,GAAG;AAC7B,WAAO,KAAK,MAAM;AAClB;;AAEF,eAAY;SACP;AACL,eAAY;AACZ,aAAU;AACV,UAAO,KAAK,MAAM;;GAEpB;AAEF,QACE,qFACG,OAAO,KAAK,UAAU;AACrB,MAAI,OAAO,UAAU,SAEnB,QAAO,qFAAG,aADM,OAAO,MAAM,EACG,KAAK,GAAI;AAE3C,SACE,uFACG,IAAI,OAAO,KAAK,EAChB,SACA;GAEL,GACD;;;;;ACPP,SAAgB,SAAS,EAAE,MAAM,SAAS,WAAW,QAAQ,WAAW,OAAO,UAAU,QAAQ,YAAY,OAAO,YAAmB;AACrI,QACE;iDACG,MAAO,aACN,uFACG,YAAY,EAAE,wDAAU,MAAO,UAAU,CAAC,EAC3C,4CAAC,SAAK,IACL;EAEJ,aAAa,qFAAE,YAAU;EACzB,aAAa,qFAAE,aAAW;EAC1B,SAAS,qFAAE,WAAS;EAAC;EACZ;EACT,YACC;GACG;GACA,MAAM,QAAQ,SAAS,GAAG,SAAS,KAAK,KAAK,CAAC,MAAM,GAAG;GACvD;MACA;EACH;EACA;EAAO;EAAE,cAAc,CAAC,SAAS,uFAAE,MAAG,cAAc;EACrD,cAAc,SACb;GAAE;GACU;GACT;GACA;MACA;EAEJ;EACD,4CAAC,SAAK;EACN,4CAAC;GAAO,MAAM;GAAI;IAAkB;EACpC,4CAAC,SAAK;EACL;KACA;;AAIP,SAAS,cAAc;AASvB,SAAS,cAAc,EAAE,MAAM,SAAS,WAAW,QAAQ,WAAW,OAAO,UAAU,QAAQ,YAAY,OAAO,YAAY,YAAgC;AAC5J,QACE;iDACG,MAAO,aACN,uFACG,YAAY,EAAE,wDAAU,MAAO,UAAU,CAAC,EAC3C,4CAAC,SAAK,IACL;EAEJ,aAAa,qFAAE,YAAU;EACzB,aAAa,qFAAE,aAAW;EAAC;EACrB;EAAK;EAAI,SAAS,qFAAE,WAAS;EACnC,YACC;GACG;GACA,MAAM,QAAQ,SAAS,GAAG,SAAS,KAAK,KAAK,CAAC,MAAM,GAAG;GACvD;MACA;EACH;EACA;EAAO;EAAE,cAAc,CAAC,SAAS,uFAAE,MAAG,cAAc;EACrD,cAAc,SACb;GAAE;GACU;GACT;GACA;MACA;EAEJ,cACC;GACG;GACA;GACD,4CAAC,SAAK;MACL;EAEJ,CAAC,cACA;GACG;GACD,4CAAC,SAAK;GACN,4CAAC;IAAO,MAAM;IAAI;KAAkB;GACpC,4CAAC,SAAK;GACL;GACD,4CAAC,SAAK;MACL;KAEJ;;AAIP,cAAc,cAAc;AAC5B,SAAS,QAAQ;;;;ACtHjB,SAAgB,KAAK,EAAE,MAAM,QAAQ,WAAW,OAAO,YAAmB;AACxE,KAAI,KAAK,OAAO,EAAE,CAAC,aAAa,KAAK,KAAK,OAAO,EAAE,CACjD,OAAM,IAAI,MAAM,gEAAgE;AAGlF,QACE;iDACG,MAAO,aACN,uFACG,YAAY,EAAE,wDAAU,MAAO,UAAU,CAAC,EAC3C,4CAAC,SAAK,IACL;EAEJ,aAAa,qFAAE,YAAU;EAAC;EACrB;EAAK;EAAI;KACd;;AAIP,KAAK,cAAc;;;;;;;ACjCnB,SAAgB,SAAkD;CAChE,MAAM,mCAAiB,IAAI,QAAQ;AAEnC,KAAI,CAAC,IACH,OAAM,IAAI,MAAM,wBAAwB;AAG1C,QAAO;;;;;;;;ACJT,SAAgB,UAA4B;AAG1C,qCAFwB,KAAK,QAAQ;;;;;;;;ACHvC,SAAgB,eAAe;CAC7B,MAAM,EAAE,sCAAoB,KAAK,QAAQ;AAEzC,QAAO,EACL,YAAY;AACV,mBAAiB;AACf,SAAM;KACL,EAAE;IAER;;;;;ACVH,SAAgB,kBAAkB,SAA+D;CAC/F,MAAM,SAAS,aAAa,EAAE,wDAAM,QAAS,MAAM,CAAC;AAEpD,uDAAI,QAAS,SACX,OAAM;AAGR,QAAO,IAAI,aAAa,QAAQ;AAEhC,QAAO;;;;;AC8BT,SAAS,MAAM,OAA+C;AAC5D,QAAO,QACL,MAAM,OAAO,QAAQ,EACrB,EACG,CAAC,MAAM,UAAU;AAChB,kDAAI,KAAM,SACR;AAEF,SAAO,8CAAC,KAAM;KAEf,CAAC,MAAM,UAAU;AAChB,kDAAI,KAAM,SACR;AAEF,SAAO,8CAAC,KAAM;GAEjB,EACD,CAAC,QAAQ,OAAO,CACjB;;AAGH,SAAS,WAAW,KAAa,MAAiB,SAAiC;CAEjF,MAAM,UAAU,MAAM,OAAO,QAAQ,KAAK,SAAS,CAAC;CAEpD,MAAMC,QAAkB,EAAE;CAC1B,MAAMC,QAAkB,EAAE;CAE1B,MAAM,WAAW,QAAQ,OAAO,CAAC,MAAMC,4DAAUA,OAAM,SAAS;AAEhE,SAAQ,SAAS,CAACC,OAAK,eAAe;AACpC,MAAI,WAAW;GACb,MAAMC,SAAO,UAAUD,OAAK;IAAE,GAAG;IAAW,MAAM;IAAW,EAAE,QAAQ;AACvE,OAAI,UAAU,UAAU;IACtB,MAAM,WAAW,OAAO,QAAQ,UAAU,SAAS,CAChD,KAAK,CAACA,WAAS;AACd,YAAOA;MACP,CACD,KAAK,KAAK;AAEb,QAAI,SACF,OAAM,KAAK,GAAGC,OAAK,MAAM,SAAS,IAAI;QAEtC,OAAM,KAAKA,OAAK;cAGd,QAAQ,SAAS,UAAU,QAAQ,cACrC,OAAM,KAAK,GAAGD,MAAI,IAAIC,SAAO;OAE7B,OAAM,KAAKA,OAAK;AAIpB,OAAI,QAAQ,MAAM,CAAC,MAAMF,4DAAUA,OAAM,KAAK,CAC5C,OAAM,KAAK,UAAUC,OAAK;IAAE,GAAG;IAAW,SAAS;IAAW,EAAE,QAAQ,CAAC;;GAG7E;CAEF,MAAM,OAAO,KAAK,SAAS,WAAW,MAAM,MAAM,SAAS,KAAK,MAAM,KAAK,KAAK,CAAC,MAAM;CACvF,MAAM,OAAO,KAAK,OAAO,KAAK,OAAO,MAAM,SAAS,KAAK,MAAM,KAAK,KAAK,CAAC,MAAM;AAEhF,KAAI,CAAC,KACH,QAAO;AAGT,QAAO,UACL,MACA;EACE;EACA,SAAS,KAAK;EACd,UAAU,CAAC,KAAK,UAAU,WAAW;EACtC,EACD,QACD;;AAGH,SAAS,UAAU,MAAc,MAAiB,SAA0B;CAC1E,MAAME,MAAgB,EAAE;CACxB,MAAM,kBAAkB,QAAQ,gBAAgB,QAAQ,cAAc,KAAK,GAAG;CAC9E,MAAM,kBAAkB,QAAQ,iBAAiB,KAAK,OAAO,QAAQ,cAAc,KAAK,KAAK,GAAG,KAAK;AAErG,KAAI,QAAQ,SAAS,SACnB,QAAO;AAGT,KAAI,QAAQ,SAAS,cACnB,QAAO,KAAK,QAAQ,GAAG,gBAAgB,IAAI,KAAK,UAAU;AAI5D,KAAI,KAAK,QAAQ,QAAQ,SAAS,cAChC,KAAI,KAAK,SACP,KAAI,KAAK,GAAG,gBAAgB,KAAK,kBAAkB;KAEnD,KAAI,KAAK,GAAG,gBAAgB,IAAI,kBAAkB,KAAK,UAAU,MAAM,KAAK,YAAY,KAAK;UAEtF,KAAK,WAAW,QAAQ,SAAS,cAC1C,KAAI,KAAK,GAAG,gBAAgB,KAAK,KAAK,UAAU;UACvC,KAAK,MACd,KAAI,KAAK,GAAG,gBAAgB,KAAK,KAAK,QAAQ;UACrC,KAAK,SAAS,eACvB,KAAI,KAAK,OAAO,kBAAkB;KAElC,KAAI,KAAK,gBAAgB;AAG3B,QAAO,IAAI;;AAGb,SAAgB,kBAAkB,QAAgB,SAA0B;AAG1E,QAFgB,MAAM,OAAO,QAAQ,OAAgD,CAAC,CAGnF,QAAQ,KAAK,CAAC,KAAK,UAAU;AAC5B,MAAI,CAAC,KACH,QAAO;AAGT,MAAI,KAAK,UAAU;AACjB,OAAI,OAAO,KAAK,KAAK,SAAS,CAAC,WAAW,EACxC,QAAO;AAGT,OAAI,KAAK,SAAS,eAChB,QAAO,CAAC,GAAG,KAAK,kBAAkB,KAAK,UAAU,QAAQ,CAAC;GAG5D,MAAMC,eAAa,WAAW,KAAK,MAAM,QAAQ;AACjD,OAAI,CAACA,aACH,QAAO;AAGT,UAAO,CAAC,GAAG,KAAKA,aAAW;;EAG7B,MAAM,aAAa,UAAU,KAAK,MAAM,QAAQ;AAEhD,SAAO,CAAC,GAAG,KAAK,WAAW;IAC1B,EAAE,CAAa,CACjB,KAAK,KAAK;;AAGf,SAAgB,qBAAqB,QAAwB;AAC3D,QAAO;;;AAIT,IAAa,iBAAb,MAAa,eAAe;CAG1B,OAAO,QAAQ,QAAgB;AAC7B,SAAO,IAAI,eAAe,OAAO;;CAEnC,YAAY,QAAgB;;AAC1B,wCAAe,OAAM;;CAGvB,IAAI,SAAiB;AACnB,yCAAO,KAAY;;CAGrB,IAAI,aAAqB;EACvB,MAAM,WAAW,KAAa,CAAC,KAAK,UAA+C;AACjF,mDAAI,KAAM,SACR,QAAO,OAAO,QAAQ,KAAK,SAAS,CAAC,OAAO,SAAS,IAAI;AAE3D,OAAI,KACF,KAAI,OAAO;AAGb,UAAO;;AAET,SAAO,OAAO,wCAAQ,KAAY,CAAC,CAAC,OAAO,SAAS,EAAE,CAAW;;CAGnE,OAAO,EAAE,eAAe,kBAAoE,EAAE,EAAU;AACtG,SAAO,kDAAkB,KAAY,EAAE;GAAE,MAAM;GAAQ;GAAe;GAAe,CAAC;;CAGxF,WAAmB;AACjB,SAAO,kDAAkB,KAAY,EAAE,EAAE,MAAM,UAAU,CAAC;;CAE5D,gBAAwB;AACtB,SAAO,kDAAkB,KAAY,EAAE,EAAE,MAAM,eAAe,CAAC;;CAGjE,gBAAwB;AACtB,SAAO,kDAAkB,KAAY,EAAE,EAAE,MAAM,eAAe,CAAC;;;;;;AChNnE,MAAa,6BAAsB;AACnC,MAAa,6BAAsB;AACnC,MAAa,0BAAmB;AAChC,MAAa,yBAAkB;AAC/B,MAAa,wBAAiB;AAC9B,MAAa,sBAAe;AAC5B,MAAa,mBAAY;AACzB,MAAa,0BAAmB"}
|
package/dist/parsers.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./KubbFile-DHCtBOpy.cjs";
|
|
2
|
-
import {
|
|
2
|
+
import { o as Parser, s as UserParser } from "./Fabric-PGwn47Lb.cjs";
|
|
3
3
|
|
|
4
4
|
//#region ../fabric-core/src/parsers/createParser.d.ts
|
|
5
5
|
declare function createParser<TOptions = unknown, TMeta extends object = any>(parser: UserParser<TOptions, TMeta>): Parser<TOptions, TMeta>;
|
package/dist/parsers.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./KubbFile-bFdmEsQz.js";
|
|
2
|
-
import {
|
|
2
|
+
import { o as Parser, s as UserParser } from "./Fabric-CoGYXq1o.js";
|
|
3
3
|
|
|
4
4
|
//#region ../fabric-core/src/parsers/createParser.d.ts
|
|
5
5
|
declare function createParser<TOptions = unknown, TMeta extends object = any>(parser: UserParser<TOptions, TMeta>): Parser<TOptions, TMeta>;
|
package/dist/plugins.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as Extname } from "./KubbFile-DHCtBOpy.cjs";
|
|
2
|
-
import { c as
|
|
3
|
-
import { n as reactPlugin } from "./reactPlugin-
|
|
2
|
+
import { c as Plugin, l as UserPlugin } from "./Fabric-PGwn47Lb.cjs";
|
|
3
|
+
import { n as reactPlugin } from "./reactPlugin-SuzV8fwK.cjs";
|
|
4
4
|
|
|
5
5
|
//#region ../fabric-core/src/plugins/createPlugin.d.ts
|
|
6
6
|
declare function createPlugin<Options$3 = unknown, TAppExtension extends Record<string, any> = {}>(plugin: UserPlugin<Options$3, TAppExtension>): Plugin<Options$3, TAppExtension>;
|
package/dist/plugins.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as Extname } from "./KubbFile-bFdmEsQz.js";
|
|
2
|
-
import { c as
|
|
3
|
-
import { n as reactPlugin } from "./reactPlugin-
|
|
2
|
+
import { c as Plugin, l as UserPlugin } from "./Fabric-CoGYXq1o.js";
|
|
3
|
+
import { n as reactPlugin } from "./reactPlugin-CCty1XGl.js";
|
|
4
4
|
|
|
5
5
|
//#region ../fabric-core/src/plugins/createPlugin.d.ts
|
|
6
6
|
declare function createPlugin<Options$3 = unknown, TAppExtension extends Record<string, any> = {}>(plugin: UserPlugin<Options$3, TAppExtension>): Plugin<Options$3, TAppExtension>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as Plugin } from "./Fabric-CoGYXq1o.js";
|
|
2
2
|
import { ElementType } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/plugins/reactPlugin.d.ts
|
|
@@ -35,4 +35,4 @@ declare global {
|
|
|
35
35
|
declare const reactPlugin: Plugin<Options, ExtendOptions>;
|
|
36
36
|
//#endregion
|
|
37
37
|
export { reactPlugin as n, Options as t };
|
|
38
|
-
//# sourceMappingURL=reactPlugin-
|
|
38
|
+
//# sourceMappingURL=reactPlugin-CCty1XGl.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as Plugin } from "./Fabric-PGwn47Lb.cjs";
|
|
2
2
|
import { ElementType } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/plugins/reactPlugin.d.ts
|
|
@@ -35,4 +35,4 @@ declare global {
|
|
|
35
35
|
declare const reactPlugin: Plugin<Options, ExtendOptions>;
|
|
36
36
|
//#endregion
|
|
37
37
|
export { reactPlugin as n, Options as t };
|
|
38
|
-
//# sourceMappingURL=reactPlugin-
|
|
38
|
+
//# sourceMappingURL=reactPlugin-SuzV8fwK.d.cts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/react-fabric",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "React integration for Kubb, providing JSX runtime support and React component generation capabilities for code generation plugins.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"react-reconciler": "0.32.0",
|
|
103
103
|
"signal-exit": "^4.1.0",
|
|
104
104
|
"ws": "8.18.0",
|
|
105
|
-
"@kubb/fabric-core": "0.2.
|
|
105
|
+
"@kubb/fabric-core": "0.2.3"
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
108
|
"react": "^19.2.0",
|
package/src/index.ts
CHANGED
|
@@ -15,7 +15,7 @@ export { useFile } from './composables/useFile.ts'
|
|
|
15
15
|
export { useLifecycle } from './composables/useLifecycle.tsx'
|
|
16
16
|
|
|
17
17
|
// expose fabric core helpers
|
|
18
|
-
export
|
|
18
|
+
export * from '@kubb/fabric-core'
|
|
19
19
|
export { createReactFabric } from './createReactFabric.ts'
|
|
20
20
|
|
|
21
21
|
// utils
|