@kubb/plugin-vue-query 3.5.2 → 3.5.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 (35) hide show
  1. package/dist/{chunk-HUKJLE4A.cjs → chunk-4TLHLSWS.cjs} +328 -34
  2. package/dist/chunk-4TLHLSWS.cjs.map +1 -0
  3. package/dist/{chunk-N6FQE7MO.js → chunk-5AVTA36R.js} +16 -8
  4. package/dist/chunk-5AVTA36R.js.map +1 -0
  5. package/dist/{chunk-KGJSQLZT.cjs → chunk-HJ3OZP57.cjs} +16 -6
  6. package/dist/chunk-HJ3OZP57.cjs.map +1 -0
  7. package/dist/{chunk-VTRFZL5E.js → chunk-TPCLQISL.js} +315 -25
  8. package/dist/chunk-TPCLQISL.js.map +1 -0
  9. package/dist/components.cjs +8 -8
  10. package/dist/components.js +1 -1
  11. package/dist/generators.cjs +5 -5
  12. package/dist/generators.js +2 -2
  13. package/dist/index.cjs +5 -5
  14. package/dist/index.js +2 -2
  15. package/package.json +10 -10
  16. package/src/generators/__snapshots__/clientDataReturnTypeFull.ts +1 -1
  17. package/src/generators/__snapshots__/clientGetImportPath.ts +1 -1
  18. package/src/generators/__snapshots__/clientPostImportPath.ts +1 -1
  19. package/src/generators/__snapshots__/findByTags.ts +1 -1
  20. package/src/generators/__snapshots__/findByTagsObject.ts +1 -1
  21. package/src/generators/__snapshots__/findByTagsPathParamsObject.ts +1 -1
  22. package/src/generators/__snapshots__/findByTagsWithCustomQueryKey.ts +1 -1
  23. package/src/generators/__snapshots__/findByTagsWithZod.ts +1 -1
  24. package/src/generators/__snapshots__/findInfiniteByTags.ts +2 -2
  25. package/src/generators/__snapshots__/findInfiniteByTagsCursor.ts +2 -2
  26. package/src/generators/__snapshots__/postAsQuery.ts +1 -1
  27. package/src/generators/__snapshots__/updatePetById.ts +1 -1
  28. package/src/generators/__snapshots__/updatePetByIdPathParamsObject.ts +1 -1
  29. package/src/generators/infiniteQueryGenerator.tsx +29 -16
  30. package/src/generators/mutationGenerator.tsx +27 -16
  31. package/src/generators/queryGenerator.tsx +28 -16
  32. package/dist/chunk-HUKJLE4A.cjs.map +0 -1
  33. package/dist/chunk-KGJSQLZT.cjs.map +0 -1
  34. package/dist/chunk-N6FQE7MO.js.map +0 -1
  35. package/dist/chunk-VTRFZL5E.js.map +0 -1
@@ -1,22 +1,295 @@
1
1
  'use strict';
2
2
 
3
- var chunkKGJSQLZT_cjs = require('./chunk-KGJSQLZT.cjs');
3
+ var chunkHJ3OZP57_cjs = require('./chunk-HJ3OZP57.cjs');
4
+ var path = require('path');
5
+ var core = require('@kubb/core');
6
+ var transformers = require('@kubb/core/transformers');
4
7
  var pluginOas = require('@kubb/plugin-oas');
8
+ var pluginZod = require('@kubb/plugin-zod');
5
9
  var hooks = require('@kubb/plugin-oas/hooks');
6
10
  var utils = require('@kubb/plugin-oas/utils');
7
11
  var pluginTs = require('@kubb/plugin-ts');
8
- var pluginZod = require('@kubb/plugin-zod');
9
12
  var react = require('@kubb/react');
10
- var remeda = require('remeda');
11
13
  var jsxRuntime = require('@kubb/react/jsx-runtime');
