@kubb/plugin-client 3.0.0-alpha.1 → 3.0.0-alpha.10

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 (50) hide show
  1. package/client.ts +1 -1
  2. package/dist/chunk-3NQF7BGA.cjs +61 -0
  3. package/dist/chunk-3NQF7BGA.cjs.map +1 -0
  4. package/dist/chunk-AZDWYBLW.cjs +1 -0
  5. package/dist/chunk-AZDWYBLW.cjs.map +1 -0
  6. package/dist/chunk-PO22ZUSH.cjs +128 -0
  7. package/dist/chunk-PO22ZUSH.cjs.map +1 -0
  8. package/dist/chunk-QBFKND4S.js +128 -0
  9. package/dist/chunk-QBFKND4S.js.map +1 -0
  10. package/dist/chunk-QLVGX3VO.js +61 -0
  11. package/dist/chunk-QLVGX3VO.js.map +1 -0
  12. package/dist/chunk-YJOVLRSC.js +1 -0
  13. package/dist/chunk-YJOVLRSC.js.map +1 -0
  14. package/dist/client.cjs.map +1 -1
  15. package/dist/client.d.cts +1 -1
  16. package/dist/client.d.ts +1 -1
  17. package/dist/client.js.map +1 -1
  18. package/dist/components.cjs +4 -3
  19. package/dist/components.cjs.map +1 -1
  20. package/dist/components.d.cts +3 -5
  21. package/dist/components.d.ts +3 -5
  22. package/dist/components.js +2 -1
  23. package/dist/generators.cjs +8 -0
  24. package/dist/generators.cjs.map +1 -0
  25. package/dist/generators.d.cts +10 -0
  26. package/dist/generators.d.ts +10 -0
  27. package/dist/generators.js +8 -0
  28. package/dist/generators.js.map +1 -0
  29. package/dist/index.cjs +27 -80
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.cts +3 -5
  32. package/dist/index.d.ts +3 -5
  33. package/dist/index.js +27 -80
  34. package/dist/index.js.map +1 -1
  35. package/dist/{types-xK4X9e5d.d.cts → types-DETYKDFZ.d.cts} +19 -108
  36. package/dist/{types-xK4X9e5d.d.ts → types-DETYKDFZ.d.ts} +19 -108
  37. package/package.json +21 -13
  38. package/src/components/Client.tsx +77 -198
  39. package/src/components/Operations.tsx +9 -75
  40. package/src/components/__snapshots__/Client/showPetById.ts +3 -6
  41. package/src/components/__snapshots__/Operations/showPetById.ts +5 -5
  42. package/src/generators/axiosGenerator.tsx +63 -0
  43. package/src/generators/index.ts +1 -0
  44. package/src/plugin.ts +21 -38
  45. package/src/types.ts +9 -3
  46. package/dist/chunk-W57BRY5O.js +0 -201
  47. package/dist/chunk-W57BRY5O.js.map +0 -1
  48. package/dist/chunk-W7F5CMU6.cjs +0 -201
  49. package/dist/chunk-W7F5CMU6.cjs.map +0 -1
  50. package/src/OperationGenerator.tsx +0 -65
