@kubb/plugin-client 3.16.2 → 3.16.4

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 (52) hide show
  1. package/dist/Operations-Cxn7C-GC.cjs +228 -0
  2. package/dist/Operations-Cxn7C-GC.cjs.map +1 -0
  3. package/dist/Operations-tGJwS9Oj.js +210 -0
  4. package/dist/Operations-tGJwS9Oj.js.map +1 -0
  5. package/dist/chunk-CUT6urMc.cjs +30 -0
  6. package/dist/clients/axios.cjs +24 -30
  7. package/dist/clients/axios.cjs.map +1 -1
  8. package/dist/clients/axios.d.cts +23 -21
  9. package/dist/clients/axios.d.ts +23 -21
  10. package/dist/clients/axios.js +23 -23
  11. package/dist/clients/axios.js.map +1 -1
  12. package/dist/clients/fetch.cjs +37 -36
  13. package/dist/clients/fetch.cjs.map +1 -1
  14. package/dist/clients/fetch.d.cts +20 -18
  15. package/dist/clients/fetch.d.ts +20 -18
  16. package/dist/clients/fetch.js +37 -34
  17. package/dist/clients/fetch.js.map +1 -1
  18. package/dist/components.cjs +4 -19
  19. package/dist/components.d.cts +97 -56
  20. package/dist/components.d.ts +97 -56
  21. package/dist/components.js +3 -3
  22. package/dist/generators-BQnLTqYl.js +216 -0
  23. package/dist/generators-BQnLTqYl.js.map +1 -0
  24. package/dist/generators-XXsaqEtA.cjs +234 -0
  25. package/dist/generators-XXsaqEtA.cjs.map +1 -0
  26. package/dist/generators.cjs +5 -20
  27. package/dist/generators.d.cts +12 -11
  28. package/dist/generators.d.ts +12 -11
  29. package/dist/generators.js +4 -4
  30. package/dist/index.cjs +89 -118
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.cts +6 -7
  33. package/dist/index.d.ts +6 -7
  34. package/dist/index.js +88 -112
  35. package/dist/index.js.map +1 -1
  36. package/dist/types-CdM4kNiz.d.ts +1274 -0
  37. package/dist/types-Cpfa5PKO.d.cts +1274 -0
  38. package/package.json +27 -34
  39. package/dist/chunk-H5KNP3DD.cjs +0 -205
  40. package/dist/chunk-H5KNP3DD.cjs.map +0 -1
  41. package/dist/chunk-LNJCFB5O.js +0 -201
  42. package/dist/chunk-LNJCFB5O.js.map +0 -1
  43. package/dist/chunk-QNFXNUH5.js +0 -187
  44. package/dist/chunk-QNFXNUH5.js.map +0 -1
  45. package/dist/chunk-SDEXSATF.cjs +0 -191
  46. package/dist/chunk-SDEXSATF.cjs.map +0 -1
  47. package/dist/components.cjs.map +0 -1
  48. package/dist/components.js.map +0 -1
  49. package/dist/generators.cjs.map +0 -1
  50. package/dist/generators.js.map +0 -1
  51. package/dist/types-DFo3xInC.d.cts +0 -119
  52. package/dist/types-DFo3xInC.d.ts +0 -119
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/plugin-client",
3
- "version": "3.16.2",
3
+ "version": "3.16.4",
4
4
  "description": "API client generator plugin for Kubb, creating type-safe HTTP clients (Axios, Fetch) from OpenAPI specifications for making API requests.",
