@kubb/plugin-client 3.0.0-alpha.13 → 3.0.0-alpha.15

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.
Files changed (41) hide show
  1. package/dist/{chunk-QBFKND4S.js → chunk-BAX6ZFGY.js} +3 -3
  2. package/dist/chunk-BAX6ZFGY.js.map +1 -0
  3. package/dist/chunk-H2OOHGK2.js +147 -0
  4. package/dist/chunk-H2OOHGK2.js.map +1 -0
  5. package/dist/chunk-TNO4CNBR.cjs +156 -0
  6. package/dist/chunk-TNO4CNBR.cjs.map +1 -0
  7. package/dist/{chunk-PO22ZUSH.cjs → chunk-XDWPA5EL.cjs} +3 -3
  8. package/dist/chunk-XDWPA5EL.cjs.map +1 -0
  9. package/dist/components.cjs +3 -4
  10. package/dist/components.d.cts +10 -2
  11. package/dist/components.d.ts +10 -2
  12. package/dist/components.js +1 -2
  13. package/dist/generators.cjs +8 -4
  14. package/dist/generators.d.cts +5 -3
  15. package/dist/generators.d.ts +5 -3
  16. package/dist/generators.js +2 -2
  17. package/dist/index.cjs +9 -107
  18. package/dist/index.cjs.map +1 -1
  19. package/dist/index.d.cts +2 -2
  20. package/dist/index.d.ts +2 -2
  21. package/dist/index.js +2 -106
  22. package/dist/index.js.map +1 -1
  23. package/dist/{types-DETYKDFZ.d.cts → types-CzL-44IA.d.cts} +18 -34
  24. package/dist/{types-DETYKDFZ.d.ts → types-CzL-44IA.d.ts} +18 -34
  25. package/package.json +12 -12
  26. package/src/components/Client.tsx +2 -2
  27. package/src/generators/{axiosGenerator.tsx → clientGenerator.tsx} +9 -26
  28. package/src/generators/index.ts +2 -1
  29. package/src/generators/operationsGenerator.tsx +21 -0
  30. package/src/plugin.ts +8 -15
  31. package/src/types.ts +17 -28
  32. package/dist/chunk-3NQF7BGA.cjs +0 -58
  33. package/dist/chunk-3NQF7BGA.cjs.map +0 -1
  34. package/dist/chunk-AZDWYBLW.cjs +0 -4
  35. package/dist/chunk-AZDWYBLW.cjs.map +0 -1
  36. package/dist/chunk-PO22ZUSH.cjs.map +0 -1
  37. package/dist/chunk-QBFKND4S.js.map +0 -1
  38. package/dist/chunk-QLVGX3VO.js +0 -56
  39. package/dist/chunk-QLVGX3VO.js.map +0 -1
  40. package/dist/chunk-YJOVLRSC.js +0 -3
  41. package/dist/chunk-YJOVLRSC.js.map +0 -1
@@ -7,7 +7,7 @@ import { jsx, jsxs } from '@kubb/react/jsx-runtime';
7
7
  // src/components/Client.tsx