14
+ var remeda = require('remeda');
15
+
16
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
+
18
+ var path__default = /*#__PURE__*/_interopDefault(path);
19
+
20
+ var clientGenerator = pluginOas.createReactGenerator({
21
+ name: "client",
22
+ Operation({ options, operation }) {
23
+ const {
24
+ plugin: {
25
+ options: { output }
26
+ }
27
+ } = react.useApp();
28
+ const oas = hooks.useOas();
29
+ const { getSchemas, getName, getFile } = hooks.useOperationManager();
30
+ const client = {
31
+ name: getName(operation, { type: "function" }),
32
+ file: getFile(operation)
33
+ };
34
+ const url = {
35
+ name: getName(operation, { type: "function", suffix: "url", prefix: "get" }),
36
+ file: getFile(operation)
37
+ };
38
+ const type = {
39
+ file: getFile(operation, { pluginKey: [pluginTs.pluginTsName] }),
40
+ schemas: getSchemas(operation, { pluginKey: [pluginTs.pluginTsName], type: "type" })
41
+ };
42
+ const zod = {
43
+ file: getFile(operation, { pluginKey: [pluginZod.pluginZodName] }),
44
+ schemas: getSchemas(operation, { pluginKey: [pluginZod.pluginZodName], type: "function" })
45
+ };
46
+ return /* @__PURE__ */ jsxRuntime.jsxs(
47
+ react.File,
48
+ {
49
+ baseName: client.file.baseName,
50
+ path: client.file.path,
51
+ meta: client.file.meta,
52
+ banner: utils.getBanner({ oas, output }),
53
+ footer: utils.getFooter({ oas, output }),
54
+ children: [
55
+ /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: "client", path: options.importPath }),
56
+ /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["RequestConfig", "ResponseErrorConfig"], path: options.importPath, isTypeOnly: true }),
57
+ options.parser === "zod" && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [zod.schemas.response.name], root: client.file.path, path: zod.file.path }),
58
+ /* @__PURE__ */ jsxRuntime.jsx(
59
+ react.File.Import,
60
+ {
61
+ name: [
62
+ type.schemas.request?.name,
63
+ type.schemas.response.name,
64
+ type.schemas.pathParams?.name,
65
+ type.schemas.queryParams?.name,
66
+ type.schemas.headerParams?.name,
67
+ ...type.schemas.statusCodes?.map((item) => item.name) || []
68
+ ].filter(Boolean),
69
+ root: client.file.path,
70
+ path: type.file.path,
71
+ isTypeOnly: true
72
+ }
73
+ ),
74
+ /* @__PURE__ */ jsxRuntime.jsx(
75
+ chunkHJ3OZP57_cjs.Url,
76
+ {
77
+ name: url.name,
78
+ baseURL: options.baseURL,
79
+ pathParamsType: options.pathParamsType,
80
+ paramsCasing: options.paramsCasing,
81
+ paramsType: options.paramsType,
82
+ typeSchemas: type.schemas,
83
+ operation
84
+ }
85
+ ),
86
+ /* @__PURE__ */ jsxRuntime.jsx(
87
+ chunkHJ3OZP57_cjs.Client,
88
+ {
89
+ name: client.name,
90
+ urlName: url.name,
91
+ baseURL: options.baseURL,
92
+ dataReturnType: options.dataReturnType,
93
+ pathParamsType: options.pathParamsType,
94
+ paramsCasing: options.paramsCasing,
95
+ paramsType: options.paramsType,
96
+ typeSchemas: type.schemas,
97
+ operation,
98
+ parser: options.parser,
99
+ zodSchemas: zod.schemas
100
+ }
101
+ )
102
+ ]
103
+ }
104
+ );
105
+ }
106
+ });
107
+ var operationsGenerator = pluginOas.createReactGenerator({
108
+ name: "client",
109
+ Operations({ operations }) {
110
+ const {
111
+ pluginManager,
112
+ plugin: {
113
+ key: pluginKey,
114
+ options: { output }
115
+ }
116
+ } = react.useApp();
117
+ const oas = hooks.useOas();
118
+ const name = "operations";
119
+ const file = pluginManager.getFile({ name, extname: ".ts", pluginKey });
120
+ return /* @__PURE__ */ jsxRuntime.jsx(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, banner: utils.getBanner({ oas, output }), footer: utils.getFooter({ oas, output }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkHJ3OZP57_cjs.Operations, { name, operations }) });
121
+ }
122
+ });
123
+ var groupedClientGenerator = pluginOas.createReactGenerator({
124
+ name: "groupedClient",
125
+ Operations({ operations }) {
126
+ const {
127
+ pluginManager,
128
+ plugin: { options, key: pluginKey }
129
+ } = react.useApp();
130
+ const oas = hooks.useOas();
131
+ const { getName, getFile, getGroup } = hooks.useOperationManager();
132
+ const controllers = operations.reduce(
133
+ (acc, operation) => {
134
+ if (options.group?.type === "tag") {
135
+ const group = getGroup(operation);
136
+ const name = group?.tag ? options.group?.name?.({ group: transformers.camelCase(group.tag) }) : void 0;
137
+ if (!group?.tag || !name) {
138
+ return acc;
139
+ }
140
+ const file = pluginManager.getFile({
141
+ name,
142
+ extname: ".ts",
143
+ pluginKey,
144
+ options: { group }
145
+ });
146
+ const client = {
147
+ name: getName(operation, { type: "function" }),
148
+ file: getFile(operation)
149
+ };
150
+ const previousFile = acc.find((item) => item.file.path === file.path);
151
+ if (previousFile) {
152
+ previousFile.clients.push(client);
153
+ } else {
154
+ acc.push({ name, file, clients: [client] });
155
+ }
156
+ }
157
+ return acc;
158
+ },
159
+ []
160
+ );
161
+ return controllers.map(({ name, file, clients }) => {
162
+ return /* @__PURE__ */ jsxRuntime.jsxs(
163
+ react.File,
164
+ {
165
+ baseName: file.baseName,
166
+ path: file.path,
167
+ meta: file.meta,
168
+ banner: utils.getBanner({ oas, output: options.output }),
169
+ footer: utils.getFooter({ oas, output: options.output }),
170
+ children: [
171
+ clients.map((client) => /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [client.name], root: file.path, path: client.file.path }, client.name)),
172
+ /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Function, { export: true, name, children: `return { ${clients.map((client) => client.name).join(", ")} }` }) })
173
+ ]
174
+ },
175
+ file.path
176
+ );
177
+ });
178
+ }
179
+ });
12
180
 
