@kubb/plugin-react-query 3.0.0 → 3.0.1

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkEOG7AHFO_cjs = require('./chunk-EOG7AHFO.cjs');
3
+ var chunkFYBD7BZP_cjs = require('./chunk-FYBD7BZP.cjs');
4
4
  var path = require('path');
5
5
  var core = require('@kubb/core');
6
6
  var transformers = require('@kubb/core/transformers');
@@ -10,6 +10,7 @@ var hooks = require('@kubb/plugin-oas/hooks');
10
10
  var pluginTs = require('@kubb/plugin-ts');
11
11
  var react = require('@kubb/react');
12
12
  var jsxRuntime = require('@kubb/react/jsx-runtime');
13
+ var remeda = require('remeda');
13
14
 
14
15
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
16
 
@@ -57,7 +58,7 @@ var clientGenerator = pluginOas.createReactGenerator({
57
58
  }
58
59
  ),
59
60
  /* @__PURE__ */ jsxRuntime.jsx(
60
- chunkEOG7AHFO_cjs.Client,
61
+ chunkFYBD7BZP_cjs.Client,
61
62
  {
62
63
  name: client.name,
63
64
  baseURL: options.baseURL,
@@ -84,7 +85,7 @@ var operationsGenerator = pluginOas.createReactGenerator({
84
85
  } = react.useApp();
85
86
  const name = "operations";
86
87
  const file = pluginManager.getFile({ name, extname: ".ts", pluginKey: [pluginClientName] });
87
- return /* @__PURE__ */ jsxRuntime.jsx(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, banner: output?.banner, footer: output?.footer, children: /* @__PURE__ */ jsxRuntime.jsx(chunkEOG7AHFO_cjs.Operations, { name, operations }) });
88
+ return /* @__PURE__ */ jsxRuntime.jsx(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, banner: output?.banner, footer: output?.footer, children: /* @__PURE__ */ jsxRuntime.jsx(chunkFYBD7BZP_cjs.Operations, { name, operations }) });
88
89
  }
89
90
  });