@@ -0,0 +1,63 @@
1
+ import { createReactGenerator } from '@kubb/plugin-oas'
2
+ import { useOperationManager } from '@kubb/plugin-oas/hooks'
3
+ import { pluginTsName } from '@kubb/plugin-ts'
4
+ import { File, useApp } from '@kubb/react'
5
+ import { Client } from '../components/Client'
6
+ import { Operations } from '../components/Operations'
7
+ import type { PluginClient } from '../types'
8
+
9
+ export const axiosGenerator = createReactGenerator<PluginClient>({
10
+ name: 'plugin-client',
11
+ Operations({ options, operations }) {
12
+ const { pluginManager } = useApp<PluginClient>()
13
+
14
+ if (!options.templates.operations) {
15
+ return null
16
+ }
17
+
18
+ const Template = options.templates.operations || Operations
19
+ const name = 'operations'
20
+ const file = pluginManager.getFile({ name, extName: '.ts', pluginKey: ['plugin-client'] })
21
+
22
+ return (
23
+ <File baseName={file.baseName} path={file.path} meta={file.meta}>
24
+ <Template name={name} operations={operations} />
25
+ </File>
26
+ )
27
+ },
28
+ Operation({ options, operation }) {
29
+ const { getSchemas, getName, getFile } = useOperationManager()
30
+
31
+ const name = getName(operation, { type: 'function' })
32
+ const typedSchemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })
33
+ const file = getFile(operation)
34
+ const fileType = getFile(operation, { pluginKey: [pluginTsName] })
35
+
36
+ if (!options.templates.client) {
37
+ return null
38
+ }
39
+
40
+ const Template = options.templates.client || Client
41
+
42
+ return (
43
+ <File baseName={file.baseName} path={file.path} meta={file.meta}>
44
+ <File.Import name={'client'} path={options.client.importPath} />
45
+ <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />
46
+ <File.Import
47
+ extName={options.extName}
48
+ name={[
49
+ typedSchemas.request?.name,
50
+ typedSchemas.response.name,
51
+ typedSchemas.pathParams?.name,
52
+ typedSchemas.queryParams?.name,
53
+ typedSchemas.headerParams?.name,
54
+ ].filter(Boolean)}
55
+ root={file.path}
56
+ path={fileType.path}
57
+ isTypeOnly
58
+ />
59
+ <Template name={name} options={options} typedSchemas={typedSchemas} operation={operation} />
60
+ </File>
61
+ )
62
+ },
63
+ })
@@ -0,0 +1 @@
1
+ export { axiosGenerator } from './axiosGenerator.tsx'
package/src/plugin.ts CHANGED
@@ -3,14 +3,13 @@ import path from 'node:path'
3
3
  import { FileManager, PluginManager, createPlugin } from '@kubb/core'
4
4
  import { camelCase } from '@kubb/core/transformers'
5
5
  import { renderTemplate } from '@kubb/core/utils'