5
5
  "keywords": [
6
6
  "api-client",
@@ -29,35 +29,29 @@
29
29
  "exports": {
30
30
  ".": {
31
31
  "import": "./dist/index.js",
32
- "require": "./dist/index.cjs",
33
- "default": "./dist/index.cjs"
34
- },
35
- "./generators": {
36
- "import": "./dist/generators.js",
37
- "require": "./dist/generators.cjs",
38
- "default": "./dist/generators.cjs"
39
- },
40
- "./components": {
41
- "import": "./dist/components.js",
42
- "require": "./dist/components.cjs",
43
- "default": "./dist/components.cjs"
32
+ "require": "./dist/index.cjs"
44
33
  },
45
34
  "./clients/axios": {
46
35
  "import": "./dist/clients/axios.js",
47
- "require": "./dist/clients/axios.cjs",
48
- "default": "./dist/clients/axios.cjs"
36
+ "require": "./dist/clients/axios.cjs"
49
37
  },
50
38
  "./clients/fetch": {
51
39
  "import": "./dist/clients/fetch.js",
52
- "require": "./dist/clients/fetch.cjs",
53
- "default": "./dist/clients/fetch.cjs"
40
+ "require": "./dist/clients/fetch.cjs"
41
+ },
42
+ "./components": {
43
+ "import": "./dist/components.js",
44
+ "require": "./dist/components.cjs"
45
+ },
46
+ "./generators": {
47
+ "import": "./dist/generators.js",
48
+ "require": "./dist/generators.cjs"
54
49
  },
55
- "./package.json": "./package.json",
56
- "./*": "./*"
50
+ "./package.json": "./package.json"
57
51
  },
58
- "main": "dist/index.cjs",
59
- "module": "dist/index.js",
60
- "types": "./dist/index.d.ts",
52
+ "main": "./dist/index.cjs",
53
+ "module": "./dist/index.js",
54
+ "types": "./dist/index.d.cts",
61
55
  "typesVersions": {
62
56
  "*": {
63
57
  "components": [
@@ -83,19 +77,18 @@
83
77
  "!/**/__tests__/**"
84
78
  ],
85
79
  "dependencies": {
86
- "@kubb/core": "3.16.2",
87
- "@kubb/oas": "3.16.2",
88
- "@kubb/plugin-oas": "3.16.2",
89
- "@kubb/plugin-ts": "3.16.2",
90
- "@kubb/plugin-zod": "3.16.2",
91
- "@kubb/react": "3.16.2"
80
+ "@kubb/core": "3.16.4",
81
+ "@kubb/oas": "3.16.4",
82
+ "@kubb/plugin-oas": "3.16.4",
83
+ "@kubb/plugin-ts": "3.16.4",
84
+ "@kubb/plugin-zod": "3.16.4",
85
+ "@kubb/react": "3.16.4"
92
86
  },
93
87
  "devDependencies": {
94
88
  "axios": "^1.11.0",
95
- "tsup": "^8.5.0",
89
+ "tsdown": "^0.14.1",
96
90
  "typescript": "^5.9.2",
97
- "@kubb/config-ts": "3.16.2",
98
- "@kubb/config-tsup": "3.16.2"
91
+ "@kubb/config-ts": "3.16.4"
99
92
  },
100
93
  "peerDependencies": {
101
94
  "@kubb/react": "^3.0.0",
@@ -114,13 +107,13 @@
114
107
  "registry": "https://registry.npmjs.org/"
115
108
  },
116
109
  "scripts": {
117
- "build": "tsup",
110
+ "build": "tsdown",
118
111
  "clean": "npx rimraf ./dist",
119
112
  "lint": "bun biome lint .",
120
- "lint:fix": "bun biome lint--fix --unsafe .",
113
+ "lint:fix": "bun biome lint --fix --unsafe .",
121
114
  "release": "pnpm publish --no-git-check",
122
115
  "release:canary": "bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check",
123
- "start": "tsup --watch",
116
+ "start": "tsdown --watch",
124
117
  "test": "vitest --passWithNoTests",
125
118
  "typecheck": "tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false"
126
119
  }
@@ -1,205 +0,0 @@
1
- 'use strict';
2
-
3
- var utils = require('@kubb/core/utils');
4
- var oas = require('@kubb/oas');
5
- var utils$1 = require('@kubb/plugin-oas/utils');
6
- var react = require('@kubb/react');
7
- var jsxRuntime = require('@kubb/react/jsx-runtime');
8
-
9
- // src/components/Url.tsx
10
- function getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }) {
11
- if (paramsType === "object") {
12
- return react.FunctionParams.factory({
13
- data: {
14
- mode: "object",
15
- children: {
16
- ...utils$1.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })
17
- }
18
- }
19
- });
20
- }
21
- return react.FunctionParams.factory({
22
- pathParams: typeSchemas.pathParams?.name ? {
23
- mode: pathParamsType === "object" ? "object" : "inlineSpread",
24
- children: utils$1.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
25
- optional: oas.isOptional(typeSchemas.pathParams?.schema)
26
- } : void 0
27
- });
28
- }
29
- function Url({ name, isExportable = true, isIndexable = true, typeSchemas, baseURL, paramsType, paramsCasing, pathParamsType, operation }) {
30
- const path = new utils.URLPath(operation.path, { casing: paramsCasing });
31
- const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas });
32
- return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable, isIndexable, children: /* @__PURE__ */ jsxRuntime.jsx(react.Function, { name, export: isExportable, params: params.toConstructor(), children: `return ${path.toTemplateString({ prefix: baseURL })} as const` }) });
33
- }
34
- Url.getParams = getParams;
35
- function getParams2({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable }) {
36
- if (paramsType === "object") {
37
- return react.FunctionParams.factory({
38
- data: {
39
- mode: "object",
40
- children: {
41
- ...utils$1.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
42
- data: typeSchemas.request?.name ? {
43
- type: typeSchemas.request?.name,
44
- optional: oas.isOptional(typeSchemas.request?.schema)
45
- } : void 0,
46
- params: typeSchemas.queryParams?.name ? {
47
- type: typeSchemas.queryParams?.name,
48
- optional: oas.isOptional(typeSchemas.queryParams?.schema)
49
- } : void 0,
50
- headers: typeSchemas.headerParams?.name ? {
51
- type: typeSchemas.headerParams?.name,
52
- optional: oas.isOptional(typeSchemas.headerParams?.schema)
53
- } : void 0
54
- }
55
- },
56
- config: isConfigurable ? {
57
- type: typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }",
58
- default: "{}"
59
- } : void 0
60
- });
61
- }
62
- return react.FunctionParams.factory({
63
- pathParams: typeSchemas.pathParams?.name ? {
64
- mode: pathParamsType === "object" ? "object" : "inlineSpread",
65
- children: utils$1.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
66
- optional: oas.isOptional(typeSchemas.pathParams?.schema)
67
- } : void 0,
68
- data: typeSchemas.request?.name ? {
69
- type: typeSchemas.request?.name,
70
- optional: oas.isOptional(typeSchemas.request?.schema)
71
- } : void 0,
72
- params: typeSchemas.queryParams?.name ? {
73
- type: typeSchemas.queryParams?.name,
74
- optional: oas.isOptional(typeSchemas.queryParams?.schema)
75
- } : void 0,
76
- headers: typeSchemas.headerParams?.name ? {
77
- type: typeSchemas.headerParams?.name,
78
- optional: oas.isOptional(typeSchemas.headerParams?.schema)
79
- } : void 0,
80
- config: isConfigurable ? {
81
- type: typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }",
82
- default: "{}"
83
- } : void 0
84
- });
85
- }
86
- function Client({
87
- name,
88
- isExportable = true,
89
- isIndexable = true,
90
- returnType,
91
- typeSchemas,
92
- baseURL,
93
- dataReturnType,
94
- parser,
95
- zodSchemas,
96
- paramsType,
97
- paramsCasing,
98
- pathParamsType,
99
- operation,
100
- urlName,
101
- children,
102
- isConfigurable = true
103
- }) {
104
- const path = new utils.URLPath(operation.path, { casing: paramsCasing });
105
- const contentType = operation.getContentType();
106
- const isFormData = contentType === "multipart/form-data";
107
- const headers = [
108
- contentType !== "application/json" ? `'Content-Type': '${contentType}'` : void 0,
109
- typeSchemas.headerParams?.name ? "...headers" : void 0
110
- ].filter(Boolean);
111
- const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
112
- const generics = [typeSchemas.response.name, TError, typeSchemas.request?.name || "unknown"].filter(Boolean);
113
- const params = getParams2({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable });
114
- const urlParams = Url.getParams({
115
- paramsType,
116
- paramsCasing,
117
- pathParamsType,
118
- typeSchemas
119
- });
120
- const clientParams = react.FunctionParams.factory({
121
- config: {
122
- mode: "object",
123
- children: {
124
- method: {
125
- value: JSON.stringify(operation.method.toUpperCase())
126
- },
127
- url: {
128
- value: urlName ? `${urlName}(${urlParams.toCall()}).toString()` : path.template
129
- },
130
- baseURL: baseURL && !urlName ? {
131
- value: JSON.stringify(baseURL)
132
- } : void 0,
133
- params: typeSchemas.queryParams?.name ? {} : void 0,
134
- data: typeSchemas.request?.name ? {
135
- value: isFormData ? "formData" : "requestData"
136
- } : void 0,
137
- requestConfig: isConfigurable ? {
138
- mode: "inlineSpread"
139
- } : void 0,
140
- headers: headers.length ? {
141
- value: isConfigurable ? `{ ${headers.join(", ")}, ...requestConfig.headers }` : `{ ${headers.join(", ")} }`
142
- } : void 0
143
- }
144
- }
145
- });
146
- const formData = isFormData ? `
147
- const formData = new FormData()
148
- if(requestData) {
149
- Object.keys(requestData).forEach((key) => {
150
- const value = requestData[key as keyof typeof requestData];
151
- if (typeof value === 'string' || (value as unknown) instanceof Blob) {
152
- formData.append(key, value as unknown as string | Blob);
153
- }
154
- })
155
- }
156
- ` : "";
157
- const childrenElement = children ? children : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
158
- dataReturnType === "full" && parser === "zod" && zodSchemas && `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`,
159
- dataReturnType === "data" && parser === "zod" && zodSchemas && `return ${zodSchemas.response.name}.parse(res.data)`,
160
- dataReturnType === "full" && parser === "client" && "return res",
161
- dataReturnType === "data" && parser === "client" && "return res.data"
162
- ] });
163
- return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable, isIndexable, children: /* @__PURE__ */ jsxRuntime.jsxs(
164
- react.Function,
165
- {
166
- name,
167
- async: true,
168
- export: isExportable,
169
- params: params.toConstructor(),
170
- JSDoc: {
171
- comments: utils$1.getComments(operation)
172
- },
173
- returnType,
174
- children: [
175
- isConfigurable ? "const { client:request = fetch, ...requestConfig } = config" : "",
176
- /* @__PURE__ */ jsxRuntime.jsx("br", {}),
177
- /* @__PURE__ */ jsxRuntime.jsx("br", {}),
178
- parser === "zod" && zodSchemas?.request?.name && `const requestData = ${zodSchemas.request.name}.parse(data)`,
179
- parser === "client" && typeSchemas?.request?.name && "const requestData = data",
180
- /* @__PURE__ */ jsxRuntime.jsx("br", {}),
181
- formData,
182
- isConfigurable ? `const res = await request<${generics.join(", ")}>(${clientParams.toCall()})` : `const res = await fetch<${generics.join(", ")}>(${clientParams.toCall()})`,
183
- /* @__PURE__ */ jsxRuntime.jsx("br", {}),
184
- childrenElement
185
- ]
186
- }
187
- ) });
188
- }
189
- Client.getParams = getParams2;
190
- function Operations({ name, operations }) {
191
- const operationsObject = {};
192
- operations.forEach((operation) => {
193
- operationsObject[operation.getOperationId()] = {
194
- path: new utils.URLPath(operation.path).URL,
195
- method: operation.method
196
- };
197
- });
198
- return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Const, { name, export: true, asConst: true, children: JSON.stringify(operationsObject, void 0, 2) }) });
199
- }
200
-
201
- exports.Client = Client;
202
- exports.Operations = Operations;
203
- exports.Url = Url;
204
- //# sourceMappingURL=chunk-H5KNP3DD.cjs.map
205
- //# sourceMappingURL=chunk-H5KNP3DD.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Url.tsx","../src/components/Client.tsx","../src/components/Operations.tsx"],"names":["FunctionParams","getPathParams","isOptional","URLPath","jsx","File","Function","getParams","jsxs","Fragment","getComments","Const"],"mappings":"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","file":"chunk-H5KNP3DD.cjs","sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n\n baseURL: string | undefined\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n operation: Operation\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n },\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n optional: isOptional(typeSchemas.pathParams?.schema),\n }\n : undefined,\n })\n}\n\nexport function Url({ name, isExportable = true, isIndexable = true, typeSchemas, baseURL, paramsType, paramsCasing, pathParamsType, operation }: Props) {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas })\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function name={name} export={isExportable} params={params.toConstructor()}>\n {`return ${path.toTemplateString({ prefix: baseURL })} as const`}\n </Function>\n </File.Source>\n )\n}\n\nUrl.getParams = getParams\n","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, FunctionParams } from '@kubb/react'\nimport type { PluginClient } from '../types.ts'\nimport { Url } from './Url.tsx'\nimport type { KubbNode } from '@kubb/react/types'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n urlName?: string\n isExportable?: boolean\n isIndexable?: boolean\n isConfigurable?: boolean\n returnType?: string\n\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n operation: Operation\n children?: KubbNode\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n isConfigurable: boolean\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable }: GetParamsProps) {\n if (paramsType === 'object') {\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n },\n },\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }`\n : 'Partial<RequestConfig> & { client?: typeof fetch }',\n default: '{}',\n }\n : undefined,\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n optional: isOptional(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }`\n : 'Partial<RequestConfig> & { client?: typeof fetch }',\n default: '{}',\n }\n : undefined,\n })\n}\n\nexport function Client({\n name,\n isExportable = true,\n isIndexable = true,\n returnType,\n typeSchemas,\n baseURL,\n dataReturnType,\n parser,\n zodSchemas,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n urlName,\n children,\n isConfigurable = true,\n}: Props) {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = [\n contentType !== 'application/json' ? `'Content-Type': '${contentType}'` : undefined,\n typeSchemas.headerParams?.name ? '...headers' : undefined,\n ].filter(Boolean)\n\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n const generics = [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable })\n const urlParams = Url.getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n const clientParams = FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: urlName ? `${urlName}(${urlParams.toCall()}).toString()` : path.template,\n },\n baseURL:\n baseURL && !urlName\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData' : 'requestData',\n }\n : undefined,\n requestConfig: isConfigurable\n ? {\n mode: 'inlineSpread',\n }\n : undefined,\n headers: headers.length\n ? {\n value: isConfigurable ? `{ ${headers.join(', ')}, ...requestConfig.headers }` : `{ ${headers.join(', ')} }`,\n }\n : undefined,\n },\n },\n })\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(requestData) {\n Object.keys(requestData).forEach((key) => {\n const value = requestData[key as keyof typeof requestData];\n if (typeof value === 'string' || (value as unknown) instanceof Blob) {\n formData.append(key, value as unknown as string | Blob);\n }\n })\n }\n `\n : ''\n\n const childrenElement = children ? (\n children\n ) : (\n <>\n {dataReturnType === 'full' && parser === 'zod' && zodSchemas && `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`}\n {dataReturnType === 'data' && parser === 'zod' && zodSchemas && `return ${zodSchemas.response.name}.parse(res.data)`}\n {dataReturnType === 'full' && parser === 'client' && 'return res'}\n {dataReturnType === 'data' && parser === 'client' && 'return res.data'}\n </>\n )\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function\n name={name}\n async\n export={isExportable}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n returnType={returnType}\n >\n {isConfigurable ? 'const { client:request = fetch, ...requestConfig } = config' : ''}\n <br />\n <br />\n {parser === 'zod' && zodSchemas?.request?.name && `const requestData = ${zodSchemas.request.name}.parse(data)`}\n {parser === 'client' && typeSchemas?.request?.name && 'const requestData = data'}\n <br />\n {formData}\n {isConfigurable\n ? `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`\n : `const res = await fetch<${generics.join(', ')}>(${clientParams.toCall()})`}\n <br />\n {childrenElement}\n </Function>\n </File.Source>\n )\n}\n\nClient.getParams = getParams\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,201 +0,0 @@
1
- import { URLPath } from '@kubb/core/utils';
2
- import { isOptional } from '@kubb/oas';
3
- import { getComments, getPathParams } from '@kubb/plugin-oas/utils';
4
- import { File, Function, FunctionParams, Const } from '@kubb/react';
5
- import { jsx, jsxs, Fragment } from '@kubb/react/jsx-runtime';
6
-
7
- // src/components/Url.tsx
8
- function getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }) {
9
- if (paramsType === "object") {
10
- return FunctionParams.factory({
11
- data: {
12
- mode: "object",
13
- children: {
14
- ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })
15
- }
16
- }
17
- });
18
- }
19
- return FunctionParams.factory({
20
- pathParams: typeSchemas.pathParams?.name ? {
21
- mode: pathParamsType === "object" ? "object" : "inlineSpread",
22
- children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
23
- optional: isOptional(typeSchemas.pathParams?.schema)
24
- } : void 0
25
- });
26
- }
27
- function Url({ name, isExportable = true, isIndexable = true, typeSchemas, baseURL, paramsType, paramsCasing, pathParamsType, operation }) {
28
- const path = new URLPath(operation.path, { casing: paramsCasing });
29
- const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas });
30
- return /* @__PURE__ */ jsx(File.Source, { name, isExportable, isIndexable, children: /* @__PURE__ */ jsx(Function, { name, export: isExportable, params: params.toConstructor(), children: `return ${path.toTemplateString({ prefix: baseURL })} as const` }) });
31
- }
32
- Url.getParams = getParams;
33
- function getParams2({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable }) {
34
- if (paramsType === "object") {
35
- return FunctionParams.factory({
36
- data: {
37
- mode: "object",
38
- children: {
39
- ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
40
- data: typeSchemas.request?.name ? {
41
- type: typeSchemas.request?.name,
42
- optional: isOptional(typeSchemas.request?.schema)
43
- } : void 0,
44
- params: typeSchemas.queryParams?.name ? {
45
- type: typeSchemas.queryParams?.name,
46
- optional: isOptional(typeSchemas.queryParams?.schema)
47
- } : void 0,
48
- headers: typeSchemas.headerParams?.name ? {
49
- type: typeSchemas.headerParams?.name,
50
- optional: isOptional(typeSchemas.headerParams?.schema)
51
- } : void 0
52
- }
53
- },
54
- config: isConfigurable ? {
55
- type: typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }",
56
- default: "{}"
57
- } : void 0
58
- });
59
- }
60
- return FunctionParams.factory({
61
- pathParams: typeSchemas.pathParams?.name ? {
62
- mode: pathParamsType === "object" ? "object" : "inlineSpread",
63
- children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
64
- optional: isOptional(typeSchemas.pathParams?.schema)
65
- } : void 0,
66
- data: typeSchemas.request?.name ? {
67
- type: typeSchemas.request?.name,
68
- optional: isOptional(typeSchemas.request?.schema)
69
- } : void 0,
70
- params: typeSchemas.queryParams?.name ? {
71
- type: typeSchemas.queryParams?.name,
72
- optional: isOptional(typeSchemas.queryParams?.schema)
73
- } : void 0,
74
- headers: typeSchemas.headerParams?.name ? {
75
- type: typeSchemas.headerParams?.name,
76
- optional: isOptional(typeSchemas.headerParams?.schema)
77
- } : void 0,
78
- config: isConfigurable ? {
79
- type: typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }",
80
- default: "{}"
81
- } : void 0
82
- });
83
- }
84
- function Client({
85
- name,
86
- isExportable = true,
87
- isIndexable = true,
88
- returnType,
89
- typeSchemas,
90
- baseURL,
91
- dataReturnType,
92
- parser,
93
- zodSchemas,
94
- paramsType,
95
- paramsCasing,
96
- pathParamsType,
97
- operation,
98
- urlName,
99
- children,
100
- isConfigurable = true
101
- }) {
102
- const path = new URLPath(operation.path, { casing: paramsCasing });
103
- const contentType = operation.getContentType();
104
- const isFormData = contentType === "multipart/form-data";
105
- const headers = [
106
- contentType !== "application/json" ? `'Content-Type': '${contentType}'` : void 0,
107
- typeSchemas.headerParams?.name ? "...headers" : void 0
108
- ].filter(Boolean);
109
- const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
110
- const generics = [typeSchemas.response.name, TError, typeSchemas.request?.name || "unknown"].filter(Boolean);
111
- const params = getParams2({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable });
112
- const urlParams = Url.getParams({
113
- paramsType,
114
- paramsCasing,
115
- pathParamsType,
116
- typeSchemas
117
- });
118
- const clientParams = FunctionParams.factory({
119
- config: {
120
- mode: "object",
121
- children: {
122
- method: {
123
- value: JSON.stringify(operation.method.toUpperCase())
124
- },
125
- url: {
126
- value: urlName ? `${urlName}(${urlParams.toCall()}).toString()` : path.template
127
- },
128
- baseURL: baseURL && !urlName ? {
129
- value: JSON.stringify(baseURL)
130
- } : void 0,
131
- params: typeSchemas.queryParams?.name ? {} : void 0,
132
- data: typeSchemas.request?.name ? {
133
- value: isFormData ? "formData" : "requestData"
134
- } : void 0,
135
- requestConfig: isConfigurable ? {
136
- mode: "inlineSpread"
137
- } : void 0,
138
- headers: headers.length ? {
139
- value: isConfigurable ? `{ ${headers.join(", ")}, ...requestConfig.headers }` : `{ ${headers.join(", ")} }`
140
- } : void 0
141
- }
142
- }
143
- });
144
- const formData = isFormData ? `
145
- const formData = new FormData()
146
- if(requestData) {
147
- Object.keys(requestData).forEach((key) => {
148
- const value = requestData[key as keyof typeof requestData];
149
- if (typeof value === 'string' || (value as unknown) instanceof Blob) {
150
- formData.append(key, value as unknown as string | Blob);
151
- }
152
- })
153
- }
154
- ` : "";
155
- const childrenElement = children ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
156
- dataReturnType === "full" && parser === "zod" && zodSchemas && `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`,
157
- dataReturnType === "data" && parser === "zod" && zodSchemas && `return ${zodSchemas.response.name}.parse(res.data)`,
158
- dataReturnType === "full" && parser === "client" && "return res",
159
- dataReturnType === "data" && parser === "client" && "return res.data"
160
- ] });
161
- return /* @__PURE__ */ jsx(File.Source, { name, isExportable, isIndexable, children: /* @__PURE__ */ jsxs(
162
- Function,
163
- {
164
- name,
165
- async: true,
166
- export: isExportable,
167
- params: params.toConstructor(),
168
- JSDoc: {
169
- comments: getComments(operation)
170
- },
171
- returnType,
172
- children: [
173
- isConfigurable ? "const { client:request = fetch, ...requestConfig } = config" : "",
174
- /* @__PURE__ */ jsx("br", {}),
175
- /* @__PURE__ */ jsx("br", {}),
176
- parser === "zod" && zodSchemas?.request?.name && `const requestData = ${zodSchemas.request.name}.parse(data)`,
177
- parser === "client" && typeSchemas?.request?.name && "const requestData = data",
178
- /* @__PURE__ */ jsx("br", {}),
179
- formData,
180
- isConfigurable ? `const res = await request<${generics.join(", ")}>(${clientParams.toCall()})` : `const res = await fetch<${generics.join(", ")}>(${clientParams.toCall()})`,
181
- /* @__PURE__ */ jsx("br", {}),
182
- childrenElement
183
- ]
184
- }
185
- ) });
186
- }
187
- Client.getParams = getParams2;
188
- function Operations({ name, operations }) {
189
- const operationsObject = {};
190
- operations.forEach((operation) => {
191
- operationsObject[operation.getOperationId()] = {
192
- path: new URLPath(operation.path).URL,
193
- method: operation.method
194
- };
195
- });
196
- return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(Const, { name, export: true, asConst: true, children: JSON.stringify(operationsObject, void 0, 2) }) });
197
- }
198
-
199
- export { Client, Operations, Url };
200
- //# sourceMappingURL=chunk-LNJCFB5O.js.map
201
- //# sourceMappingURL=chunk-LNJCFB5O.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Url.tsx","../src/components/Client.tsx","../src/components/Operations.tsx"],"names":["getParams","FunctionParams","getPathParams","isOptional","URLPath","jsx","File","Function"],"mappings":"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","file":"chunk-LNJCFB5O.js","sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n\n baseURL: string | undefined\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n operation: Operation\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n },\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n optional: isOptional(typeSchemas.pathParams?.schema),\n }\n : undefined,\n })\n}\n\nexport function Url({ name, isExportable = true, isIndexable = true, typeSchemas, baseURL, paramsType, paramsCasing, pathParamsType, operation }: Props) {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas })\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function name={name} export={isExportable} params={params.toConstructor()}>\n {`return ${path.toTemplateString({ prefix: baseURL })} as const`}\n </Function>\n </File.Source>\n )\n}\n\nUrl.getParams = getParams\n","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, FunctionParams } from '@kubb/react'\nimport type { PluginClient } from '../types.ts'\nimport { Url } from './Url.tsx'\nimport type { KubbNode } from '@kubb/react/types'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n urlName?: string\n isExportable?: boolean\n isIndexable?: boolean\n isConfigurable?: boolean\n returnType?: string\n\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n operation: Operation\n children?: KubbNode\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n isConfigurable: boolean\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable }: GetParamsProps) {\n if (paramsType === 'object') {\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n },\n },\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }`\n : 'Partial<RequestConfig> & { client?: typeof fetch }',\n default: '{}',\n }\n : undefined,\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n optional: isOptional(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }`\n : 'Partial<RequestConfig> & { client?: typeof fetch }',\n default: '{}',\n }\n : undefined,\n })\n}\n\nexport function Client({\n name,\n isExportable = true,\n isIndexable = true,\n returnType,\n typeSchemas,\n baseURL,\n dataReturnType,\n parser,\n zodSchemas,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n urlName,\n children,\n isConfigurable = true,\n}: Props) {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = [\n contentType !== 'application/json' ? `'Content-Type': '${contentType}'` : undefined,\n typeSchemas.headerParams?.name ? '...headers' : undefined,\n ].filter(Boolean)\n\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n const generics = [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable })\n const urlParams = Url.getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n const clientParams = FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: urlName ? `${urlName}(${urlParams.toCall()}).toString()` : path.template,\n },\n baseURL:\n baseURL && !urlName\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData' : 'requestData',\n }\n : undefined,\n requestConfig: isConfigurable\n ? {\n mode: 'inlineSpread',\n }\n : undefined,\n headers: headers.length\n ? {\n value: isConfigurable ? `{ ${headers.join(', ')}, ...requestConfig.headers }` : `{ ${headers.join(', ')} }`,\n }\n : undefined,\n },\n },\n })\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(requestData) {\n Object.keys(requestData).forEach((key) => {\n const value = requestData[key as keyof typeof requestData];\n if (typeof value === 'string' || (value as unknown) instanceof Blob) {\n formData.append(key, value as unknown as string | Blob);\n }\n })\n }\n `\n : ''\n\n const childrenElement = children ? (\n children\n ) : (\n <>\n {dataReturnType === 'full' && parser === 'zod' && zodSchemas && `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`}\n {dataReturnType === 'data' && parser === 'zod' && zodSchemas && `return ${zodSchemas.response.name}.parse(res.data)`}\n {dataReturnType === 'full' && parser === 'client' && 'return res'}\n {dataReturnType === 'data' && parser === 'client' && 'return res.data'}\n </>\n )\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function\n name={name}\n async\n export={isExportable}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n returnType={returnType}\n >\n {isConfigurable ? 'const { client:request = fetch, ...requestConfig } = config' : ''}\n <br />\n <br />\n {parser === 'zod' && zodSchemas?.request?.name && `const requestData = ${zodSchemas.request.name}.parse(data)`}\n {parser === 'client' && typeSchemas?.request?.name && 'const requestData = data'}\n <br />\n {formData}\n {isConfigurable\n ? `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`\n : `const res = await fetch<${generics.join(', ')}>(${clientParams.toCall()})`}\n <br />\n {childrenElement}\n </Function>\n </File.Source>\n )\n}\n\nClient.getParams = getParams\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"]}