181
+ // ../plugin-client/src/plugin.ts
182
+ var pluginClientName = "plugin-client";
183
+ core.createPlugin((options) => {
184
+ const {
185
+ output = { path: "clients", barrelType: "named" },
186
+ group,
187
+ exclude = [],
188
+ include,
189
+ override = [],
190
+ transformers: transformers$1 = {},
191
+ dataReturnType = "data",
192
+ pathParamsType = "inline",
193
+ paramsType = "inline",
194
+ operations = false,
195
+ baseURL,
196
+ paramsCasing,
197
+ generators = [clientGenerator, group ? groupedClientGenerator : void 0, operations ? operationsGenerator : void 0].filter(Boolean),
198
+ parser = "client",
199
+ client = "axios",
200
+ importPath = client === "fetch" ? "@kubb/plugin-client/clients/fetch" : "@kubb/plugin-client/clients/axios"
201
+ } = options;
202
+ return {
203
+ name: pluginClientName,
204
+ options: {
205
+ output,
206
+ group,
207
+ parser,
208
+ dataReturnType,
209
+ importPath,
210
+ paramsType,
211
+ paramsCasing,
212
+ pathParamsType: paramsType === "object" ? "object" : pathParamsType,
213
+ baseURL
214
+ },
215
+ pre: [pluginOas.pluginOasName, parser === "zod" ? pluginZod.pluginZodName : void 0].filter(Boolean),
216
+ resolvePath(baseName, pathMode, options2) {
217
+ const root = path__default.default.resolve(this.config.root, this.config.output.path);
218
+ const mode = pathMode ?? core.FileManager.getMode(path__default.default.resolve(root, output.path));
219
+ if (mode === "single") {
220
+ return path__default.default.resolve(root, output.path);
221
+ }
222
+ if (group && (options2?.group?.path || options2?.group?.tag)) {
223
+ const groupName = group?.name ? group.name : (ctx) => {
224
+ if (group?.type === "path") {
225
+ return `${ctx.group.split("/")[1]}`;
226
+ }
227
+ return `${transformers.camelCase(ctx.group)}Controller`;
228
+ };
229
+ return path__default.default.resolve(
230
+ root,
231
+ output.path,
232
+ groupName({
233
+ group: group.type === "path" ? options2.group.path : options2.group.tag
234
+ }),
235
+ baseName
236
+ );
237
+ }
238
+ return path__default.default.resolve(root, output.path, baseName);
239
+ },
240
+ resolveName(name, type) {
241
+ const resolvedName = transformers.camelCase(name, { isFile: type === "file" });
242
+ if (type) {
243
+ return transformers$1?.name?.(resolvedName, type) || resolvedName;
244
+ }
245
+ return resolvedName;
246
+ },
247
+ async buildStart() {
248
+ const [swaggerPlugin] = core.PluginManager.getDependedPlugins(this.plugins, [pluginOas.pluginOasName]);
249
+ const oas = await swaggerPlugin.context.getOas();
250
+ const root = path__default.default.resolve(this.config.root, this.config.output.path);
251
+ const mode = core.FileManager.getMode(path__default.default.resolve(root, output.path));
252
+ const baseURL2 = await swaggerPlugin.context.getBaseURL();
253
+ const operationGenerator = new pluginOas.OperationGenerator(
254
+ baseURL2 ? {
255
+ ...this.plugin.options,
256
+ baseURL: baseURL2
257
+ } : this.plugin.options,
258
+ {
259
+ oas,
260
+ pluginManager: this.pluginManager,
261
+ plugin: this.plugin,
262
+ contentType: swaggerPlugin.context.contentType,
263
+ exclude,
264
+ include,
265
+ override,
266
+ mode
267
+ }
268
+ );
269
+ const files = await operationGenerator.build(...generators);
270
+ await this.addFile(...files);
271
+ const barrelFiles = await this.fileManager.getBarrelFiles({
272
+ type: output.barrelType ?? "named",
273
+ root,
274
+ output,
275
+ files: this.fileManager.files,
276
+ meta: {
277
+ pluginKey: this.plugin.key
278
+ },
279
+ logger: this.logger
280
+ });
281
+ await this.addFile(...barrelFiles);
282
+ }
283
+ };
284
+ });
13
285
  var queryGenerator = pluginOas.createReactGenerator({
14
286
  name: "vue-query",
15
287
  Operation({ options, operation }) {
16
288
  const {
17
289
  plugin: {
18
290
  options: { output }
19
- }
291
+ },
292
+ pluginManager
20
293
  } = react.useApp();
21
294
  const oas = hooks.useOas();
22
295
  const { getSchemas, getName, getFile } = hooks.useOperationManager();
@@ -30,8 +303,15 @@ var queryGenerator = pluginOas.createReactGenerator({
30
303
  typeName: getName(operation, { type: "type" }),
31
304
  file: getFile(operation, { prefix: "use" })
32
305
  };
306
+ const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName]);
33
307
  const client = {
34
- name: getName(operation, { type: "function" })
308
+ name: hasClientPlugin ? getName(operation, {
309
+ type: "function",
310
+ pluginKey: [pluginClientName]
311
+ }) : getName(operation, {
312
+ type: "function"
313
+ }),
314
+ file: getFile(operation, { pluginKey: [pluginClientName] })
35
315
  };
36
316
  const queryOptions = {
37
317
  name: getName(operation, { type: "function", suffix: "QueryOptions" })
@@ -64,7 +344,8 @@ var queryGenerator = pluginOas.createReactGenerator({
64
344
  options.parser === "zod" && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [zod.schemas.response.name], root: query.file.path, path: zod.file.path }),
65
345
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["unref"], path: "vue" }),
66
346
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["MaybeRef"], path: "vue", isTypeOnly: true }),
67
- /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: "client", path: options.client.importPath }),
347
+ !hasClientPlugin && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: "client", path: options.client.importPath }),
348
+ !!hasClientPlugin && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [client.name], root: query.file.path, path: client.file.path }),
68
349
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["RequestConfig", "ResponseErrorConfig"], path: options.client.importPath, isTypeOnly: true }),
69
350
  options.client.dataReturnType === "full" && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["ResponseConfig"], path: options.client.importPath, isTypeOnly: true }),