6
- import { pluginOasName } from '@kubb/plugin-oas'
7
- import { getGroupedByTagFiles } from '@kubb/plugin-oas/utils'
6
+ import { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'
8
7
 
9
- import { OperationGenerator } from './OperationGenerator.tsx'
10
8
  import { Client, Operations } from './components/index.ts'
11
9
 
12
10
  import type { Plugin } from '@kubb/core'
13
11
  import type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'
12
+ import { axiosGenerator } from './generators/axiosGenerator.tsx'
14
13
  import type { PluginClient } from './types.ts'
15
14
 
16
15
  export const pluginClientName = 'plugin-client' satisfies PluginClient['name']
@@ -32,17 +31,22 @@ export const pluginClient = createPlugin<PluginClient>((options) => {
32
31
 
33
32
  return {
34
33
  name: pluginClientName,
34
+ output: {
35
+ exportType: 'barrelNamed',
36
+ ...output,
37
+ },
35
38
  options: {
36
39
  extName: output.extName,
37
40
  dataReturnType,
38
41
  client: {
39
42
  importPath: '@kubb/plugin-client/client',
43
+ methods: ['get', 'post', 'delete', 'put'],
40
44
  ...options.client,
41
45
  },
42
46
  pathParamsType,
43
47
  templates: {
44
- operations: Operations.templates,
45
- client: Client.templates,
48
+ operations: Operations,
49
+ client: Client,
46
50
  ...templates,
47
51
  },
48
52
  baseURL: undefined,
@@ -77,20 +81,13 @@ export const pluginClient = createPlugin<PluginClient>((options) => {
77
81
 
78
82
  return resolvedName
79
83
  },
80
- async writeFile(path, source) {
81
- if (!source) {
82
- return
83
- }
84
-
85
- return this.fileManager.write(path, source, { sanity: false })
86
- },
87
84
  async buildStart() {
88
85
  const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])
89
86
 
90
- const oas = await swaggerPlugin.api.getOas()
87
+ const oas = await swaggerPlugin.context.getOas()
91
88
  const root = path.resolve(this.config.root, this.config.output.path)
92
89
  const mode = FileManager.getMode(path.resolve(root, output.path))
93
- const baseURL = await swaggerPlugin.api.getBaseURL()
90
+ const baseURL = await swaggerPlugin.context.getBaseURL()
94
91
 
95
92
  const operationGenerator = new OperationGenerator(
96
93
  {
@@ -101,7 +98,7 @@ export const pluginClient = createPlugin<PluginClient>((options) => {
101
98
  oas,
102
99
  pluginManager: this.pluginManager,
103
100
  plugin: this.plugin,
104
- contentType: swaggerPlugin.api.contentType,
101
+ contentType: swaggerPlugin.context.contentType,
105
102
  exclude,
106
103
  include,
107
104
  override,
@@ -109,37 +106,23 @@ export const pluginClient = createPlugin<PluginClient>((options) => {
109
106
  },
110
107
  )
111
108
 
112
- const files = await operationGenerator.build()
109
+ const files = await operationGenerator.build(axiosGenerator)
113
110
 
114
111
  await this.addFile(...files)
115
- },
116
- async buildEnd() {
117
- if (this.config.output.write === false) {
118
- return
119
- }
120
-
121
- const root = path.resolve(this.config.root, this.config.output.path)
122
112
 
123
- if (group?.type === 'tag') {
124
- const rootFiles = await getGroupedByTagFiles({
125
- logger: this.logger,
126
- files: this.fileManager.files,
127
- plugin: this.plugin,
128
- template,
129
- exportAs: group.exportAs || '{{tag}}Service',
113
+ if (this.config.output.exportType) {
114
+ const barrelFiles = await this.fileManager.getBarrelFiles({
130
115
  root,
131
116
  output,
117
+ files: this.fileManager.files,
118
+ meta: {
119
+ pluginKey: this.plugin.key,
120
+ },
121
+ logger: this.logger,
132
122
  })
133
123
 
134
- await this.addFile(...rootFiles)
124
+ await this.addFile(...barrelFiles)
135
125
  }
136
-
137
- await this.fileManager.addIndexes({
138
- root,
139
- output,
140
- meta: { pluginKey: this.plugin.key },
141
- logger: this.logger,
142
- })
143
126
  },
144
127
  }
145
128
  })
package/src/types.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import type { Plugin, PluginFactoryOptions, ResolveNameParams } from '@kubb/core'
2
2
  import type * as KubbFile from '@kubb/fs/types'
3
3
 
4
+ import type { HttpMethod } from '@kubb/oas'
4
5
  import type { Exclude, Include, Override, ResolvePathOptions } from '@kubb/plugin-oas'
5
6
  import type { Client, Operations } from './components/index.ts'
6
7
 
7
8
  type Templates = {
8
- operations?: typeof Operations.templates | false
9
- client?: typeof Client.templates | false
9
+ operations?: typeof Operations | false
10
+ client?: typeof Client | false
10
11
  }
11
12
 
12
13
  export type Options = {
@@ -26,7 +27,7 @@ export type Options = {
26
27
  extName?: KubbFile.Extname
27
28
  /**
28
29
  * Define what needs to exported, here you can also disable the export of barrel files
29
- * @default `'barrel'`
30
+ * @default `'barrelNamed'`
30
31
  */
31
32
  exportType?: 'barrel' | 'barrelNamed' | false
32
33
  }
@@ -73,6 +74,11 @@ export type Options = {
73
74
  * @default '@kubb/plugin-client/client'
74
75
  */
75
76
  importPath?: string
77
+ /**
78
+ * Define which HttpMethods can be used for queries
79
+ * @default ['get', 'post', 'put', 'delete']
80
+ */
81
+ methods?: Array<HttpMethod>
76
82
  }
77
83
  /**
78
84
  * ReturnType that needs to be used when calling client().
@@ -1,201 +0,0 @@
1
- // src/components/Client.tsx
2
- import { URLPath } from "@kubb/core/utils";
3
- import { Parser, File, Function, useApp } from "@kubb/react";
4
- import { pluginTsName } from "@kubb/plugin-ts";
5
- import { useOperation, useOperationManager } from "@kubb/plugin-oas/hooks";
6
- import { getComments, getPathParams } from "@kubb/plugin-oas/utils";
7
- import { isOptional } from "@kubb/oas";
8
- import { jsx, jsxs } from "@kubb/react/jsx-runtime";
9
- function Template({ name, generics, returnType, params, JSDoc, client }) {
10
- const isFormData = client.contentType === "multipart/form-data";
11
- const headers = [
12
- client.contentType !== "application/json" ? `'Content-Type': '${client.contentType}'` : void 0,
13
- client.withHeaders ? "...headers" : void 0
14
- ].filter(Boolean).join(", ");
15
- const clientParams = {
16
- data: {
17
- mode: "object",
18
- children: {
19
- method: {
20
- type: "string",
21
- value: JSON.stringify(client.method)
22
- },
23
- url: {
24
- type: "string",
25
- value: client.path.template
26
- },
27
- baseURL: client.baseURL ? {
28
- type: "string",
29
- value: JSON.stringify(client.baseURL)
30
- } : void 0,
31
- params: client.withQueryParams ? {
32
- type: "any"
33
- } : void 0,
34
- data: client.withData ? {
35
- type: "any",
36
- value: isFormData ? "formData" : void 0
37
- } : void 0,
38
- headers: headers.length ? {
39
- type: "any",
40
- value: headers.length ? `{ ${headers}, ...options.headers }` : void 0
41
- } : void 0,
42
- options: {
43
- type: "any",
44
- mode: "inlineSpread"
45
- }
46
- }
47
- }
48
- };
49
- const formData = isFormData ? `
50
- const formData = new FormData()
51
- if(data) {
52
- Object.keys(data).forEach((key) => {
53
- const value = data[key];
54
- if (typeof key === "string" && (typeof value === "string" || value instanceof Blob)) {
55
- formData.append(key, value);
56
- }
57
- })
58
- }
59
- ` : void 0;
60
- return /* @__PURE__ */ jsxs(Function, { name, async: true, export: true, generics, returnType, params, JSDoc, children: [
61
- formData || "",
62
- /* @__PURE__ */ jsx(Function.Call, { name: "res", to: /* @__PURE__ */ jsx(Function, { name: "client", async: true, generics: client.generics, params: clientParams }) }),
63
- /* @__PURE__ */ jsx(Function.Return, { children: client.dataReturnType === "data" ? "res.data" : "res" })
64
- ] });
65
- }
66
- function RootTemplate({ children }) {
67
- const {
68
- plugin: {
69
- options: {
70
- client: { importPath },
71
- extName
72
- }
73
- }
74
- } = useApp();
75
- const { getSchemas, getFile } = useOperationManager();
76
- const operation = useOperation();
77
- const file = getFile(operation);
78
- const fileType = getFile(operation, { pluginKey: [pluginTsName] });
79
- const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: "type" });
80
- return /* @__PURE__ */ jsx(Parser, { language: "typescript", children: /* @__PURE__ */ jsxs(File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
81
- /* @__PURE__ */ jsx(File.Import, { name: "client", path: importPath }),
82
- /* @__PURE__ */ jsx(File.Import, { name: ["ResponseConfig"], path: importPath, isTypeOnly: true }),
83
- /* @__PURE__ */ jsx(
84
- File.Import,
85
- {
86
- extName,
87
- name: [schemas.request?.name, schemas.response.name, schemas.pathParams?.name, schemas.queryParams?.name, schemas.headerParams?.name].filter(Boolean),
88
- root: file.path,
89
- path: fileType.path,
90
- isTypeOnly: true
91
- }
92
- ),
93
- /* @__PURE__ */ jsx(File.Source, { children })
94
- ] }) });
95
- }
96
- var defaultTemplates = { default: Template, root: RootTemplate };
97
- function Client({ baseURL, Template: Template3 = defaultTemplates.default }) {
98
- const {
99
- plugin: {
100
- options: { client, dataReturnType, pathParamsType }
101
- }
102
- } = useApp();
103
- const { getSchemas, getName } = useOperationManager();
104
- const operation = useOperation();
105
- const contentType = operation.getContentType();
106
- const name = getName(operation, { type: "function" });
107
- const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: "type" });
108
- return /* @__PURE__ */ jsx(
109
- Template3,
110
- {
111
- name,
112
- params: {
113
- pathParams: {
114
- mode: pathParamsType === "object" ? "object" : "inlineSpread",
115
- children: getPathParams(schemas.pathParams, { typed: true })
116
- },
117
- data: schemas.request?.name ? {
118
- type: schemas.request?.name,
119
- optional: isOptional(schemas.request?.schema)
120
- } : void 0,
121
- params: schemas.queryParams?.name ? {
122
- type: schemas.queryParams?.name,
123
- optional: isOptional(schemas.queryParams?.schema)
124
- } : void 0,
125
- headers: schemas.headerParams?.name ? {
126
- type: schemas.headerParams?.name,
127
- optional: isOptional(schemas.headerParams?.schema)
128
- } : void 0,
129
- options: {
130
- type: "Partial<Parameters<typeof client>[0]>",
131
- default: "{}"
132
- }
133
- },
134
- returnType: dataReturnType === "data" ? `ResponseConfig<${schemas.response.name}>["data"]` : `ResponseConfig<${schemas.response.name}>`,
135
- JSDoc: {
136
- comments: getComments(operation)
137
- },
138
- client: {
139
- // only set baseURL from serverIndex(swagger) when no custom client(default) is used
140
- baseURL: client.importPath === "@kubb/plugin-client/client" ? baseURL : void 0,
141
- generics: [schemas.response.name, schemas.request?.name].filter(Boolean),
142
- dataReturnType,
143
- withQueryParams: !!schemas.queryParams?.name,
144
- withData: !!schemas.request?.name,
145
- withHeaders: !!schemas.headerParams?.name,
146
- method: operation.method,
147
- path: new URLPath(operation.path),
148
- contentType
149
- }
150
- }
151
- );
152
- }
153
- Client.File = function({ baseURL, ...props }) {
154
- const templates = { ...defaultTemplates, ...props.templates };
155
- const Template3 = templates.default;
156
- const RootTemplate3 = templates.root;
157
- return /* @__PURE__ */ jsx(RootTemplate3, { children: /* @__PURE__ */ jsx(Client, { baseURL, Template: Template3 }) });
158
- };
159
- Client.templates = defaultTemplates;
160
-
161
- // src/components/Operations.tsx
162
- import { URLPath as URLPath2 } from "@kubb/core/utils";
163
- import { useOperations } from "@kubb/plugin-oas/hooks";
164
- import { Const, File as File2, Parser as Parser2, useApp as useApp2 } from "@kubb/react";
165
- import { jsx as jsx2 } from "@kubb/react/jsx-runtime";
166
- function Template2({ name, operations }) {
167
- const operationsObject = {};
168
- operations.forEach((operation) => {
169
- operationsObject[operation.getOperationId()] = {
170
- path: new URLPath2(operation.path).URL,
171
- method: operation.method
172
- };
173
- });
174
- return /* @__PURE__ */ jsx2(Const, { name, export: true, asConst: true, children: JSON.stringify(operationsObject, void 0, 2) });
175
- }
176
- function RootTemplate2({ children }) {
177
- const {
178
- pluginManager,
179
- plugin: { key: pluginKey }
180
- } = useApp2();
181
- const file = pluginManager.getFile({ name: "operations", extName: ".ts", pluginKey });
182
- return /* @__PURE__ */ jsx2(Parser2, { language: "typescript", children: /* @__PURE__ */ jsx2(File2, { baseName: file.baseName, path: file.path, meta: file.meta, exportable: false, children: /* @__PURE__ */ jsx2(File2.Source, { children }) }) });
183
- }
184
- var defaultTemplates2 = { default: Template2, root: RootTemplate2 };
185
- function Operations({ baseURL, Template: Template3 = defaultTemplates2.default }) {
186
- const operations = useOperations();
187
- return /* @__PURE__ */ jsx2(Template3, { baseURL, name: "operations", operations });
188
- }
189
- Operations.File = function({ baseURL, ...props }) {
190
- const templates = { ...defaultTemplates2, ...props.templates };
191
- const Template3 = templates.default;
192
- const RootTemplate3 = templates.root;
193
- return /* @__PURE__ */ jsx2(RootTemplate3, { children: /* @__PURE__ */ jsx2(Operations, { baseURL, Template: Template3 }) });
194
- };
195
- Operations.templates = defaultTemplates2;
196
-
197
- export {
198
- Client,
199
- Operations
200
- };
201
- //# sourceMappingURL=chunk-W57BRY5O.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Client.tsx","../src/components/Operations.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { Parser, File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\n\nimport { isOptional } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { KubbNode, Params } from '@kubb/react'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: Params\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n client: {\n baseURL: string | undefined\n generics: string | string[]\n method: HttpMethod\n path: URLPath\n dataReturnType: PluginClient['options']['dataReturnType']\n withQueryParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n}\n\nfunction Template({ name, generics, returnType, params, JSDoc, client }: TemplateProps): KubbNode {\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n const clientParams: Params = {\n data: {\n mode: 'object',\n children: {\n method: {\n type: 'string',\n value: JSON.stringify(client.method),\n },\n url: {\n type: 'string',\n value: client.path.template,\n },\n baseURL: client.baseURL\n ? {\n type: 'string',\n value: JSON.stringify(client.baseURL),\n }\n : undefined,\n params: client.withQueryParams\n ? {\n type: 'any',\n }\n : undefined,\n data: client.withData\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}, ...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 <Function name={name} async export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {formData || ''}\n <Function.Call name=\"res\" to={<Function name=\"client\" async generics={client.generics} params={clientParams} />} />\n <Function.Return>{client.dataReturnType === 'data' ? 'res.data' : 'res'}</Function.Return>\n </Function>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n plugin: {\n options: {\n client: { importPath },\n extName,\n },\n },\n } = useApp<PluginClient>()\n\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n return (\n <Parser language=\"typescript\">\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n extName={extName}\n name={[schemas.request?.name, schemas.response.name, schemas.pathParams?.name, schemas.queryParams?.name, schemas.headerParams?.name].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n <File.Source>{children}</File.Source>\n </File>\n </Parser>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype ClientProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Client({ baseURL, Template = defaultTemplates.default }: ClientProps): KubbNode {\n const {\n plugin: {\n options: { client, dataReturnType, pathParamsType },\n },\n } = useApp<PluginClient>()\n\n const { getSchemas, getName } = useOperationManager()\n const operation = useOperation()\n\n const contentType = operation.getContentType()\n const name = getName(operation, { type: 'function' })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n return (\n <Template\n name={name}\n params={{\n pathParams: {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(schemas.pathParams, { typed: true }),\n },\n data: schemas.request?.name\n ? {\n type: schemas.request?.name,\n optional: isOptional(schemas.request?.schema),\n }\n : undefined,\n params: schemas.queryParams?.name\n ? {\n type: schemas.queryParams?.name,\n optional: isOptional(schemas.queryParams?.schema),\n }\n : undefined,\n headers: schemas.headerParams?.name\n ? {\n type: schemas.headerParams?.name,\n optional: isOptional(schemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: 'Partial<Parameters<typeof client>[0]>',\n default: '{}',\n },\n }}\n returnType={dataReturnType === 'data' ? `ResponseConfig<${schemas.response.name}>[\"data\"]` : `ResponseConfig<${schemas.response.name}>`}\n JSDoc={{\n comments: getComments(operation),\n }}\n client={{\n // only set baseURL from serverIndex(swagger) when no custom client(default) is used\n baseURL: client.importPath === '@kubb/plugin-client/client' ? baseURL : undefined,\n generics: [schemas.response.name, schemas.request?.name].filter(Boolean),\n dataReturnType,\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withHeaders: !!schemas.headerParams?.name,\n method: operation.method,\n path: new URLPath(operation.path),\n contentType,\n }}\n />\n )\n}\n\ntype FileProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nClient.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Client baseURL={baseURL} Template={Template} />\n </RootTemplate>\n )\n}\n\nClient.templates = defaultTemplates\n","import { URLPath } from '@kubb/core/utils'\nimport { useOperations } from '@kubb/plugin-oas/hooks'\nimport { Const, File, Parser, useApp } from '@kubb/react'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n operations: Operation[]\n baseURL: string | undefined\n}\n\nfunction Template({ name, operations }: TemplateProps): KubbNode {\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 return (\n <Const name={name} export asConst>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n pluginManager,\n plugin: { key: pluginKey },\n } = useApp<PluginClient>()\n const file = pluginManager.getFile({ name: 'operations', extName: '.ts', pluginKey })\n\n return (\n <Parser language=\"typescript\">\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta} exportable={false}>\n <File.Source>{children}</File.Source>\n </File>\n </Parser>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype Props = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Operations({ baseURL, Template = defaultTemplates.default }: Props): KubbNode {\n const operations = useOperations()\n\n return <Template baseURL={baseURL} name=\"operations\" operations={operations} />\n}\n\ntype FileProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nOperations.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Operations baseURL={baseURL} Template={Template} />\n </RootTemplate>\n )\n}\n\nOperations.templates = defaultTemplates\n"],"mappings":"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","names":["Template","RootTemplate","URLPath","File","Parser","useApp","jsx","Template","RootTemplate","defaultTemplates"]}
@@ -1,201 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/components/Client.tsx
2
- var _utils = require('@kubb/core/utils');
3
- var _react = require('@kubb/react');
4
- var _plugints = require('@kubb/plugin-ts');
5
- var _hooks = require('@kubb/plugin-oas/hooks');
6
- var _utils3 = require('@kubb/plugin-oas/utils');
7
- var _oas = require('@kubb/oas');
8
- var _jsxruntime = require('@kubb/react/jsx-runtime');
9
- function Template({ name, generics, returnType, params, JSDoc, client }) {
10
- const isFormData = client.contentType === "multipart/form-data";
11
- const headers = [
12
- client.contentType !== "application/json" ? `'Content-Type': '${client.contentType}'` : void 0,
13
- client.withHeaders ? "...headers" : void 0
14
- ].filter(Boolean).join(", ");
15
- const clientParams = {
16
- data: {
17
- mode: "object",
18
- children: {
19
- method: {
20
- type: "string",
21
- value: JSON.stringify(client.method)
22
- },
23
- url: {
24
- type: "string",
25
- value: client.path.template
26
- },
27
- baseURL: client.baseURL ? {
28
- type: "string",
29
- value: JSON.stringify(client.baseURL)
30
- } : void 0,
31
- params: client.withQueryParams ? {
32
- type: "any"
33
- } : void 0,
34
- data: client.withData ? {
35
- type: "any",
36
- value: isFormData ? "formData" : void 0
37
- } : void 0,
38
- headers: headers.length ? {
39
- type: "any",
40
- value: headers.length ? `{ ${headers}, ...options.headers }` : void 0
41
- } : void 0,
42
- options: {
43
- type: "any",
44
- mode: "inlineSpread"
45
- }
46
- }
47
- }
48
- };
49
- const formData = isFormData ? `
50
- const formData = new FormData()
51
- if(data) {
52
- Object.keys(data).forEach((key) => {
53
- const value = data[key];
54
- if (typeof key === "string" && (typeof value === "string" || value instanceof Blob)) {
55
- formData.append(key, value);
56
- }
57
- })
58
- }
59
- ` : void 0;
60
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Function, { name, async: true, export: true, generics, returnType, params, JSDoc, children: [
61
- formData || "",
62
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Function.Call, { name: "res", to: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Function, { name: "client", async: true, generics: client.generics, params: clientParams }) }),
63
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Function.Return, { children: client.dataReturnType === "data" ? "res.data" : "res" })
64
- ] });
65
- }
66
- function RootTemplate({ children }) {
67
- const {
68
- plugin: {
69
- options: {
70
- client: { importPath },
71
- extName
72
- }
73
- }
74
- } = _react.useApp.call(void 0, );
75
- const { getSchemas, getFile } = _hooks.useOperationManager.call(void 0, );
76
- const operation = _hooks.useOperation.call(void 0, );
77
- const file = getFile(operation);
78
- const fileType = getFile(operation, { pluginKey: [_plugints.pluginTsName] });
79
- const schemas = getSchemas(operation, { pluginKey: [_plugints.pluginTsName], type: "type" });
80
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Parser, { language: "typescript", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
81
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.File.Import, { name: "client", path: importPath }),
82
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.File.Import, { name: ["ResponseConfig"], path: importPath, isTypeOnly: true }),
83
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
84
- _react.File.Import,
85
- {
86
- extName,
87
- name: [_optionalChain([schemas, 'access', _ => _.request, 'optionalAccess', _2 => _2.name]), schemas.response.name, _optionalChain([schemas, 'access', _3 => _3.pathParams, 'optionalAccess', _4 => _4.name]), _optionalChain([schemas, 'access', _5 => _5.queryParams, 'optionalAccess', _6 => _6.name]), _optionalChain([schemas, 'access', _7 => _7.headerParams, 'optionalAccess', _8 => _8.name])].filter(Boolean),
88
- root: file.path,
89
- path: fileType.path,
90
- isTypeOnly: true
91
- }
92
- ),
93
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.File.Source, { children })
94
- ] }) });
95
- }
96
- var defaultTemplates = { default: Template, root: RootTemplate };
97
- function Client({ baseURL, Template: Template3 = defaultTemplates.default }) {
98
- const {
99
- plugin: {
100
- options: { client, dataReturnType, pathParamsType }
101
- }
102
- } = _react.useApp.call(void 0, );
103
- const { getSchemas, getName } = _hooks.useOperationManager.call(void 0, );
104
- const operation = _hooks.useOperation.call(void 0, );
105
- const contentType = operation.getContentType();
106
- const name = getName(operation, { type: "function" });
107
- const schemas = getSchemas(operation, { pluginKey: [_plugints.pluginTsName], type: "type" });
108
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
109
- Template3,
110
- {
111
- name,
112
- params: {
113
- pathParams: {
114
- mode: pathParamsType === "object" ? "object" : "inlineSpread",
115
- children: _utils3.getPathParams.call(void 0, schemas.pathParams, { typed: true })
116
- },
117
- data: _optionalChain([schemas, 'access', _9 => _9.request, 'optionalAccess', _10 => _10.name]) ? {
118
- type: _optionalChain([schemas, 'access', _11 => _11.request, 'optionalAccess', _12 => _12.name]),
119
- optional: _oas.isOptional.call(void 0, _optionalChain([schemas, 'access', _13 => _13.request, 'optionalAccess', _14 => _14.schema]))
120
- } : void 0,
121
- params: _optionalChain([schemas, 'access', _15 => _15.queryParams, 'optionalAccess', _16 => _16.name]) ? {
122
- type: _optionalChain([schemas, 'access', _17 => _17.queryParams, 'optionalAccess', _18 => _18.name]),
123
- optional: _oas.isOptional.call(void 0, _optionalChain([schemas, 'access', _19 => _19.queryParams, 'optionalAccess', _20 => _20.schema]))
124
- } : void 0,
125
- headers: _optionalChain([schemas, 'access', _21 => _21.headerParams, 'optionalAccess', _22 => _22.name]) ? {
126
- type: _optionalChain([schemas, 'access', _23 => _23.headerParams, 'optionalAccess', _24 => _24.name]),
127
- optional: _oas.isOptional.call(void 0, _optionalChain([schemas, 'access', _25 => _25.headerParams, 'optionalAccess', _26 => _26.schema]))
128
- } : void 0,
129
- options: {
130
- type: "Partial<Parameters<typeof client>[0]>",
131
- default: "{}"
132
- }
133
- },
134
- returnType: dataReturnType === "data" ? `ResponseConfig<${schemas.response.name}>["data"]` : `ResponseConfig<${schemas.response.name}>`,
135
- JSDoc: {
136
- comments: _utils3.getComments.call(void 0, operation)
137
- },
138
- client: {
139
- // only set baseURL from serverIndex(swagger) when no custom client(default) is used
140
- baseURL: client.importPath === "@kubb/plugin-client/client" ? baseURL : void 0,
141
- generics: [schemas.response.name, _optionalChain([schemas, 'access', _27 => _27.request, 'optionalAccess', _28 => _28.name])].filter(Boolean),
142
- dataReturnType,
143
- withQueryParams: !!_optionalChain([schemas, 'access', _29 => _29.queryParams, 'optionalAccess', _30 => _30.name]),
144
- withData: !!_optionalChain([schemas, 'access', _31 => _31.request, 'optionalAccess', _32 => _32.name]),
145
- withHeaders: !!_optionalChain([schemas, 'access', _33 => _33.headerParams, 'optionalAccess', _34 => _34.name]),
146
- method: operation.method,
147
- path: new (0, _utils.URLPath)(operation.path),
148
- contentType
149
- }
150
- }
151
- );
152
- }
153
- Client.File = function({ baseURL, ...props }) {
154
- const templates = { ...defaultTemplates, ...props.templates };
155
- const Template3 = templates.default;
156
- const RootTemplate3 = templates.root;
157
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RootTemplate3, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Client, { baseURL, Template: Template3 }) });
158
- };
159
- Client.templates = defaultTemplates;
160
-
161
- // src/components/Operations.tsx
162
-
163
-
164
-
165
-
166
- function Template2({ name, operations }) {
167
- const operationsObject = {};
168
- operations.forEach((operation) => {
169
- operationsObject[operation.getOperationId()] = {
170
- path: new (0, _utils.URLPath)(operation.path).URL,
171
- method: operation.method
172
- };
173
- });
174
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Const, { name, export: true, asConst: true, children: JSON.stringify(operationsObject, void 0, 2) });
175
- }
176
- function RootTemplate2({ children }) {
177
- const {
178
- pluginManager,
179
- plugin: { key: pluginKey }
180
- } = _react.useApp.call(void 0, );
181
- const file = pluginManager.getFile({ name: "operations", extName: ".ts", pluginKey });
182
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Parser, { language: "typescript", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.File, { baseName: file.baseName, path: file.path, meta: file.meta, exportable: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.File.Source, { children }) }) });
183
- }
184
- var defaultTemplates2 = { default: Template2, root: RootTemplate2 };
185
- function Operations({ baseURL, Template: Template3 = defaultTemplates2.default }) {
186
- const operations = _hooks.useOperations.call(void 0, );
187
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Template3, { baseURL, name: "operations", operations });
188
- }
189
- Operations.File = function({ baseURL, ...props }) {
190
- const templates = { ...defaultTemplates2, ...props.templates };
191
- const Template3 = templates.default;
192
- const RootTemplate3 = templates.root;
193
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RootTemplate3, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Operations, { baseURL, Template: Template3 }) });
194
- };
195
- Operations.templates = defaultTemplates2;
196
-
197
-
198
-
199
-
200
- exports.Client = Client; exports.Operations = Operations;
201
- //# sourceMappingURL=chunk-W7F5CMU6.cjs.map