8
8
  function Client({ name, options, typedSchemas, operation }) {
9
9
  const contentType = operation.getContentType();
10
- const baseURL = options.client.importPath === "@kubb/plugin-client/client" ? options.baseURL : void 0;
10
+ const baseURL = options.baseURL;
11
11
  const path = new URLPath(operation.path);
12
12
  const isFormData = contentType === "multipart/form-data";
13
13
  const headers = [
@@ -118,5 +118,5 @@ function Operations({ name, operations }) {
118
118
  }
119
119
 
120
120
  export { Client, Operations };
121
- //# sourceMappingURL=chunk-QBFKND4S.js.map
122
- //# sourceMappingURL=chunk-QBFKND4S.js.map
121
+ //# sourceMappingURL=chunk-BAX6ZFGY.js.map
122
+ //# sourceMappingURL=chunk-BAX6ZFGY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Client.tsx","../src/components/Operations.tsx"],"names":["URLPath","jsx","File"],"mappings":"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","file":"chunk-BAX6ZFGY.js","sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, createFunctionParams } from '@kubb/react'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n options: PluginClient['resolvedOptions']\n typedSchemas: OperationSchemas\n operation: Operation\n}\n\nexport function Client({ name, options, typedSchemas, operation }: Props): KubbNode {\n const contentType = operation.getContentType()\n const baseURL = options.baseURL\n const path = new URLPath(operation.path)\n const isFormData = contentType === 'multipart/form-data'\n const headers = [\n contentType !== 'application/json' ? `'Content-Type': '${contentType}'` : undefined,\n typedSchemas.headerParams?.name ? '...headers' : undefined,\n ].filter(Boolean)\n\n const params = createFunctionParams({\n pathParams: {\n mode: options.pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typedSchemas.pathParams, { typed: true }),\n },\n data: typedSchemas.request?.name\n ? {\n type: typedSchemas.request?.name,\n optional: isOptional(typedSchemas.request?.schema),\n }\n : undefined,\n params: typedSchemas.queryParams?.name\n ? {\n type: typedSchemas.queryParams?.name,\n optional: isOptional(typedSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typedSchemas.headerParams?.name\n ? {\n type: typedSchemas.headerParams?.name,\n optional: isOptional(typedSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: 'Partial<Parameters<typeof client>[0]>',\n default: '{}',\n },\n })\n\n const clientParams = createFunctionParams({\n data: {\n mode: 'object',\n children: {\n method: {\n type: 'string',\n value: JSON.stringify(operation.method),\n },\n url: {\n type: 'string',\n value: path.template,\n },\n baseURL: baseURL\n ? {\n type: 'string',\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typedSchemas.queryParams?.name\n ? {\n type: 'any',\n }\n : undefined,\n data: typedSchemas.request?.name\n ? {\n type: 'any',\n value: isFormData ? 'formData' : undefined,\n }\n : undefined,\n headers: headers.length\n ? {\n type: 'any',\n value: headers.length ? `{ ${headers.join(', ')}, ...options.headers }` : undefined,\n }\n : undefined,\n options: {\n type: 'any',\n mode: 'inlineSpread',\n },\n },\n },\n })\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n async\n export\n returnType={\n options.dataReturnType === 'data' ? `ResponseConfig<${typedSchemas.response.name}>[\"data\"]` : `ResponseConfig<${typedSchemas.response.name}>`\n }\n params={params}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {formData || ''}\n <Function.Call\n name=\"res\"\n to={<Function name=\"client\" async generics={[typedSchemas.response.name, typedSchemas.request?.name].filter(Boolean)} params={clientParams} />}\n />\n <Function.Return>{options.dataReturnType === 'data' ? 'res.data' : 'res'}</Function.Return>\n </Function>\n </File.Source>\n )\n}\n","import { URLPath } from '@kubb/core/utils'\nimport { Const, File } from '@kubb/react'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\n\ntype OperationsProps = {\n name: string\n operations: Array<Operation>\n}\n\nexport function Operations({ name, operations }: OperationsProps) {\n const operationsObject: Record<string, { path: string; method: HttpMethod }> = {}\n\n operations.forEach((operation) => {\n operationsObject[operation.getOperationId()] = {\n path: new URLPath(operation.path).URL,\n method: operation.method,\n }\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export asConst>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n"]}
@@ -0,0 +1,147 @@
1
+ import { Client, Operations } from './chunk-BAX6ZFGY.js';
2
+ import { createReactGenerator, pluginOasName, OperationGenerator } from '@kubb/plugin-oas';
3
+ import { useOperationManager } from '@kubb/plugin-oas/hooks';
4
+ import { pluginTsName } from '@kubb/plugin-ts';
5
+ import { useApp, File } from '@kubb/react';
6
+ import { jsxs, jsx } from '@kubb/react/jsx-runtime';
7
+ import path from 'node:path';
8
+ import { createPlugin, FileManager, PluginManager } from '@kubb/core';
9
+ import { camelCase } from '@kubb/core/transformers';
10
+ import { renderTemplate } from '@kubb/core/utils';
11
+
12
+ var clientGenerator = createReactGenerator({
13
+ name: "plugin-client",
14
+ Operation({ options, operation }) {
15
+ const { plugin } = useApp();
16
+ const { getSchemas, getName, getFile } = useOperationManager();
17
+ const name = getName(operation, { type: "function" });
18
+ const typedSchemas = getSchemas(operation, { pluginKey: [pluginTsName], type: "type" });
19
+ const file = getFile(operation);
20
+ const typedFile = getFile(operation, { pluginKey: [pluginTsName] });
21
+ if (!options.template) {
22
+ return null;
23
+ }
24
+ const Template = options.template || Client;
25
+ return /* @__PURE__ */ jsxs(File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
26
+ /* @__PURE__ */ jsx(File.Import, { name: "client", path: options.importPath || "@kubb/plugin-client/client" }),
27
+ /* @__PURE__ */ jsx(File.Import, { name: ["ResponseConfig"], path: options.importPath || "@kubb/plugin-client/client", isTypeOnly: true }),
28
+ /* @__PURE__ */ jsx(
29
+ File.Import,
30
+ {
31
+ extName: plugin.output?.extName,
32
+ name: [
33
+ typedSchemas.request?.name,
34
+ typedSchemas.response.name,
35
+ typedSchemas.pathParams?.name,
36
+ typedSchemas.queryParams?.name,
37
+ typedSchemas.headerParams?.name
38
+ ].filter(Boolean),
39
+ root: file.path,
40
+ path: typedFile.path,
41
+ isTypeOnly: true
42
+ }
43
+ ),
44
+ /* @__PURE__ */ jsx(Template, { name, options, typedSchemas, operation })
45
+ ] });
46
+ }
47
+ });
48
+ var pluginClientName = "plugin-client";
49
+ var pluginClient = createPlugin((options) => {
50
+ const {
51
+ output = { path: "clients" },
52
+ group,
53
+ exclude = [],
54
+ include,
55
+ override = [],
56
+ transformers = {},
57
+ dataReturnType = "data",
58
+ pathParamsType = "inline",
59
+ operations = false,
60
+ importPath = "@kubb/plugin-client/client"
61
+ } = options;
62
+ const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`;
63
+ return {
64
+ name: pluginClientName,
65
+ output: {
66
+ exportType: "barrelNamed",
67
+ ...output
68
+ },
69
+ options: {
70
+ dataReturnType,
71
+ importPath,
72
+ template: options.template || Client,
73
+ pathParamsType,
74
+ baseURL: void 0
75
+ },
76
+ pre: [pluginOasName],
77
+ resolvePath(baseName, pathMode, options2) {
78
+ const root = path.resolve(this.config.root, this.config.output.path);
79
+ const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path));
80
+ if (mode === "single") {
81
+ return path.resolve(root, output.path);
82
+ }
83
+ if (options2?.tag && group?.type === "tag") {
84
+ const tag = camelCase(options2.tag);
85
+ return path.resolve(root, renderTemplate(template, { tag }), baseName);
86
+ }
87
+ return path.resolve(root, output.path, baseName);
88
+ },
89
+ resolveName(name, type) {
90
+ const resolvedName = camelCase(name, { isFile: type === "file" });
91
+ if (type) {
92
+ return transformers?.name?.(resolvedName, type) || resolvedName;
93
+ }
94
+ return resolvedName;
95
+ },
96
+ async buildStart() {
97
+ const [swaggerPlugin] = PluginManager.getDependedPlugins(this.plugins, [pluginOasName]);
98
+ const oas = await swaggerPlugin.context.getOas();
99
+ const root = path.resolve(this.config.root, this.config.output.path);
100
+ const mode = FileManager.getMode(path.resolve(root, output.path));
101
+ const baseURL = await swaggerPlugin.context.getBaseURL();
102
+ const operationGenerator = new OperationGenerator(
103
+ {
104
+ ...this.plugin.options,
105
+ baseURL
106
+ },
107
+ {
108
+ oas,
109
+ pluginManager: this.pluginManager,
110
+ plugin: this.plugin,
111
+ contentType: swaggerPlugin.context.contentType,
112
+ exclude,
113
+ include,
114
+ override,
115
+ mode
116
+ }
117
+ );
118
+ const files = await operationGenerator.build(...[clientGenerator, operations ? operationsGenerator : void 0].filter(Boolean));
119
+ await this.addFile(...files);
120
+ if (this.config.output.exportType) {
121
+ const barrelFiles = await this.fileManager.getBarrelFiles({
122
+ root,
123
+ output,
124
+ files: this.fileManager.files,
125
+ meta: {
126
+ pluginKey: this.plugin.key
127
+ },
128
+ logger: this.logger
129
+ });
130
+ await this.addFile(...barrelFiles);
131
+ }
132
+ }
133
+ };
134
+ });
135
+ var operationsGenerator = createReactGenerator({
136
+ name: "plugin-client",
137
+ Operations({ operations }) {
138
+ const { pluginManager } = useApp();
139
+ const name = "operations";
140
+ const file = pluginManager.getFile({ name, extName: ".ts", pluginKey: [pluginClientName] });
141
+ return /* @__PURE__ */ jsx(File, { baseName: file.baseName, path: file.path, meta: file.meta, children: /* @__PURE__ */ jsx(Operations, { name, operations }) });
142
+ }
143
+ });
144
+
145
+ export { clientGenerator, operationsGenerator, pluginClient, pluginClientName };
146
+ //# sourceMappingURL=chunk-H2OOHGK2.js.map
147
+ //# sourceMappingURL=chunk-H2OOHGK2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generators/clientGenerator.tsx","../src/plugin.ts","../src/generators/operationsGenerator.tsx"],"names":["options","createReactGenerator","useApp","jsx","File"],"mappings":"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","file":"chunk-H2OOHGK2.js","sourcesContent":["import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\nimport { Client } from '../components/Client'\nimport type { PluginClient } from '../types'\n\nexport const clientGenerator = createReactGenerator<PluginClient>({\n name: 'plugin-client',\n Operation({ options, operation }) {\n const { plugin } = useApp<PluginClient>()\n const { getSchemas, getName, getFile } = useOperationManager()\n\n const name = getName(operation, { type: 'function' })\n const typedSchemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const file = getFile(operation)\n const typedFile = getFile(operation, { pluginKey: [pluginTsName] })\n\n if (!options.template) {\n return null\n }\n\n const Template = options.template || Client\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={options.importPath || '@kubb/plugin-client/client'} />\n <File.Import name={['ResponseConfig']} path={options.importPath || '@kubb/plugin-client/client'} isTypeOnly />\n <File.Import\n extName={plugin.output?.extName}\n name={[\n typedSchemas.request?.name,\n typedSchemas.response.name,\n typedSchemas.pathParams?.name,\n typedSchemas.queryParams?.name,\n typedSchemas.headerParams?.name,\n ].filter(Boolean)}\n root={file.path}\n path={typedFile.path}\n isTypeOnly\n />\n <Template name={name} options={options} typedSchemas={typedSchemas} operation={operation} />\n </File>\n )\n },\n})\n","import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\n\nimport { Client } from './components/index.ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport { operationsGenerator } from './generators'\nimport { clientGenerator } from './generators/clientGenerator.tsx'\nimport type { PluginClient } from './types.ts'\n\nexport const pluginClientName = 'plugin-client' satisfies PluginClient['name']\n\nexport const pluginClient = createPlugin<PluginClient>((options) => {\n const {\n output = { path: 'clients' },\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n dataReturnType = 'data',\n pathParamsType = 'inline',\n operations = false,\n importPath = '@kubb/plugin-client/client',\n } = options\n\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginClientName,\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n options: {\n dataReturnType,\n importPath,\n template: options.template || Client,\n pathParamsType,\n baseURL: undefined,\n },\n pre: [pluginOasName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (options?.tag && group?.type === 'tag') {\n const tag = camelCase(options.tag)\n\n return path.resolve(root, renderTemplate(template, { tag }), baseName)\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, { isFile: type === 'file' })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.context.getOas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n const baseURL = await swaggerPlugin.context.getBaseURL()\n\n const operationGenerator = new OperationGenerator(\n {\n ...this.plugin.options,\n baseURL,\n },\n {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n exclude,\n include,\n override,\n mode,\n },\n )\n\n const files = await operationGenerator.build(...[clientGenerator, operations ? operationsGenerator : undefined].filter(Boolean))\n\n await this.addFile(...files)\n\n if (this.config.output.exportType) {\n const barrelFiles = await this.fileManager.getBarrelFiles({\n root,\n output,\n files: this.fileManager.files,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.addFile(...barrelFiles)\n }\n },\n }\n})\n","import { pluginClientName } from '@kubb/plugin-client'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { File, useApp } from '@kubb/react'\nimport { Operations } from '../components/Operations'\nimport type { PluginClient } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginClient>({\n name: 'plugin-client',\n Operations({ operations }) {\n const { pluginManager } = useApp<PluginClient>()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extName: '.ts', pluginKey: [pluginClientName] })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta}>\n <Operations name={name} operations={operations} />\n </File>\n )\n },\n})\n"]}
@@ -0,0 +1,156 @@
1
+ 'use strict';
2
+
3
+ var chunkXDWPA5EL_cjs = require('./chunk-XDWPA5EL.cjs');
4
+ var pluginOas = require('@kubb/plugin-oas');
5
+ var hooks = require('@kubb/plugin-oas/hooks');
6
+ var pluginTs = require('@kubb/plugin-ts');
7
+ var react = require('@kubb/react');
8
+ var jsxRuntime = require('@kubb/react/jsx-runtime');
9
+ var path = require('path');
10
+ var core = require('@kubb/core');
11
+ var transformers = require('@kubb/core/transformers');
12
+ var utils = require('@kubb/core/utils');
13
+
14
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
+
16
+ var path__default = /*#__PURE__*/_interopDefault(path);
17
+
18
+ var clientGenerator = pluginOas.createReactGenerator({
19
+ name: "plugin-client",
20
+ Operation({ options, operation }) {
21
+ const { plugin } = react.useApp();
22
+ const { getSchemas, getName, getFile } = hooks.useOperationManager();
23
+ const name = getName(operation, { type: "function" });
24
+ const typedSchemas = getSchemas(operation, { pluginKey: [pluginTs.pluginTsName], type: "type" });
25
+ const file = getFile(operation);
26
+ const typedFile = getFile(operation, { pluginKey: [pluginTs.pluginTsName] });
27
+ if (!options.template) {
28
+ return null;
29
+ }
30
+ const Template = options.template || chunkXDWPA5EL_cjs.Client;
31
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
32
+ /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: "client", path: options.importPath || "@kubb/plugin-client/client" }),
33
+ /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["ResponseConfig"], path: options.importPath || "@kubb/plugin-client/client", isTypeOnly: true }),
34
+ /* @__PURE__ */ jsxRuntime.jsx(
35
+ react.File.Import,
36
+ {
37
+ extName: plugin.output?.extName,
38
+ name: [
39
+ typedSchemas.request?.name,
40
+ typedSchemas.response.name,
41
+ typedSchemas.pathParams?.name,
42
+ typedSchemas.queryParams?.name,
43
+ typedSchemas.headerParams?.name
44
+ ].filter(Boolean),
45
+ root: file.path,
46
+ path: typedFile.path,
47
+ isTypeOnly: true
48
+ }
49
+ ),
50
+ /* @__PURE__ */ jsxRuntime.jsx(Template, { name, options, typedSchemas, operation })
51
+ ] });
52
+ }
53
+ });
54
+ var pluginClientName = "plugin-client";
55
+ var pluginClient = core.createPlugin((options) => {
56
+ const {
57
+ output = { path: "clients" },
58
+ group,
59
+ exclude = [],
60
+ include,
61
+ override = [],
62
+ transformers: transformers$1 = {},
63
+ dataReturnType = "data",
64
+ pathParamsType = "inline",
65
+ operations = false,
66
+ importPath = "@kubb/plugin-client/client"
67
+ } = options;
68
+ const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`;
69
+ return {
70
+ name: pluginClientName,
71
+ output: {
72
+ exportType: "barrelNamed",
73
+ ...output
74
+ },
75
+ options: {
76
+ dataReturnType,
77
+ importPath,
78
+ template: options.template || chunkXDWPA5EL_cjs.Client,
79
+ pathParamsType,
80
+ baseURL: void 0
81
+ },
82
+ pre: [pluginOas.pluginOasName],
83
+ resolvePath(baseName, pathMode, options2) {
84
+ const root = path__default.default.resolve(this.config.root, this.config.output.path);
85
+ const mode = pathMode ?? core.FileManager.getMode(path__default.default.resolve(root, output.path));
86
+ if (mode === "single") {
87
+ return path__default.default.resolve(root, output.path);
88
+ }
89
+ if (options2?.tag && group?.type === "tag") {
90
+ const tag = transformers.camelCase(options2.tag);
91
+ return path__default.default.resolve(root, utils.renderTemplate(template, { tag }), baseName);
92
+ }
93
+ return path__default.default.resolve(root, output.path, baseName);
94
+ },
95
+ resolveName(name, type) {
96
+ const resolvedName = transformers.camelCase(name, { isFile: type === "file" });
97
+ if (type) {
98
+ return transformers$1?.name?.(resolvedName, type) || resolvedName;
99
+ }
100
+ return resolvedName;
101
+ },
102
+ async buildStart() {
103
+ const [swaggerPlugin] = core.PluginManager.getDependedPlugins(this.plugins, [pluginOas.pluginOasName]);
104
+ const oas = await swaggerPlugin.context.getOas();
105
+ const root = path__default.default.resolve(this.config.root, this.config.output.path);
106
+ const mode = core.FileManager.getMode(path__default.default.resolve(root, output.path));
107
+ const baseURL = await swaggerPlugin.context.getBaseURL();
108
+ const operationGenerator = new pluginOas.OperationGenerator(
109
+ {
110
+ ...this.plugin.options,
111
+ baseURL
112
+ },
113
+ {
114
+ oas,
115
+ pluginManager: this.pluginManager,
116
+ plugin: this.plugin,
117
+ contentType: swaggerPlugin.context.contentType,
118
+ exclude,
119
+ include,
120
+ override,
121
+ mode
122
+ }
123
+ );
124
+ const files = await operationGenerator.build(...[clientGenerator, operations ? operationsGenerator : void 0].filter(Boolean));
125
+ await this.addFile(...files);
126
+ if (this.config.output.exportType) {
127
+ const barrelFiles = await this.fileManager.getBarrelFiles({
128
+ root,
129
+ output,
130
+ files: this.fileManager.files,
131
+ meta: {
132
+ pluginKey: this.plugin.key
133
+ },
134
+ logger: this.logger
135
+ });
136
+ await this.addFile(...barrelFiles);
137
+ }
138
+ }
139
+ };
140
+ });
141
+ var operationsGenerator = pluginOas.createReactGenerator({
142
+ name: "plugin-client",
143
+ Operations({ operations }) {
144
+ const { pluginManager } = react.useApp();
145
+ const name = "operations";
146
+ const file = pluginManager.getFile({ name, extName: ".ts", pluginKey: [pluginClientName] });
147
+ return /* @__PURE__ */ jsxRuntime.jsx(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, children: /* @__PURE__ */ jsxRuntime.jsx(chunkXDWPA5EL_cjs.Operations, { name, operations }) });
148
+ }
149
+ });
150
+
151
+ exports.clientGenerator = clientGenerator;
152
+ exports.operationsGenerator = operationsGenerator;
153
+ exports.pluginClient = pluginClient;
154
+ exports.pluginClientName = pluginClientName;
155
+ //# sourceMappingURL=chunk-TNO4CNBR.cjs.map
156
+ //# sourceMappingURL=chunk-TNO4CNBR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generators/clientGenerator.tsx","../src/plugin.ts","../src/generators/operationsGenerator.tsx"],"names":["createReactGenerator","useApp","useOperationManager","pluginTsName","Client","jsxs","File","jsx","createPlugin","transformers","pluginOasName","options","path","FileManager","camelCase","renderTemplate","PluginManager","OperationGenerator","Operations"],"mappings":"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","file":"chunk-TNO4CNBR.cjs","sourcesContent":["import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\nimport { Client } from '../components/Client'\nimport type { PluginClient } from '../types'\n\nexport const clientGenerator = createReactGenerator<PluginClient>({\n name: 'plugin-client',\n Operation({ options, operation }) {\n const { plugin } = useApp<PluginClient>()\n const { getSchemas, getName, getFile } = useOperationManager()\n\n const name = getName(operation, { type: 'function' })\n const typedSchemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const file = getFile(operation)\n const typedFile = getFile(operation, { pluginKey: [pluginTsName] })\n\n if (!options.template) {\n return null\n }\n\n const Template = options.template || Client\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={options.importPath || '@kubb/plugin-client/client'} />\n <File.Import name={['ResponseConfig']} path={options.importPath || '@kubb/plugin-client/client'} isTypeOnly />\n <File.Import\n extName={plugin.output?.extName}\n name={[\n typedSchemas.request?.name,\n typedSchemas.response.name,\n typedSchemas.pathParams?.name,\n typedSchemas.queryParams?.name,\n typedSchemas.headerParams?.name,\n ].filter(Boolean)}\n root={file.path}\n path={typedFile.path}\n isTypeOnly\n />\n <Template name={name} options={options} typedSchemas={typedSchemas} operation={operation} />\n </File>\n )\n },\n})\n","import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\n\nimport { Client } from './components/index.ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport { operationsGenerator } from './generators'\nimport { clientGenerator } from './generators/clientGenerator.tsx'\nimport type { PluginClient } from './types.ts'\n\nexport const pluginClientName = 'plugin-client' satisfies PluginClient['name']\n\nexport const pluginClient = createPlugin<PluginClient>((options) => {\n const {\n output = { path: 'clients' },\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n dataReturnType = 'data',\n pathParamsType = 'inline',\n operations = false,\n importPath = '@kubb/plugin-client/client',\n } = options\n\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginClientName,\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n options: {\n dataReturnType,\n importPath,\n template: options.template || Client,\n pathParamsType,\n baseURL: undefined,\n },\n pre: [pluginOasName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (options?.tag && group?.type === 'tag') {\n const tag = camelCase(options.tag)\n\n return path.resolve(root, renderTemplate(template, { tag }), baseName)\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, { isFile: type === 'file' })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.context.getOas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n const baseURL = await swaggerPlugin.context.getBaseURL()\n\n const operationGenerator = new OperationGenerator(\n {\n ...this.plugin.options,\n baseURL,\n },\n {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n exclude,\n include,\n override,\n mode,\n },\n )\n\n const files = await operationGenerator.build(...[clientGenerator, operations ? operationsGenerator : undefined].filter(Boolean))\n\n await this.addFile(...files)\n\n if (this.config.output.exportType) {\n const barrelFiles = await this.fileManager.getBarrelFiles({\n root,\n output,\n files: this.fileManager.files,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.addFile(...barrelFiles)\n }\n },\n }\n})\n","import { pluginClientName } from '@kubb/plugin-client'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { File, useApp } from '@kubb/react'\nimport { Operations } from '../components/Operations'\nimport type { PluginClient } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginClient>({\n name: 'plugin-client',\n Operations({ operations }) {\n const { pluginManager } = useApp<PluginClient>()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extName: '.ts', pluginKey: [pluginClientName] })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta}>\n <Operations name={name} operations={operations} />\n </File>\n )\n },\n})\n"]}
@@ -9,7 +9,7 @@ var jsxRuntime = require('@kubb/react/jsx-runtime');
9
9
  // src/components/Client.tsx