90
91
  var groupedClientGenerator = pluginOas.createReactGenerator({
@@ -142,7 +143,7 @@ core.createPlugin((options) => {
142
143
  exclude = [],
143
144
  include,
144
145
  override = [],
145
- transformers: transformers2 = {},
146
+ transformers: transformers$1 = {},
146
147
  dataReturnType = "data",
147
148
  pathParamsType = "inline",
148
149
  paramsType = "inline",
@@ -180,7 +181,7 @@ core.createPlugin((options) => {
180
181
  resolveName(name, type) {
181
182
  const resolvedName = transformers.camelCase(name, { isFile: type === "file" });
182
183
  if (type) {
183
- return transformers2?.name?.(resolvedName, type) || resolvedName;
184
+ return transformers$1?.name?.(resolvedName, type) || resolvedName;
184
185
  }
185
186
  return resolvedName;
186
187
  },
@@ -232,6 +233,9 @@ var queryGenerator = pluginOas.createReactGenerator({
232
233
  } = react.useApp();
233
234
  const { getSchemas, getName, getFile } = hooks.useOperationManager();
234
235
  const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
236
+ const isMutation = remeda.difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(
237
+ (method) => operation.method === method
238
+ );
235
239
  const importPath = options.query ? options.query.importPath : "@tanstack/react-query";
236
240
  const query = {
237
241
  name: getName(operation, { type: "function", prefix: "use" }),
@@ -257,7 +261,7 @@ var queryGenerator = pluginOas.createReactGenerator({
257
261
  file: getFile(operation, { pluginKey: [pluginZod.pluginZodName] }),
258
262
  schemas: getSchemas(operation, { pluginKey: [pluginZod.pluginZodName], type: "function" })
259
263
  };
260
- if (!isQuery) {
264
+ if (!isQuery || isMutation) {
261
265
  return null;
262
266
  }
263
267
  return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: query.file.baseName, path: query.file.path, meta: query.file.meta, banner: output?.banner, footer: output?.footer, children: [
@@ -282,7 +286,7 @@ var queryGenerator = pluginOas.createReactGenerator({
282
286
  }
283
287
  ),
284
288
  /* @__PURE__ */ jsxRuntime.jsx(
285
- chunkEOG7AHFO_cjs.QueryKey,
289
+ chunkFYBD7BZP_cjs.QueryKey,
286
290
  {
287
291
  name: queryKey.name,
288
292
  typeName: queryKey.typeName,
@@ -293,7 +297,7 @@ var queryGenerator = pluginOas.createReactGenerator({
293
297
  }
294
298
  ),
295
299
  /* @__PURE__ */ jsxRuntime.jsx(
296
- chunkEOG7AHFO_cjs.Client,
300
+ chunkFYBD7BZP_cjs.Client,
297
301
  {
298
302
  name: client.name,
299
303
  isExportable: false,
@@ -310,7 +314,7 @@ var queryGenerator = pluginOas.createReactGenerator({
310
314
  ),
311
315
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["queryOptions"], path: importPath }),
312
316
  /* @__PURE__ */ jsxRuntime.jsx(
313
- chunkEOG7AHFO_cjs.QueryOptions,
317
+ chunkFYBD7BZP_cjs.QueryOptions,
314
318
  {
315
319
  name: queryOptions.name,
316
320
  clientName: client.name,
@@ -324,7 +328,7 @@ var queryGenerator = pluginOas.createReactGenerator({
324
328
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["useQuery"], path: importPath }),
325
329
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["QueryKey", "QueryObserverOptions", "UseQueryResult"], path: importPath, isTypeOnly: true }),
326
330
  /* @__PURE__ */ jsxRuntime.jsx(
327
- chunkEOG7AHFO_cjs.Query,
331
+ chunkFYBD7BZP_cjs.Query,
328
332
  {
329
333
  name: query.name,
330
334
  queryOptionsName: queryOptions.name,
@@ -350,8 +354,8 @@ var mutationGenerator = pluginOas.createReactGenerator({
350
354
  }
351
355
  } = react.useApp();
352
356
  const { getSchemas, getName, getFile } = hooks.useOperationManager();
353
- const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
354
- const isMutation = !isQuery && options.mutation && options.mutation.methods.some((method) => operation.method === method);
357
+ const isQuery = !!options.query && options.query?.methods.some((method) => operation.method === method);
358
+ const isMutation = !isQuery && remeda.difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some((method) => operation.method === method);
355
359
  const importPath = options.mutation ? options.mutation.importPath : "@tanstack/react-query";
356
360
  const mutation = {
357
361
  name: getName(operation, { type: "function", prefix: "use" }),
@@ -398,7 +402,7 @@ var mutationGenerator = pluginOas.createReactGenerator({
398
402
  }
399
403
  ),
400
404
  /* @__PURE__ */ jsxRuntime.jsx(
401
- chunkEOG7AHFO_cjs.MutationKey,
405
+ chunkFYBD7BZP_cjs.MutationKey,
402
406
  {
403
407
  name: mutationKey.name,
404
408
  typeName: mutationKey.typeName,
@@ -409,7 +413,7 @@ var mutationGenerator = pluginOas.createReactGenerator({
409
413
  }
410
414
  ),
411
415
  /* @__PURE__ */ jsxRuntime.jsx(
412
- chunkEOG7AHFO_cjs.Client,
416
+ chunkFYBD7BZP_cjs.Client,
413
417
  {
414
418
  name: client.name,
415
419
  isExportable: false,
@@ -428,7 +432,7 @@ var mutationGenerator = pluginOas.createReactGenerator({
428
432
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["useMutation"], path: importPath }),
429
433
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["UseMutationOptions"], path: importPath, isTypeOnly: true }),
430
434
  /* @__PURE__ */ jsxRuntime.jsx(
431
- chunkEOG7AHFO_cjs.Mutation,
435
+ chunkFYBD7BZP_cjs.Mutation,
432
436
  {
433
437
  name: mutation.name,
434
438
  clientName: client.name,
@@ -454,8 +458,11 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
454
458
  }
455
459
  } = react.useApp();
456
460
  const { getSchemas, getName, getFile } = hooks.useOperationManager();
457
- const isQuery = typeof options.query === "boolean" ? options.query : !!options.query.methods?.some((method) => operation.method === method);
458
- const isInfinite = isQuery && !!options.infinite;
461
+ const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
462
+ const isMutation = remeda.difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(
463
+ (method) => operation.method === method
464
+ );
465
+ const isInfinite = !!options.infinite;
459
466
  const importPath = options.query ? options.query.importPath : "@tanstack/react-query";
460
467
  const query = {
461
468
  name: getName(operation, { type: "function", prefix: "use", suffix: "infinite" }),
@@ -481,7 +488,7 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
481
488
  file: getFile(operation, { pluginKey: [pluginZod.pluginZodName] }),
482
489
  schemas: getSchemas(operation, { pluginKey: [pluginZod.pluginZodName], type: "function" })
483
490
  };
484
- if (!isQuery || !isInfinite) {
491
+ if (!isQuery || isMutation || !isInfinite) {
485
492
  return null;
486
493
  }
487
494
  return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: query.file.baseName, path: query.file.path, meta: query.file.meta, banner: output?.banner, footer: output?.footer, children: [
@@ -506,7 +513,7 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
506
513
  }
507
514
  ),
508
515
  /* @__PURE__ */ jsxRuntime.jsx(
509
- chunkEOG7AHFO_cjs.QueryKey,
516
+ chunkFYBD7BZP_cjs.QueryKey,
510
517
  {
511
518
  name: queryKey.name,
512
519
  typeName: queryKey.typeName,
@@ -517,7 +524,7 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
517
524
  }
518
525
  ),
519
526
  /* @__PURE__ */ jsxRuntime.jsx(
520
- chunkEOG7AHFO_cjs.Client,
527
+ chunkFYBD7BZP_cjs.Client,
521
528
  {
522
529
  name: client.name,
523
530
  isExportable: false,
@@ -533,9 +540,10 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
533
540
  }
534
541
  ),
535
542
  options.infinite && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
543
+ /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["InfiniteData"], isTypeOnly: true, path: importPath }),
536
544
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["infiniteQueryOptions"], path: importPath }),
537
545
  /* @__PURE__ */ jsxRuntime.jsx(
538
- chunkEOG7AHFO_cjs.InfiniteQueryOptions,
546
+ chunkFYBD7BZP_cjs.InfiniteQueryOptions,
539
547
  {
540
548
  name: queryOptions.name,
541
549
  clientName: client.name,
@@ -554,7 +562,7 @@ var infiniteQueryGenerator = pluginOas.createReactGenerator({
554
562
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["useInfiniteQuery"], path: importPath }),
555
563
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["QueryKey", "InfiniteQueryObserverOptions", "UseInfiniteQueryResult"], path: importPath, isTypeOnly: true }),
556
564
  /* @__PURE__ */ jsxRuntime.jsx(
557
- chunkEOG7AHFO_cjs.InfiniteQuery,
565
+ chunkFYBD7BZP_cjs.InfiniteQuery,
558
566
  {
559
567
  name: query.name,
560
568
  queryOptionsName: queryOptions.name,
@@ -580,8 +588,11 @@ var suspenseQueryGenerator = pluginOas.createReactGenerator({
580
588
  }
581
589
  } = react.useApp();
582
590
  const { getSchemas, getName, getFile } = hooks.useOperationManager();
583
- const isQuery = typeof options.query === "boolean" ? options.query : !!options.query.methods?.some((method) => operation.method === method);
584
- const isSuspense = isQuery && !!options.suspense;
591
+ const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
592
+ const isMutation = remeda.difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(
593
+ (method) => operation.method === method
594
+ );
595
+ const isSuspense = !!options.suspense;
585
596
  const importPath = options.query ? options.query.importPath : "@tanstack/react-query";
586
597
  const query = {
587
598
  name: getName(operation, { type: "function", prefix: "use", suffix: "suspense" }),
@@ -607,7 +618,7 @@ var suspenseQueryGenerator = pluginOas.createReactGenerator({
607
618
  file: getFile(operation, { pluginKey: [pluginZod.pluginZodName] }),
608
619
  schemas: getSchemas(operation, { pluginKey: [pluginZod.pluginZodName], type: "function" })
609
620
  };
610
- if (!isQuery || !isSuspense) {
621
+ if (!isQuery || isMutation || !isSuspense) {
611
622
  return null;
612
623
  }
613
624
  return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: query.file.baseName, path: query.file.path, meta: query.file.meta, banner: output?.banner, footer: output?.footer, children: [
@@ -632,7 +643,7 @@ var suspenseQueryGenerator = pluginOas.createReactGenerator({
632
643
  }
633
644
  ),
634
645
  /* @__PURE__ */ jsxRuntime.jsx(
635
- chunkEOG7AHFO_cjs.QueryKey,
646
+ chunkFYBD7BZP_cjs.QueryKey,
636
647
  {
637
648
  name: queryKey.name,
638
649
  typeName: queryKey.typeName,
@@ -643,7 +654,7 @@ var suspenseQueryGenerator = pluginOas.createReactGenerator({
643
654
  }
644
655
  ),
645
656
  /* @__PURE__ */ jsxRuntime.jsx(
646
- chunkEOG7AHFO_cjs.Client,
657
+ chunkFYBD7BZP_cjs.Client,
647
658
  {
648
659
  name: client.name,
649
660
  isExportable: false,
@@ -660,7 +671,7 @@ var suspenseQueryGenerator = pluginOas.createReactGenerator({
660
671
  ),
661
672
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["queryOptions"], path: importPath }),
662
673
  /* @__PURE__ */ jsxRuntime.jsx(
663
- chunkEOG7AHFO_cjs.QueryOptions,
674
+ chunkFYBD7BZP_cjs.QueryOptions,
664
675
  {
665
676
  name: queryOptions.name,
666
677
  clientName: client.name,
@@ -674,7 +685,7 @@ var suspenseQueryGenerator = pluginOas.createReactGenerator({
674
685
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["useSuspenseQuery"], path: importPath }),
675
686
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["QueryKey", "UseSuspenseQueryOptions", "UseSuspenseQueryResult"], path: importPath, isTypeOnly: true }),
676
687
  /* @__PURE__ */ jsxRuntime.jsx(
677
- chunkEOG7AHFO_cjs.SuspenseQuery,
688
+ chunkFYBD7BZP_cjs.SuspenseQuery,
678
689
  {
679
690
  name: query.name,
680
691
  queryOptionsName: queryOptions.name,
@@ -696,5 +707,5 @@ exports.infiniteQueryGenerator = infiniteQueryGenerator;
696
707
  exports.mutationGenerator = mutationGenerator;
697
708
  exports.queryGenerator = queryGenerator;
698
709
  exports.suspenseQueryGenerator = suspenseQueryGenerator;
699
- //# sourceMappingURL=chunk-NBC6BPMV.cjs.map
700
- //# sourceMappingURL=chunk-NBC6BPMV.cjs.map
710
+ //# sourceMappingURL=chunk-WMQRQT7P.cjs.map
711
+ //# sourceMappingURL=chunk-WMQRQT7P.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","../src/generators/suspenseQueryGenerator.tsx"],"names":["createReactGenerator","useApp","useOperationManager","pluginTsName","pluginZodName","File","jsx","Client","Operations","camelCase","jsxs","Function","createPlugin","transformers","pluginOasName","options","path","FileManager","PluginManager","baseURL","OperationGenerator","difference","QueryKey","QueryOptions","Fragment","Query","MutationKey","Mutation","InfiniteQueryOptions","InfiniteQuery","SuspenseQuery"],"mappings":"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","file":"chunk-WMQRQT7P.cjs","sourcesContent":["import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, useApp } from '@kubb/react'\nimport { Client } from '../components/Client'\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 { getSchemas, getName, getFile } = useOperationManager()\n\n const client = {\n name: getName(operation, { type: 'function' }),\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 baseName={client.file.baseName} path={client.file.path} meta={client.file.meta} banner={output?.banner} footer={output?.footer}>\n <File.Import name={'client'} path={options.importPath} />\n <File.Import name={['RequestConfig']} 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 <Client\n name={client.name}\n baseURL={options.baseURL}\n dataReturnType={options.dataReturnType}\n pathParamsType={options.pathParamsType}\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 { pluginClientName } from '@kubb/plugin-client'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { File, useApp } from '@kubb/react'\nimport { Operations } from '../components/Operations'\nimport type { PluginClient } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginClient>({\n name: 'client',\n Operations({ operations }) {\n const {\n pluginManager,\n plugin: {\n options: { output },\n },\n } = useApp<PluginClient>()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey: [pluginClientName] })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={output?.banner} footer={output?.footer}>\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'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\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 },\n } = useApp<PluginClient>()\n const { getName, getFile } = useOperationManager()\n\n const controllers = operations.reduce(\n (acc, operation) => {\n if (options.group?.type === 'tag') {\n const tag = operation.getTags().at(0)?.name\n const name = tag ? options.group?.name?.({ group: camelCase(tag) }) : undefined\n\n if (!tag || !name) {\n return acc\n }\n\n const file = pluginManager.getFile({\n name,\n extname: '.ts',\n pluginKey: [pluginClientName],\n options: { tag },\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 key={file.path} baseName={file.baseName} path={file.path} meta={file.meta} banner={options.output?.banner} footer={options.output?.footer}>\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 generators = [clientGenerator, group ? groupedClientGenerator : undefined, operations ? operationsGenerator : undefined].filter(Boolean),\n importPath = '@kubb/plugin-client/client',\n parser = 'client',\n } = options\n\n return {\n name: pluginClientName,\n options: {\n output,\n group,\n parser,\n dataReturnType,\n importPath,\n paramsType,\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 (options?.tag && group?.type === 'tag') {\n const groupName: Group['name'] = group?.name ? group.name : (ctx) => `${ctx.group}Controller`\n\n return path.resolve(root, output.path, groupName({ group: camelCase(options.tag) }), baseName)\n }\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 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 { useOperationManager } from '@kubb/plugin-oas/hooks'\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 { PluginReactQuery } from '../types'\n\nexport const queryGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-query',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n } = useApp<PluginReactQuery>()\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\n const importPath = options.query ? options.query.importPath : '@tanstack/react-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 client = {\n name: getName(operation, { type: 'function', 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 baseName={query.file.baseName} path={query.file.path} meta={query.file.meta} banner={output?.banner} footer={output?.footer}>\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={query.file.path} path={zod.file.path} />}\n <File.Import name={'client'} path={options.client.importPath} />\n <File.Import name={['RequestConfig']} 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 pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.queryKey}\n />\n <Client\n name={client.name}\n isExportable={false}\n isIndexable={false}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n <File.Import name={['queryOptions']} path={importPath} />\n <QueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n typeSchemas={type.schemas}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n />\n {options.query && (\n <>\n <File.Import name={['useQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryObserverOptions', 'UseQueryResult']} path={importPath} isTypeOnly />\n <Query\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\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 { useOperationManager } from '@kubb/plugin-oas/hooks'\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 { PluginReactQuery } from '../types'\n\nexport const mutationGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-query',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n } = useApp<PluginReactQuery>()\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/react-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 client = {\n name: getName(operation, { type: 'function', 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 baseName={mutation.file.baseName} path={mutation.file.path} meta={mutation.file.meta} banner={output?.banner} footer={output?.footer}>\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={mutation.file.path} path={zod.file.path} />}\n <File.Import name={'client'} path={options.client.importPath} />\n <File.Import name={['RequestConfig', '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={mutation.file.path}\n path={type.file.path}\n isTypeOnly\n />\n\n <MutationKey\n name={mutationKey.name}\n typeName={mutationKey.typeName}\n operation={operation}\n pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.mutationKey}\n />\n\n <Client\n name={client.name}\n isExportable={false}\n isIndexable={false}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n {options.mutation && (\n <>\n <File.Import name={['useMutation']} path={importPath} />\n <File.Import name={['UseMutationOptions']} 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 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 { useOperationManager } from '@kubb/plugin-oas/hooks'\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 { PluginReactQuery } from '../types'\n\nexport const infiniteQueryGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-infinite-query',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n } = useApp<PluginReactQuery>()\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 = !!options.infinite\n\n const importPath = options.query ? options.query.importPath : '@tanstack/react-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 client = {\n name: getName(operation, { type: 'function', 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 baseName={query.file.baseName} path={query.file.path} meta={query.file.meta} banner={output?.banner} footer={output?.footer}>\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={query.file.path} path={zod.file.path} />}\n <File.Import name={'client'} path={options.client.importPath} />\n <File.Import name={['RequestConfig']} 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 pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.queryKey}\n />\n <Client\n name={client.name}\n isExportable={false}\n isIndexable={false}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\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 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', 'UseInfiniteQueryResult']} path={importPath} isTypeOnly />\n <InfiniteQuery\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\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 { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, useApp } from '@kubb/react'\nimport { difference } from 'remeda'\nimport { QueryKey, QueryOptions, SuspenseQuery } from '../components'\nimport type { PluginReactQuery } from '../types'\n\nexport const suspenseQueryGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-suspense-query',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n } = useApp<PluginReactQuery>()\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\n const isSuspense = !!options.suspense\n\n const importPath = options.query ? options.query.importPath : '@tanstack/react-query'\n\n const query = {\n name: getName(operation, { type: 'function', prefix: 'use', suffix: 'suspense' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use', suffix: 'suspense' }),\n }\n\n const client = {\n name: getName(operation, { type: 'function', pluginKey: [pluginClientName] }),\n }\n\n const queryOptions = {\n name: getName(operation, { type: 'function', suffix: 'SuspenseQueryOptions' }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'SuspenseQueryKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'SuspenseQueryKey' }),\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 || !isSuspense) {\n return null\n }\n\n return (\n <File baseName={query.file.baseName} path={query.file.path} meta={query.file.meta} banner={output?.banner} footer={output?.footer}>\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={query.file.path} path={zod.file.path} />}\n <File.Import name={'client'} path={options.client.importPath} />\n <File.Import name={['RequestConfig']} 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 pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.queryKey}\n />\n\n <Client\n name={client.name}\n isExportable={false}\n isIndexable={false}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n <File.Import name={['queryOptions']} path={importPath} />\n <QueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n typeSchemas={type.schemas}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n />\n {options.suspense && (\n <>\n <File.Import name={['useSuspenseQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'UseSuspenseQueryOptions', 'UseSuspenseQueryResult']} path={importPath} isTypeOnly />\n <SuspenseQuery\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\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"]}
@@ -1,4 +1,4 @@
1
- import { Client, Operations, QueryKey, QueryOptions, Query, MutationKey, Mutation, InfiniteQueryOptions, InfiniteQuery, SuspenseQuery } from './chunk-EY5KE7R7.js';
1
+ import { Client, Operations, QueryKey, QueryOptions, Query, MutationKey, Mutation, InfiniteQueryOptions, InfiniteQuery, SuspenseQuery } from './chunk-ARL3PQR3.js';
2
2
  import path from 'node:path';
3
3
  import { createPlugin, FileManager, PluginManager } from '@kubb/core';
4
4
  import { camelCase } from '@kubb/core/transformers';
@@ -8,6 +8,7 @@ import { useOperationManager } from '@kubb/plugin-oas/hooks';
8
8
  import { pluginTsName } from '@kubb/plugin-ts';
9
9
  import { useApp, File, Function } from '@kubb/react';
10
10
  import { jsxs, jsx, Fragment } from '@kubb/react/jsx-runtime';
11
+ import { difference } from 'remeda';
11
12
 
12
13
  var clientGenerator = createReactGenerator({
13
14
  name: "client",
@@ -136,7 +137,7 @@ createPlugin((options) => {
136
137
  exclude = [],
137
138
  include,
138
139
  override = [],
139
- transformers: transformers2 = {},
140
+ transformers = {},
140
141
  dataReturnType = "data",
141
142
  pathParamsType = "inline",
142
143
  paramsType = "inline",
@@ -174,7 +175,7 @@ createPlugin((options) => {
174
175
  resolveName(name, type) {
175
176
  const resolvedName = camelCase(name, { isFile: type === "file" });
176
177
  if (type) {
177
- return transformers2?.name?.(resolvedName, type) || resolvedName;
178
+ return transformers?.name?.(resolvedName, type) || resolvedName;
178
179
  }
179
180
  return resolvedName;
180
181
  },
@@ -226,6 +227,9 @@ var queryGenerator = createReactGenerator({
226
227
  } = useApp();
227
228
  const { getSchemas, getName, getFile } = useOperationManager();
228
229
  const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
230
+ const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(
231
+ (method) => operation.method === method
232
+ );
229
233
  const importPath = options.query ? options.query.importPath : "@tanstack/react-query";
230
234
  const query = {
231
235
  name: getName(operation, { type: "function", prefix: "use" }),
@@ -251,7 +255,7 @@ var queryGenerator = createReactGenerator({
251
255
  file: getFile(operation, { pluginKey: [pluginZodName] }),
252
256
  schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: "function" })
253
257
  };
254
- if (!isQuery) {
258
+ if (!isQuery || isMutation) {
255
259
  return null;
256
260
  }
257
261
  return /* @__PURE__ */ jsxs(File, { baseName: query.file.baseName, path: query.file.path, meta: query.file.meta, banner: output?.banner, footer: output?.footer, children: [
@@ -344,8 +348,8 @@ var mutationGenerator = createReactGenerator({
344
348
  }
345
349
  } = useApp();
346
350
  const { getSchemas, getName, getFile } = useOperationManager();
347
- const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
348
- const isMutation = !isQuery && options.mutation && options.mutation.methods.some((method) => operation.method === method);
351
+ const isQuery = !!options.query && options.query?.methods.some((method) => operation.method === method);
352
+ const isMutation = !isQuery && difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some((method) => operation.method === method);
349
353
  const importPath = options.mutation ? options.mutation.importPath : "@tanstack/react-query";
350
354
  const mutation = {
351
355
  name: getName(operation, { type: "function", prefix: "use" }),
@@ -448,8 +452,11 @@ var infiniteQueryGenerator = createReactGenerator({
448
452
  }
449
453
  } = useApp();
450
454
  const { getSchemas, getName, getFile } = useOperationManager();
451
- const isQuery = typeof options.query === "boolean" ? options.query : !!options.query.methods?.some((method) => operation.method === method);
452
- const isInfinite = isQuery && !!options.infinite;
455
+ const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
456
+ const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(
457
+ (method) => operation.method === method
458
+ );
459
+ const isInfinite = !!options.infinite;
453
460
  const importPath = options.query ? options.query.importPath : "@tanstack/react-query";
454
461
  const query = {
455
462
  name: getName(operation, { type: "function", prefix: "use", suffix: "infinite" }),
@@ -475,7 +482,7 @@ var infiniteQueryGenerator = createReactGenerator({
475
482
  file: getFile(operation, { pluginKey: [pluginZodName] }),
476
483
  schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: "function" })
477
484
  };
478
- if (!isQuery || !isInfinite) {
485
+ if (!isQuery || isMutation || !isInfinite) {
479
486
  return null;
480
487
  }
481
488
  return /* @__PURE__ */ jsxs(File, { baseName: query.file.baseName, path: query.file.path, meta: query.file.meta, banner: output?.banner, footer: output?.footer, children: [
@@ -527,6 +534,7 @@ var infiniteQueryGenerator = createReactGenerator({
527
534
  }
528
535
  ),
529
536
  options.infinite && /* @__PURE__ */ jsxs(Fragment, { children: [
537
+ /* @__PURE__ */ jsx(File.Import, { name: ["InfiniteData"], isTypeOnly: true, path: importPath }),
530
538
  /* @__PURE__ */ jsx(File.Import, { name: ["infiniteQueryOptions"], path: importPath }),
531
539
  /* @__PURE__ */ jsx(
532
540
  InfiniteQueryOptions,
@@ -574,8 +582,11 @@ var suspenseQueryGenerator = createReactGenerator({
574
582
  }
575
583
  } = useApp();
576
584
  const { getSchemas, getName, getFile } = useOperationManager();
577
- const isQuery = typeof options.query === "boolean" ? options.query : !!options.query.methods?.some((method) => operation.method === method);
578
- const isSuspense = isQuery && !!options.suspense;
585
+ const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
586
+ const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(
587
+ (method) => operation.method === method
588
+ );
589
+ const isSuspense = !!options.suspense;
579
590
  const importPath = options.query ? options.query.importPath : "@tanstack/react-query";
580
591
  const query = {
581
592
  name: getName(operation, { type: "function", prefix: "use", suffix: "suspense" }),
@@ -601,7 +612,7 @@ var suspenseQueryGenerator = createReactGenerator({
601
612
  file: getFile(operation, { pluginKey: [pluginZodName] }),
602
613
  schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: "function" })
603
614
  };
604
- if (!isQuery || !isSuspense) {
615
+ if (!isQuery || isMutation || !isSuspense) {
605
616
  return null;
606
617
  }
607
618
  return /* @__PURE__ */ jsxs(File, { baseName: query.file.baseName, path: query.file.path, meta: query.file.meta, banner: output?.banner, footer: output?.footer, children: [
@@ -687,5 +698,5 @@ var suspenseQueryGenerator = createReactGenerator({
687
698
  });
688
699
 
689
700
  export { infiniteQueryGenerator, mutationGenerator, queryGenerator, suspenseQueryGenerator };
690
- //# sourceMappingURL=chunk-NZKAIPYC.js.map
691
- //# sourceMappingURL=chunk-NZKAIPYC.js.map
701
+ //# sourceMappingURL=chunk-WYNK6OE2.js.map
702
+ //# sourceMappingURL=chunk-WYNK6OE2.js.map