70
351
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -84,7 +365,7 @@ var queryGenerator = pluginOas.createReactGenerator({
84
365
  }
85
366
  ),
86
367
  /* @__PURE__ */ jsxRuntime.jsx(
87
- chunkKGJSQLZT_cjs.QueryKey,
368
+ chunkHJ3OZP57_cjs.QueryKey,
88
369
  {
89
370
  name: queryKey.name,
90
371
  typeName: queryKey.typeName,
@@ -95,12 +376,10 @@ var queryGenerator = pluginOas.createReactGenerator({
95
376
  transformer: options.queryKey
96
377
  }
97
378
  ),
98
- /* @__PURE__ */ jsxRuntime.jsx(
99
- chunkKGJSQLZT_cjs.Client,
379
+ !hasClientPlugin && /* @__PURE__ */ jsxRuntime.jsx(
380
+ chunkHJ3OZP57_cjs.Client,
100
381
  {
101
382
  name: client.name,
102
- isExportable: false,
103
- isIndexable: false,
104
383
  baseURL: options.client.baseURL,
105
384
  operation,
106
385
  typeSchemas: type.schemas,
@@ -114,7 +393,7 @@ var queryGenerator = pluginOas.createReactGenerator({
114
393
  ),
115
394
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["queryOptions"], path: importPath }),
116
395
  /* @__PURE__ */ jsxRuntime.jsx(
117
- chunkKGJSQLZT_cjs.QueryOptions,
396
+ chunkHJ3OZP57_cjs.QueryOptions,
118
397
  {
119
398
  name: queryOptions.name,
120
399
  clientName: client.name,
@@ -130,7 +409,7 @@ var queryGenerator = pluginOas.createReactGenerator({
130
409
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["useQuery"], path: importPath }),
131
410
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["QueryKey", "QueryObserverOptions", "UseQueryReturnType"], path: importPath, isTypeOnly: true }),
132
411
  /* @__PURE__ */ jsxRuntime.jsx(
133
- chunkKGJSQLZT_cjs.Query,
412
+ chunkHJ3OZP57_cjs.Query,
134
413
  {
135
414
  name: query.name,
136
415
  queryOptionsName: queryOptions.name,
@@ -156,7 +435,8 @@ var mutationGenerator = pluginOas.createReactGenerator({
156
435
  const {
157
436
  plugin: {
158
437
  options: { output }
159
- }
438
+ },
439
+ pluginManager
160
440
  } = react.useApp();
161
441
  const oas = hooks.useOas();
162
442
  const { getSchemas, getName, getFile } = hooks.useOperationManager();
@@ -177,8 +457,15 @@ var mutationGenerator = pluginOas.createReactGenerator({
177
457
  file: getFile(operation, { pluginKey: [pluginZod.pluginZodName] }),
178
458
  schemas: getSchemas(operation, { pluginKey: [pluginZod.pluginZodName], type: "function" })
179
459
  };
460
+ const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName]);
180
461
  const client = {
181
- name: getName(operation, { type: "function" })
462
+ name: hasClientPlugin ? getName(operation, {
463
+ type: "function",
464
+ pluginKey: [pluginClientName]
465
+ }) : getName(operation, {
466
+ type: "function"
467
+ }),
468
+ file: getFile(operation, { pluginKey: [pluginClientName] })
182
469
  };
183
470
  const mutationKey = {
184
471
  name: getName(operation, { type: "const", suffix: "MutationKey" }),
@@ -198,7 +485,8 @@ var mutationGenerator = pluginOas.createReactGenerator({
198
485
  children: [
199
486
  options.parser === "zod" && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [zod.schemas.response.name], root: mutation.file.path, path: zod.file.path }),
200
487
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["MaybeRef"], path: "vue", isTypeOnly: true }),
201
- /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: "client", path: options.client.importPath }),
488
+ !hasClientPlugin && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: "client", path: options.client.importPath }),
489
+ !!hasClientPlugin && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [client.name], root: mutation.file.path, path: client.file.path }),
202
490
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["RequestConfig", "ResponseConfig", "ResponseErrorConfig"], path: options.client.importPath, isTypeOnly: true }),
203
491
  /* @__PURE__ */ jsxRuntime.jsx(
204
492
  react.File.Import,
@@ -217,7 +505,7 @@ var mutationGenerator = pluginOas.createReactGenerator({
217
505
  }
218
506
  ),
219
507
  /* @__PURE__ */ jsxRuntime.jsx(
220
- chunkKGJSQLZT_cjs.MutationKey,
508
+ chunkHJ3OZP57_cjs.MutationKey,
221
509
  {
222
510
  name: mutationKey.name,
223
511
  typeName: mutationKey.typeName,
@@ -228,12 +516,10 @@ var mutationGenerator = pluginOas.createReactGenerator({
228
516
  transformer: options.mutationKey
229
517
  }
230
518
  ),
231
- /* @__PURE__ */ jsxRuntime.jsx(
232
- chunkKGJSQLZT_cjs.Client,
519
+ !hasClientPlugin && /* @__PURE__ */ jsxRuntime.jsx(
520
+ chunkHJ3OZP57_cjs.Client,
233
521
  {
234
522
  name: client.name,
235
- isExportable: false,
236
- isIndexable: false,
237
523
  baseURL: options.client.baseURL,
238
524
  operation,
239
525
  typeSchemas: type.schemas,
@@ -249,7 +535,7 @@ var mutationGenerator = pluginOas.createReactGenerator({
249
535
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["useMutation"], path: importPath }),
250
536
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["MutationObserverOptions"], path: importPath, isTypeOnly: true }),
251
537
  /* @__PURE__ */ jsxRuntime.jsx(
252
- chunkKGJSQLZT_cjs.Mutation,
538
+ chunkHJ3OZP57_cjs.Mutation,
253
539
  {
254
540
  name: mutation.name,
255
541
  clientName: client.name,
@@ -275,7 +561,8 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
275
561
  const {
276
562
  plugin: {
277
563
  options: { output }
278
- }
564
+ },
565
+ pluginManager
279
566
  } = react.useApp();
280
567
  const oas = hooks.useOas();
281
568
  const { getSchemas, getName, getFile } = hooks.useOperationManager();
@@ -290,8 +577,16 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
290
577
  typeName: getName(operation, { type: "type" }),
291
578
  file: getFile(operation, { prefix: "use", suffix: "infinite" })
292
579
  };
580
+ const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName]);
293
581
  const client = {
294
- name: getName(operation, { type: "function" })
582
+ name: hasClientPlugin ? getName(operation, {
583
+ type: "function",
584
+ pluginKey: [pluginClientName]
585
+ }) : getName(operation, {
586
+ type: "function",
587
+ suffix: "infinite"
588
+ }),
589
+ file: getFile(operation, { pluginKey: [pluginClientName] })
295
590
  };
296
591
  const queryOptions = {
297
592
  name: getName(operation, { type: "function", suffix: "InfiniteQueryOptions" })
@@ -324,7 +619,8 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
324
619
  options.parser === "zod" && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [zod.schemas.response.name], root: query.file.path, path: zod.file.path }),
325
620
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["unref"], path: "vue" }),
326
621
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["MaybeRef"], path: "vue", isTypeOnly: true }),
327
- /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: "client", path: options.client.importPath }),
622
+ !hasClientPlugin && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: "client", path: options.client.importPath }),
623
+ hasClientPlugin && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [client.name], root: query.file.path, path: client.file.path }),
328
624
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["RequestConfig", "ResponseErrorConfig"], path: options.client.importPath, isTypeOnly: true }),
329
625
  options.client.dataReturnType === "full" && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["ResponseConfig"], path: options.client.importPath, isTypeOnly: true }),