10
10
  function Client({ name, options, typedSchemas, operation }) {
11
11
  const contentType = operation.getContentType();
12
- const baseURL = options.client.importPath === "@kubb/plugin-client/client" ? options.baseURL : void 0;
12
+ const baseURL = options.baseURL;
13
13
  const path = new utils.URLPath(operation.path);
14
14
  const isFormData = contentType === "multipart/form-data";
15
15
  const headers = [
@@ -121,5 +121,5 @@ function Operations({ name, operations }) {
121
121
 
122
122
  exports.Client = Client;
123
123
  exports.Operations = Operations;
124
- //# sourceMappingURL=chunk-PO22ZUSH.cjs.map
125
- //# sourceMappingURL=chunk-PO22ZUSH.cjs.map
124
+ //# sourceMappingURL=chunk-XDWPA5EL.cjs.map
125
+ //# sourceMappingURL=chunk-XDWPA5EL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Client.tsx","../src/components/Operations.tsx"],"names":["URLPath","createFunctionParams","getPathParams","isOptional","jsx","File","jsxs","Function","getComments","Const"],"mappings":"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","file":"chunk-XDWPA5EL.cjs","sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, createFunctionParams } from '@kubb/react'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n options: PluginClient['resolvedOptions']\n typedSchemas: OperationSchemas\n operation: Operation\n}\n\nexport function Client({ name, options, typedSchemas, operation }: Props): KubbNode {\n const contentType = operation.getContentType()\n const baseURL = options.baseURL\n const path = new URLPath(operation.path)\n const isFormData = contentType === 'multipart/form-data'\n const headers = [\n contentType !== 'application/json' ? `'Content-Type': '${contentType}'` : undefined,\n typedSchemas.headerParams?.name ? '...headers' : undefined,\n ].filter(Boolean)\n\n const params = createFunctionParams({\n pathParams: {\n mode: options.pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typedSchemas.pathParams, { typed: true }),\n },\n data: typedSchemas.request?.name\n ? {\n type: typedSchemas.request?.name,\n optional: isOptional(typedSchemas.request?.schema),\n }\n : undefined,\n params: typedSchemas.queryParams?.name\n ? {\n type: typedSchemas.queryParams?.name,\n optional: isOptional(typedSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typedSchemas.headerParams?.name\n ? {\n type: typedSchemas.headerParams?.name,\n optional: isOptional(typedSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: 'Partial<Parameters<typeof client>[0]>',\n default: '{}',\n },\n })\n\n const clientParams = createFunctionParams({\n data: {\n mode: 'object',\n children: {\n method: {\n type: 'string',\n value: JSON.stringify(operation.method),\n },\n url: {\n type: 'string',\n value: path.template,\n },\n baseURL: baseURL\n ? {\n type: 'string',\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typedSchemas.queryParams?.name\n ? {\n type: 'any',\n }\n : undefined,\n data: typedSchemas.request?.name\n ? {\n type: 'any',\n value: isFormData ? 'formData' : undefined,\n }\n : undefined,\n headers: headers.length\n ? {\n type: 'any',\n value: headers.length ? `{ ${headers.join(', ')}, ...options.headers }` : undefined,\n }\n : undefined,\n options: {\n type: 'any',\n mode: 'inlineSpread',\n },\n },\n },\n })\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n async\n export\n returnType={\n options.dataReturnType === 'data' ? `ResponseConfig<${typedSchemas.response.name}>[\"data\"]` : `ResponseConfig<${typedSchemas.response.name}>`\n }\n params={params}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {formData || ''}\n <Function.Call\n name=\"res\"\n to={<Function name=\"client\" async generics={[typedSchemas.response.name, typedSchemas.request?.name].filter(Boolean)} params={clientParams} />}\n />\n <Function.Return>{options.dataReturnType === 'data' ? 'res.data' : 'res'}</Function.Return>\n </Function>\n </File.Source>\n )\n}\n","import { URLPath } from '@kubb/core/utils'\nimport { Const, File } from '@kubb/react'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\n\ntype OperationsProps = {\n name: string\n operations: Array<Operation>\n}\n\nexport function Operations({ name, operations }: OperationsProps) {\n const operationsObject: Record<string, { path: string; method: HttpMethod }> = {}\n\n operations.forEach((operation) => {\n operationsObject[operation.getOperationId()] = {\n path: new URLPath(operation.path).URL,\n method: operation.method,\n }\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export asConst>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n"]}
@@ -1,17 +1,16 @@
1
1
  'use strict';
2
2
 
3
- require('./chunk-AZDWYBLW.cjs');
4
- var chunkPO22ZUSH_cjs = require('./chunk-PO22ZUSH.cjs');
3
+ var chunkXDWPA5EL_cjs = require('./chunk-XDWPA5EL.cjs');
5
4
 
6
5
 
7
6
 
8
7
  Object.defineProperty(exports, "Client", {
9
8
  enumerable: true,
10
- get: function () { return chunkPO22ZUSH_cjs.Client; }
9
+ get: function () { return chunkXDWPA5EL_cjs.Client; }
11
10
  });
12
11
  Object.defineProperty(exports, "Operations", {
13
12
  enumerable: true,
14
- get: function () { return chunkPO22ZUSH_cjs.Operations; }
13
+ get: function () { return chunkXDWPA5EL_cjs.Operations; }
15
14
  });
16
15
  //# sourceMappingURL=components.cjs.map
17
16
  //# sourceMappingURL=components.cjs.map
@@ -1,6 +1,14 @@
1
- export { C as Client, a as Operations } from './types-DETYKDFZ.cjs';
1
+ export { C as Client } from './types-CzL-44IA.cjs';
2
+ import { Operation } from '@kubb/oas';
2
3
  import '@kubb/core';
3
4
  import '@kubb/fs/types';
4
- import '@kubb/oas';
5
5
  import '@kubb/plugin-oas';
6
6
  import '@kubb/react/types';
7
+
8
+ type OperationsProps = {
9
+ name: string;
10
+ operations: Array<Operation>;
11
+ };
12
+ declare function Operations({ name, operations }: OperationsProps): JSX.Element;
13
+
14
+ export { Operations };
@@ -1,6 +1,14 @@
1
- export { C as Client, a as Operations } from './types-DETYKDFZ.js';
1
+ export { C as Client } from './types-CzL-44IA.js';
2
+ import { Operation } from '@kubb/oas';
2
3
  import '@kubb/core';
3
4
  import '@kubb/fs/types';
4
- import '@kubb/oas';
5
5
  import '@kubb/plugin-oas';
6
6
  import '@kubb/react/types';
7
+
8
+ type OperationsProps = {
9
+ name: string;
10
+ operations: Array<Operation>;
11
+ };
12
+ declare function Operations({ name, operations }: OperationsProps): JSX.Element;
13
+
14
+ export { Operations };
@@ -1,4 +1,3 @@
1
- import './chunk-YJOVLRSC.js';
2
- export { Client, Operations } from './chunk-QBFKND4S.js';
1
+ export { Client, Operations } from './chunk-BAX6ZFGY.js';
3
2
  //# sourceMappingURL=components.js.map
4
3
  //# sourceMappingURL=components.js.map
@@ -1,13 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunk3NQF7BGA_cjs = require('./chunk-3NQF7BGA.cjs');
4
- require('./chunk-PO22ZUSH.cjs');
3
+ var chunkTNO4CNBR_cjs = require('./chunk-TNO4CNBR.cjs');
4
+ require('./chunk-XDWPA5EL.cjs');
5
5
 
6
6
 
7
7
 
8
- Object.defineProperty(exports, "axiosGenerator", {
8
+ Object.defineProperty(exports, "clientGenerator", {
9
9
  enumerable: true,
10
- get: function () { return chunk3NQF7BGA_cjs.axiosGenerator; }
10
+ get: function () { return chunkTNO4CNBR_cjs.clientGenerator; }
11
+ });
12
+ Object.defineProperty(exports, "operationsGenerator", {
13
+ enumerable: true,
14
+ get: function () { return chunkTNO4CNBR_cjs.operationsGenerator; }
11
15
  });
12
16
  //# sourceMappingURL=generators.cjs.map
13
17
  //# sourceMappingURL=generators.cjs.map
@@ -1,10 +1,12 @@
1
1
  import * as _kubb_plugin_oas from '@kubb/plugin-oas';
2
- import { P as PluginClient } from './types-DETYKDFZ.cjs';
2
+ import { P as PluginClient } from './types-CzL-44IA.cjs';
3
3
  import '@kubb/core';
4
4
  import '@kubb/fs/types';
5
5
  import '@kubb/oas';
6
6
  import '@kubb/react/types';
7
7
 
8
- declare const axiosGenerator: _kubb_plugin_oas.Generator<PluginClient>;
8
+ declare const clientGenerator: _kubb_plugin_oas.Generator<PluginClient>;
9
9
 
10
- export { axiosGenerator };
10
+ declare const operationsGenerator: _kubb_plugin_oas.Generator<PluginClient>;
11
+
12
+ export { clientGenerator, operationsGenerator };
@@ -1,10 +1,12 @@
1
1
  import * as _kubb_plugin_oas from '@kubb/plugin-oas';
2
- import { P as PluginClient } from './types-DETYKDFZ.js';
2
+ import { P as PluginClient } from './types-CzL-44IA.js';
3
3
  import '@kubb/core';
4
4
  import '@kubb/fs/types';
5
5
  import '@kubb/oas';
6
6
  import '@kubb/react/types';
7
7
 
8
- declare const axiosGenerator: _kubb_plugin_oas.Generator<PluginClient>;
8
+ declare const clientGenerator: _kubb_plugin_oas.Generator<PluginClient>;
9
9
 
10
- export { axiosGenerator };
10
+ declare const operationsGenerator: _kubb_plugin_oas.Generator<PluginClient>;
11
+
12
+ export { clientGenerator, operationsGenerator };
@@ -1,4 +1,4 @@
1
- export { axiosGenerator } from './chunk-QLVGX3VO.js';
2
- import './chunk-QBFKND4S.js';
1
+ export { clientGenerator, operationsGenerator } from './chunk-H2OOHGK2.js';
2
+ import './chunk-BAX6ZFGY.js';
3
3
  //# sourceMappingURL=generators.js.map
4
4
  //# sourceMappingURL=generators.js.map