330
626
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -344,7 +640,7 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
344
640
  }
345
641
  ),
346
642
  /* @__PURE__ */ jsxRuntime.jsx(
347
- chunkKGJSQLZT_cjs.QueryKey,
643
+ chunkHJ3OZP57_cjs.QueryKey,
348
644
  {
349
645
  name: queryKey.name,
350
646
  typeName: queryKey.typeName,
@@ -355,12 +651,10 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
355
651
  transformer: options.queryKey
356
652
  }
357
653
  ),
358
- /* @__PURE__ */ jsxRuntime.jsx(
359
- chunkKGJSQLZT_cjs.Client,
654
+ !hasClientPlugin && /* @__PURE__ */ jsxRuntime.jsx(
655
+ chunkHJ3OZP57_cjs.Client,
360
656
  {
361
657
  name: client.name,
362
- isExportable: false,
363
- isIndexable: false,
364
658
  baseURL: options.client.baseURL,
365
659
  operation,
366
660
  typeSchemas: type.schemas,
@@ -376,7 +670,7 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
376
670
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["InfiniteData"], isTypeOnly: true, path: importPath }),
377
671
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["infiniteQueryOptions"], path: importPath }),
378
672
  /* @__PURE__ */ jsxRuntime.jsx(
379
- chunkKGJSQLZT_cjs.InfiniteQueryOptions,
673
+ chunkHJ3OZP57_cjs.InfiniteQueryOptions,
380
674
  {
381
675
  name: queryOptions.name,
382
676
  clientName: client.name,
@@ -396,7 +690,7 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
396
690
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["useInfiniteQuery"], path: importPath }),
397
691
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["QueryKey", "InfiniteQueryObserverOptions", "UseInfiniteQueryReturnType"], path: importPath, isTypeOnly: true }),
398
692
  /* @__PURE__ */ jsxRuntime.jsx(
399
- chunkKGJSQLZT_cjs.InfiniteQuery,
693
+ chunkHJ3OZP57_cjs.InfiniteQuery,
400
694
  {
401
695
  name: query.name,
402
696
  queryOptionsName: queryOptions.name,
@@ -420,5 +714,5 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
420
714
  exports.infiniteQueryGenerator = infiniteQueryGenerator;
421
715
  exports.mutationGenerator = mutationGenerator;
422
716
  exports.queryGenerator = queryGenerator;
423
- //# sourceMappingURL=chunk-HUKJLE4A.cjs.map
424
- //# sourceMappingURL=chunk-HUKJLE4A.cjs.map
717
+ //# sourceMappingURL=chunk-4TLHLSWS.cjs.map
718
+ //# sourceMappingURL=chunk-4TLHLSWS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../plugin-client/src/generators/clientGenerator.tsx","../../plugin-client/src/generators/operationsGenerator.tsx","../../plugin-client/src/generators/groupedClientGenerator.tsx","../../plugin-client/src/plugin.ts","../src/generators/queryGenerator.tsx","../src/generators/mutationGenerator.tsx","../src/generators/infiniteQueryGenerator.tsx"],"names":["createReactGenerator","useApp","useOas","useOperationManager","pluginTsName","pluginZodName","jsxs","File","getBanner","getFooter","jsx","Url","Client","Operations","camelCase","Function","createPlugin","transformers","pluginOasName","options","path","FileManager","PluginManager","baseURL","OperationGenerator","difference","QueryKey","QueryOptions","Fragment","Query","MutationKey","Mutation","InfiniteQueryOptions","InfiniteQuery"],"mappings":"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","file":"chunk-4TLHLSWS.cjs","sourcesContent":["import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, useApp } from '@kubb/react'\nimport { Client } from '../components/Client'\nimport { Url } from '../components/Url.tsx'\nimport type { PluginClient } from '../types'\n\nexport const clientGenerator = createReactGenerator<PluginClient>({\n name: 'client',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n } = useApp<PluginClient>()\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager()\n\n const client = {\n name: getName(operation, { type: 'function' }),\n file: getFile(operation),\n }\n\n const url = {\n name: getName(operation, { type: 'function', suffix: 'url', prefix: 'get' }),\n file: getFile(operation),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n }\n\n return (\n <File\n baseName={client.file.baseName}\n path={client.file.path}\n meta={client.file.meta}\n banner={getBanner({ oas, output })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={'client'} path={options.importPath} />\n <File.Import name={['RequestConfig', 'ResponseErrorConfig']} path={options.importPath} isTypeOnly />\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={client.file.path} path={zod.file.path} />}\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={client.file.path}\n path={type.file.path}\n isTypeOnly\n />\n\n <Url\n name={url.name}\n baseURL={options.baseURL}\n pathParamsType={options.pathParamsType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n typeSchemas={type.schemas}\n operation={operation}\n />\n\n <Client\n name={client.name}\n urlName={url.name}\n baseURL={options.baseURL}\n dataReturnType={options.dataReturnType}\n pathParamsType={options.pathParamsType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n typeSchemas={type.schemas}\n operation={operation}\n parser={options.parser}\n zodSchemas={zod.schemas}\n />\n </File>\n )\n },\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, useApp } from '@kubb/react'\nimport { Operations } from '../components/Operations'\nimport type { PluginClient } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginClient>({\n name: 'client',\n Operations({ operations }) {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { output },\n },\n } = useApp<PluginClient>()\n const oas = useOas()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={getBanner({ oas, output })} footer={getFooter({ oas, output })}>\n <Operations name={name} operations={operations} />\n </File>\n )\n },\n})\n","import { camelCase } from '@kubb/core/transformers'\nimport type * as KubbFile from '@kubb/fs/types'\n\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport type { PluginClient } from '../types'\n\nexport const groupedClientGenerator = createReactGenerator<PluginClient>({\n name: 'groupedClient',\n Operations({ operations }) {\n const {\n pluginManager,\n plugin: { options, key: pluginKey },\n } = useApp<PluginClient>()\n const oas = useOas()\n const { getName, getFile, getGroup } = useOperationManager()\n\n const controllers = operations.reduce(\n (acc, operation) => {\n if (options.group?.type === 'tag') {\n const group = getGroup(operation)\n const name = group?.tag ? options.group?.name?.({ group: camelCase(group.tag) }) : undefined\n\n if (!group?.tag || !name) {\n return acc\n }\n\n const file = pluginManager.getFile({\n name,\n extname: '.ts',\n pluginKey,\n options: { group },\n })\n\n const client = {\n name: getName(operation, { type: 'function' }),\n file: getFile(operation),\n }\n\n const previousFile = acc.find((item) => item.file.path === file.path)\n\n if (previousFile) {\n previousFile.clients.push(client)\n } else {\n acc.push({ name, file, clients: [client] })\n }\n }\n\n return acc\n },\n [] as Array<{ name: string; file: KubbFile.File; clients: Array<{ name: string; file: KubbFile.File }> }>,\n )\n\n return controllers.map(({ name, file, clients }) => {\n return (\n <File\n key={file.path}\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: options.output })}\n footer={getFooter({ oas, output: options.output })}\n >\n {clients.map((client) => (\n <File.Import key={client.name} name={[client.name]} root={file.path} path={client.file.path} />\n ))}\n\n <File.Source name={name} isExportable isIndexable>\n <Function export name={name}>\n {`return { ${clients.map((client) => client.name).join(', ')} }`}\n </Function>\n </File.Source>\n </File>\n )\n })\n },\n})\n","import path from 'node:path'\n\nimport { FileManager, type Group, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { operationsGenerator } from './generators'\nimport { clientGenerator } from './generators/clientGenerator.tsx'\nimport { groupedClientGenerator } from './generators/groupedClientGenerator.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', barrelType: 'named' },\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n dataReturnType = 'data',\n pathParamsType = 'inline',\n paramsType = 'inline',\n operations = false,\n baseURL,\n paramsCasing,\n generators = [clientGenerator, group ? groupedClientGenerator : undefined, operations ? operationsGenerator : undefined].filter(Boolean),\n parser = 'client',\n client = 'axios',\n importPath = client === 'fetch' ? '@kubb/plugin-client/clients/fetch' : '@kubb/plugin-client/clients/axios',\n } = options\n\n return {\n name: pluginClientName,\n options: {\n output,\n group,\n parser,\n dataReturnType,\n importPath,\n paramsType,\n paramsCasing,\n pathParamsType: paramsType === 'object' ? 'object' : pathParamsType,\n baseURL,\n },\n pre: [pluginOasName, parser === 'zod' ? pluginZodName : undefined].filter(Boolean),\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 (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\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 baseURL\n ? {\n ...this.plugin.options,\n baseURL,\n }\n : this.plugin.options,\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(...generators)\n\n await this.addFile(...files)\n\n const barrelFiles = await this.fileManager.getBarrelFiles({\n type: output.barrelType ?? 'named',\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","import { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, useApp } from '@kubb/react'\nimport { difference } from 'remeda'\nimport { Query, QueryKey, QueryOptions } from '../components'\nimport type { PluginVueQuery } from '../types'\n\nexport const queryGenerator = createReactGenerator<PluginVueQuery>({\n name: 'vue-query',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n pluginManager,\n } = useApp<PluginVueQuery>()\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager()\n\n const isQuery = typeof options.query === 'boolean' ? true : options.query?.methods.some((method) => operation.method === method)\n const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(\n (method) => operation.method === method,\n )\n const importPath = options.query ? options.query.importPath : '@tanstack/vue-query'\n\n const query = {\n name: getName(operation, { type: 'function', prefix: 'use' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use' }),\n }\n\n const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])\n const client = {\n name: hasClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginKey: [pluginClientName],\n })\n : getName(operation, {\n type: 'function',\n }),\n file: getFile(operation, { pluginKey: [pluginClientName] }),\n }\n\n const queryOptions = {\n name: getName(operation, { type: 'function', suffix: 'QueryOptions' }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'QueryKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'QueryKey' }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n }\n\n if (!isQuery || isMutation) {\n return null\n }\n\n return (\n <File\n baseName={query.file.baseName}\n path={query.file.path}\n meta={query.file.meta}\n banner={getBanner({ oas, output })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={query.file.path} path={zod.file.path} />}\n <File.Import name={['unref']} path=\"vue\" />\n <File.Import name={['MaybeRef']} path=\"vue\" isTypeOnly />\n {!hasClientPlugin && <File.Import name={'client'} path={options.client.importPath} />}\n {!!hasClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n <File.Import name={['RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={query.file.path}\n path={type.file.path}\n isTypeOnly\n />\n <QueryKey\n name={queryKey.name}\n typeName={queryKey.typeName}\n operation={operation}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.queryKey}\n />\n {!hasClientPlugin && (\n <Client\n name={client.name}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n <File.Import name={['queryOptions']} path={importPath} />\n <QueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n paramsCasing={options.paramsCasing}\n typeSchemas={type.schemas}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType}\n />\n {options.query && (\n <>\n <File.Import name={['useQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryObserverOptions', 'UseQueryReturnType']} path={importPath} isTypeOnly />\n <Query\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n operation={operation}\n dataReturnType={options.client.dataReturnType}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, useApp } from '@kubb/react'\nimport { difference } from 'remeda'\nimport { Mutation, MutationKey } from '../components'\nimport type { PluginVueQuery } from '../types'\n\nexport const mutationGenerator = createReactGenerator<PluginVueQuery>({\n name: 'vue-query',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n pluginManager,\n } = useApp<PluginVueQuery>()\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager()\n\n const isQuery = !!options.query && options.query?.methods.some((method) => operation.method === method)\n const isMutation =\n !isQuery &&\n difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some((method) => operation.method === method)\n\n const importPath = options.mutation ? options.mutation.importPath : '@tanstack/vue-query'\n\n const mutation = {\n name: getName(operation, { type: 'function', prefix: 'use' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use' }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n }\n\n const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])\n const client = {\n name: hasClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginKey: [pluginClientName],\n })\n : getName(operation, {\n type: 'function',\n }),\n file: getFile(operation, { pluginKey: [pluginClientName] }),\n }\n\n const mutationKey = {\n name: getName(operation, { type: 'const', suffix: 'MutationKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'MutationKey' }),\n }\n\n if (!isMutation) {\n return null\n }\n\n return (\n <File\n baseName={mutation.file.baseName}\n path={mutation.file.path}\n meta={mutation.file.meta}\n banner={getBanner({ oas, output })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={mutation.file.path} path={zod.file.path} />}\n <File.Import name={['MaybeRef']} path=\"vue\" isTypeOnly />\n {!hasClientPlugin && <File.Import name={'client'} path={options.client.importPath} />}\n {!!hasClientPlugin && <File.Import name={[client.name]} root={mutation.file.path} path={client.file.path} />}\n <File.Import name={['RequestConfig', 'ResponseConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={mutation.file.path}\n path={type.file.path}\n isTypeOnly\n />\n <MutationKey\n name={mutationKey.name}\n typeName={mutationKey.typeName}\n operation={operation}\n pathParamsType={options.pathParamsType}\n paramsCasing={options.paramsCasing}\n typeSchemas={type.schemas}\n transformer={options.mutationKey}\n />\n {!hasClientPlugin && (\n <Client\n name={client.name}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n {options.mutation && (\n <>\n <File.Import name={['useMutation']} path={importPath} />\n <File.Import name={['MutationObserverOptions']} path={importPath} isTypeOnly />\n <Mutation\n name={mutation.name}\n clientName={client.name}\n typeName={mutation.typeName}\n typeSchemas={type.schemas}\n operation={operation}\n paramsCasing={options.paramsCasing}\n dataReturnType={options.client.dataReturnType}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n mutationKeyName={mutationKey.name}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, useApp } from '@kubb/react'\nimport { difference } from 'remeda'\nimport { InfiniteQuery, InfiniteQueryOptions, QueryKey } from '../components'\nimport type { PluginVueQuery } from '../types'\n\nexport const infiniteQueryGenerator = createReactGenerator<PluginVueQuery>({\n name: 'vue-infinite-query',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n pluginManager,\n } = useApp<PluginVueQuery>()\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager()\n\n const isQuery = typeof options.query === 'boolean' ? true : options.query?.methods.some((method) => operation.method === method)\n const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(\n (method) => operation.method === method,\n )\n const isInfinite = isQuery && !!options.infinite\n const importPath = options.query ? options.query.importPath : '@tanstack/vue-query'\n\n const query = {\n name: getName(operation, { type: 'function', prefix: 'use', suffix: 'infinite' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use', suffix: 'infinite' }),\n }\n\n const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])\n const client = {\n name: hasClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginKey: [pluginClientName],\n })\n : getName(operation, {\n type: 'function',\n suffix: 'infinite',\n }),\n file: getFile(operation, { pluginKey: [pluginClientName] }),\n }\n\n const queryOptions = {\n name: getName(operation, { type: 'function', suffix: 'InfiniteQueryOptions' }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'InfiniteQueryKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'InfiniteQueryKey' }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n }\n\n if (!isQuery || isMutation || !isInfinite) {\n return null\n }\n\n return (\n <File\n baseName={query.file.baseName}\n path={query.file.path}\n meta={query.file.meta}\n banner={getBanner({ oas, output })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={query.file.path} path={zod.file.path} />}\n <File.Import name={['unref']} path=\"vue\" />\n <File.Import name={['MaybeRef']} path=\"vue\" isTypeOnly />\n {!hasClientPlugin && <File.Import name={'client'} path={options.client.importPath} />}\n {hasClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n <File.Import name={['RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={query.file.path}\n path={type.file.path}\n isTypeOnly\n />\n <QueryKey\n name={queryKey.name}\n typeName={queryKey.typeName}\n operation={operation}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.queryKey}\n />\n {!hasClientPlugin && (\n <Client\n name={client.name}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n {options.infinite && (\n <>\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n <InfiniteQueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n typeSchemas={type.schemas}\n paramsType={options.paramsType}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType}\n cursorParam={options.infinite.cursorParam}\n initialPageParam={options.infinite.initialPageParam}\n queryParam={options.infinite.queryParam}\n />\n </>\n )}\n {options.infinite && (\n <>\n <File.Import name={['useInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'InfiniteQueryObserverOptions', 'UseInfiniteQueryReturnType']} path={importPath} isTypeOnly />\n <InfiniteQuery\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n operation={operation}\n dataReturnType={options.client.dataReturnType}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n />\n </>\n )}\n </File>\n )\n },\n})\n"]}