@kubb/plugin-react-query 5.0.0-alpha.29 → 5.0.0-alpha.30

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,5 +1,5 @@
1
1
  import { t as __name } from "./chunk--u3MIqq1.js";
2
- import { a as MutationKey, i as QueryKey, r as PluginReactQuery, t as Infinite } from "./types-BucRSPY5.js";
2
+ import { a as MutationKey, i as QueryKey, r as PluginReactQuery, t as Infinite } from "./types-DMLrT2SW.js";
3
3
  import { OperationSchemas } from "@kubb/plugin-oas";
4
4
  import { Operation } from "@kubb/oas";
5
5
  import { FunctionParams } from "@kubb/react-fabric";
@@ -302,6 +302,7 @@ const infiniteQueryGenerator = createReactGenerator({
302
302
  Operation({ config, operation, generator, plugin }) {
303
303
  const { options, options: { output } } = plugin;
304
304
  const driver = useDriver();
305
+ const root = path.resolve(config.root, config.output.path);
305
306
  const oas = useOas();
306
307
  const { getSchemas, getName, getFile } = useOperationManager(generator);
307
308
  const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
@@ -410,7 +411,7 @@ const infiniteQueryGenerator = createReactGenerator({
410
411
  !shouldUseClientPlugin && /* @__PURE__ */ jsx(File.Import, {
411
412
  name: ["fetch"],
412
413
  root: query.file.path,
413
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts")
414
+ path: path.resolve(root, ".kubb/fetch.ts")
414
415
  }),
415
416
  /* @__PURE__ */ jsx(File.Import, {
416
417
  name: [
@@ -419,13 +420,13 @@ const infiniteQueryGenerator = createReactGenerator({
419
420
  "ResponseErrorConfig"
420
421
  ],
421
422
  root: query.file.path,
422
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
423
+ path: path.resolve(root, ".kubb/fetch.ts"),
423
424
  isTypeOnly: true
424
425
  }),
425
426
  options.client.dataReturnType === "full" && /* @__PURE__ */ jsx(File.Import, {
426
427
  name: ["ResponseConfig"],
427
428
  root: query.file.path,
428
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
429
+ path: path.resolve(root, ".kubb/fetch.ts"),
429
430
  isTypeOnly: true
430
431
  })
431
432
  ] }),
@@ -437,7 +438,7 @@ const infiniteQueryGenerator = createReactGenerator({
437
438
  !shouldUseClientPlugin && /* @__PURE__ */ jsx(File.Import, {
438
439
  name: ["buildFormData"],
439
440
  root: query.file.path,
440
- path: path.resolve(config.root, config.output.path, ".kubb/config.ts")
441
+ path: path.resolve(root, ".kubb/config.ts")
441
442
  }),
442
443
  /* @__PURE__ */ jsx(File.Import, {
443
444
  name: [
@@ -545,6 +546,7 @@ const mutationGenerator = createReactGenerator({
545
546
  Operation({ config, plugin, operation, generator }) {
546
547
  const { options, options: { output } } = plugin;
547
548
  const driver = useDriver();
549
+ const root = path.resolve(config.root, config.output.path);
548
550
  const oas = useOas();
549
551
  const { getSchemas, getName, getFile } = useOperationManager(generator);
550
552
  const isQuery = !!options.query && options.query?.methods.some((method) => operation.method === method);
@@ -637,7 +639,7 @@ const mutationGenerator = createReactGenerator({
637
639
  !shouldUseClientPlugin && /* @__PURE__ */ jsx(File.Import, {
638
640
  name: ["fetch"],
639
641
  root: mutation.file.path,
640
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts")
642
+ path: path.resolve(root, ".kubb/fetch.ts")
641
643
  }),
642
644
  /* @__PURE__ */ jsx(File.Import, {
643
645
  name: [
@@ -646,13 +648,13 @@ const mutationGenerator = createReactGenerator({
646
648
  "ResponseErrorConfig"
647
649
  ],
648
650
  root: mutation.file.path,
649
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
651
+ path: path.resolve(root, ".kubb/fetch.ts"),
650
652
  isTypeOnly: true
651
653
  }),
652
654
  options.client.dataReturnType === "full" && /* @__PURE__ */ jsx(File.Import, {
653
655
  name: ["ResponseConfig"],
654
656
  root: mutation.file.path,
655
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
657
+ path: path.resolve(root, ".kubb/fetch.ts"),
656
658
  isTypeOnly: true
657
659
  })
658
660
  ] }),
@@ -664,7 +666,7 @@ const mutationGenerator = createReactGenerator({
664
666
  !shouldUseClientPlugin && /* @__PURE__ */ jsx(File.Import, {
665
667
  name: ["buildFormData"],
666
668
  root: mutation.file.path,
667
- path: path.resolve(config.root, config.output.path, ".kubb/config.ts")
669
+ path: path.resolve(root, ".kubb/config.ts")
668
670
  }),
669
671
  options.customOptions && /* @__PURE__ */ jsx(File.Import, {
670
672
  name: [options.customOptions.name],
@@ -756,6 +758,7 @@ const queryGenerator = createReactGenerator({
756
758
  Operation({ config, plugin, operation, generator }) {
757
759
  const { options, options: { output } } = plugin;
758
760
  const driver = useDriver();
761
+ const root = path.resolve(config.root, config.output.path);
759
762
  const oas = useOas();
760
763
  const { getSchemas, getName, getFile } = useOperationManager(generator);
761
764
  const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
@@ -848,7 +851,7 @@ const queryGenerator = createReactGenerator({
848
851
  !shouldUseClientPlugin && /* @__PURE__ */ jsx(File.Import, {
849
852
  name: ["fetch"],
850
853
  root: query.file.path,
851
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts")
854
+ path: path.resolve(root, ".kubb/fetch.ts")
852
855
  }),
853
856
  /* @__PURE__ */ jsx(File.Import, {
854
857
  name: [
@@ -857,13 +860,13 @@ const queryGenerator = createReactGenerator({
857
860
  "ResponseErrorConfig"
858
861
  ],
859
862
  root: query.file.path,
860
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
863
+ path: path.resolve(root, ".kubb/fetch.ts"),
861
864
  isTypeOnly: true
862
865
  }),
863
866
  options.client.dataReturnType === "full" && /* @__PURE__ */ jsx(File.Import, {
864
867
  name: ["ResponseConfig"],
865
868
  root: query.file.path,
866
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
869
+ path: path.resolve(root, ".kubb/fetch.ts"),
867
870
  isTypeOnly: true
868
871
  })
869
872
  ] }),
@@ -875,7 +878,7 @@ const queryGenerator = createReactGenerator({
875
878
  !shouldUseClientPlugin && /* @__PURE__ */ jsx(File.Import, {
876
879
  name: ["buildFormData"],
877
880
  root: query.file.path,
878
- path: path.resolve(config.root, config.output.path, ".kubb/config.ts")
881
+ path: path.resolve(root, ".kubb/config.ts")
879
882
  }),
880
883
  options.customOptions && /* @__PURE__ */ jsx(File.Import, {
881
884
  name: [options.customOptions.name],
@@ -970,6 +973,7 @@ const suspenseInfiniteQueryGenerator = createReactGenerator({
970
973
  Operation({ config, operation, generator, plugin }) {
971
974
  const { options, options: { output } } = plugin;
972
975
  const driver = useDriver();
976
+ const root = path.resolve(config.root, config.output.path);
973
977
  const oas = useOas();
974
978
  const { getSchemas, getName, getFile } = useOperationManager(generator);
975
979
  const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
@@ -1071,7 +1075,7 @@ const suspenseInfiniteQueryGenerator = createReactGenerator({
1071
1075
  !shouldUseClientPlugin && /* @__PURE__ */ jsx(File.Import, {
1072
1076
  name: ["fetch"],
1073
1077
  root: query.file.path,
1074
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts")
1078
+ path: path.resolve(root, ".kubb/fetch.ts")
1075
1079
  }),
1076
1080
  /* @__PURE__ */ jsx(File.Import, {
1077
1081
  name: [
@@ -1080,13 +1084,13 @@ const suspenseInfiniteQueryGenerator = createReactGenerator({
1080
1084
  "ResponseErrorConfig"
1081
1085
  ],
1082
1086
  root: query.file.path,
1083
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
1087
+ path: path.resolve(root, ".kubb/fetch.ts"),
1084
1088
  isTypeOnly: true
1085
1089
  }),
1086
1090
  options.client.dataReturnType === "full" && /* @__PURE__ */ jsx(File.Import, {
1087
1091
  name: ["ResponseConfig"],
1088
1092
  root: query.file.path,
1089
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
1093
+ path: path.resolve(root, ".kubb/fetch.ts"),
1090
1094
  isTypeOnly: true
1091
1095
  })
1092
1096
  ] }),
@@ -1098,7 +1102,7 @@ const suspenseInfiniteQueryGenerator = createReactGenerator({
1098
1102
  !shouldUseClientPlugin && /* @__PURE__ */ jsx(File.Import, {
1099
1103
  name: ["buildFormData"],
1100
1104
  root: query.file.path,
1101
- path: path.resolve(config.root, config.output.path, ".kubb/config.ts")
1105
+ path: path.resolve(root, ".kubb/config.ts")
1102
1106
  }),
1103
1107
  options.customOptions && /* @__PURE__ */ jsx(File.Import, {
1104
1108
  name: [options.customOptions.name],
@@ -1206,6 +1210,7 @@ const suspenseQueryGenerator = createReactGenerator({
1206
1210
  Operation({ config, operation, generator, plugin }) {
1207
1211
  const { options, options: { output } } = plugin;
1208
1212
  const driver = useDriver();
1213
+ const root = path.resolve(config.root, config.output.path);
1209
1214
  const oas = useOas();
1210
1215
  const { getSchemas, getName, getFile } = useOperationManager(generator);
1211
1216
  const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
@@ -1306,7 +1311,7 @@ const suspenseQueryGenerator = createReactGenerator({
1306
1311
  !shouldUseClientPlugin && /* @__PURE__ */ jsx(File.Import, {
1307
1312
  name: ["fetch"],
1308
1313
  root: query.file.path,
1309
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts")
1314
+ path: path.resolve(root, ".kubb/fetch.ts")
1310
1315
  }),
1311
1316
  /* @__PURE__ */ jsx(File.Import, {
1312
1317
  name: [
@@ -1315,13 +1320,13 @@ const suspenseQueryGenerator = createReactGenerator({
1315
1320
  "ResponseErrorConfig"
1316
1321
  ],
1317
1322
  root: query.file.path,
1318
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
1323
+ path: path.resolve(root, ".kubb/fetch.ts"),
1319
1324
  isTypeOnly: true
1320
1325
  }),
1321
1326
  options.client.dataReturnType === "full" && /* @__PURE__ */ jsx(File.Import, {
1322
1327
  name: ["ResponseConfig"],
1323
1328
  root: query.file.path,
1324
- path: path.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
1329
+ path: path.resolve(root, ".kubb/fetch.ts"),
1325
1330
  isTypeOnly: true
1326
1331
  })
1327
1332
  ] }),
@@ -1333,7 +1338,7 @@ const suspenseQueryGenerator = createReactGenerator({
1333
1338
  !shouldUseClientPlugin && /* @__PURE__ */ jsx(File.Import, {
1334
1339
  name: ["buildFormData"],
1335
1340
  root: query.file.path,
1336
- path: path.resolve(config.root, config.output.path, ".kubb/config.ts")
1341
+ path: path.resolve(root, ".kubb/config.ts")
1337
1342
  }),
1338
1343
  options.customOptions && /* @__PURE__ */ jsx(File.Import, {
1339
1344
  name: [options.customOptions.name],
@@ -1423,4 +1428,4 @@ const suspenseQueryGenerator = createReactGenerator({
1423
1428
  //#endregion
1424
1429
  export { infiniteQueryGenerator as a, mutationGenerator as i, suspenseInfiniteQueryGenerator as n, hookOptionsGenerator as o, queryGenerator as r, customHookOptionsFileGenerator as s, suspenseQueryGenerator as t };
1425
1430
 
1426
- //# sourceMappingURL=generators-BYwfalV0.js.map
1431
+ //# sourceMappingURL=generators-BZKMuZRH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generators-BZKMuZRH.js","names":["Client","Client","Client","Client","Client"],"sources":["../src/generators/customHookOptionsFileGenerator.tsx","../src/generators/hookOptionsGenerator.tsx","../src/generators/infiniteQueryGenerator.tsx","../src/generators/mutationGenerator.tsx","../src/generators/queryGenerator.tsx","../src/generators/suspenseInfiniteQueryGenerator.tsx","../src/generators/suspenseQueryGenerator.tsx"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { useDriver } from '@kubb/core/hooks'\nimport type { Operation } from '@kubb/oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, Function } from '@kubb/react-fabric'\nimport type { PluginReactQuery } from '../types'\n\nexport const customHookOptionsFileGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-query-custom-hook-options-file',\n Operations({ operations, generator, plugin, config }) {\n const {\n options,\n options: { output },\n name: pluginName,\n } = plugin\n const driver = useDriver()\n\n const { getFile } = useOperationManager(generator)\n\n if (!options.customOptions) {\n return null\n }\n\n const override = output.override ?? config.output.override ?? false\n const { importPath, name } = options.customOptions\n\n const root = path.resolve(config.root, config.output.path)\n\n const reactQueryImportPath = options.query ? options.query.importPath : '@tanstack/react-query'\n\n const getHookFilePath = (operations: Operation[]) => {\n const firstOperation = operations[0]\n if (firstOperation != null) {\n // Get the file of the first generated hook\n return getFile(firstOperation, { prefix: 'use' }).path\n }\n // Get the index file of the hooks directory\n return driver.getFile({ name: 'index', extname: '.ts', pluginName }).path\n }\n\n const ensureExtension = (filePath: string, extname: string) => {\n if (path.extname(filePath) === '') {\n return filePath + extname\n }\n return filePath\n }\n\n const getExternalFile = (filePath: string, rootPath: string) => {\n const actualFilePath = ensureExtension(filePath, '.ts')\n return {\n baseName: path.basename(actualFilePath) as `${string}.${string}`,\n name: path.basename(actualFilePath, path.extname(actualFilePath)),\n path: path.resolve(rootPath, actualFilePath),\n }\n }\n\n const basePath = path.dirname(getHookFilePath(operations))\n const file = getExternalFile(importPath, basePath)\n\n if (fs.existsSync(file.path) && !override) {\n return null\n }\n\n return (\n <File baseName={file.baseName} path={file.path}>\n <File.Import name={['QueryClient']} path={reactQueryImportPath} isTypeOnly />\n <File.Import name={['useQueryClient']} path={reactQueryImportPath} />\n <File.Import name={['HookOptions']} root={file.path} path={path.resolve(root, './index.ts')} />\n <File.Source name={file.name} isExportable isIndexable>\n <Function name=\"getCustomHookOptions\" params=\"{ queryClient }: { queryClient: QueryClient }\" returnType=\"Partial<HookOptions>\">\n {`return {\n // TODO: Define custom hook options here\n // Example:\n // useUpdatePetHook: {\n // onSuccess: () => {\n // void queryClient.invalidateQueries({ queryKey: ['pet'] })\n // }\n // }\n }`}\n </Function>\n <Function\n name={name}\n generics=\"T extends keyof HookOptions\"\n params=\"{ hookName, operationId }: { hookName: T, operationId: string }\"\n returnType=\"HookOptions[T]\"\n export\n >\n {`const queryClient = useQueryClient()\n const customOptions = getCustomHookOptions({ queryClient })\n return customOptions[hookName] ?? {}`}\n </Function>\n </File.Source>\n </File>\n )\n },\n})\n","import { useDriver } from '@kubb/core/hooks'\nimport type { Operation } from '@kubb/oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, Type } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport type { PluginReactQuery } from '../types'\n\nexport const hookOptionsGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-query-hook-options',\n Operations({ operations, plugin, generator }) {\n const {\n options,\n options: { output },\n name: pluginName,\n } = plugin\n const driver = useDriver()\n\n const oas = useOas()\n const { getName, getFile } = useOperationManager(generator)\n\n if (!options.customOptions) {\n return null\n }\n\n const name = 'HookOptions'\n const file = driver.getFile({ name, extname: '.ts', pluginName })\n\n const getOperationOptions = (operation: Operation) => {\n const operationOptions = generator.getOptions(operation, operation.method)\n return { ...options, ...operationOptions }\n }\n\n const isQuery = (operation: Operation) => {\n const operationOptions = getOperationOptions(operation)\n return typeof operationOptions.query === 'boolean' ? true : operationOptions.query?.methods.some((method) => operation.method === method)\n }\n\n const isMutation = (operation: Operation) => {\n const operationOptions = getOperationOptions(operation)\n return (\n operationOptions.mutation !== false &&\n !isQuery(operation) &&\n difference(operationOptions.mutation ? operationOptions.mutation.methods : [], operationOptions.query ? operationOptions.query.methods : []).some(\n (method) => operation.method === method,\n )\n )\n }\n\n const isSuspense = (operation: Operation) => {\n const operationOptions = getOperationOptions(operation)\n return !!operationOptions.suspense\n }\n\n const isInfinite = (operation: Operation) => {\n const operationOptions = getOperationOptions(operation)\n const infiniteOptions = operationOptions.infinite && typeof operationOptions.infinite === 'object' ? operationOptions.infinite : undefined\n return !!infiniteOptions\n }\n\n // Query/mutation hooks\n const getHookName = (operation: Operation) => {\n return getName(operation, { type: 'function', prefix: 'use' })\n }\n\n const getHookFile = (operation: Operation) => {\n return getFile(operation, { prefix: 'use' })\n }\n\n // Query hooks\n const getQueryHookOptions = (operation: Operation) => {\n return getName(operation, { type: 'function', suffix: 'QueryOptions' })\n }\n\n const getQueryHookOptionsImport = (operation: Operation) => {\n return <File.Import name={[getQueryHookOptions(operation)]} root={file.path} path={getHookFile(operation).path} />\n }\n\n // Mutation hooks\n const getMutationHookOptions = (operation: Operation) => {\n return getName(operation, { type: 'function', suffix: 'MutationOptions' })\n }\n\n const getMutationHookOptionsImport = (operation: Operation) => {\n return <File.Import name={[getMutationHookOptions(operation)]} root={file.path} path={getHookFile(operation).path} />\n }\n\n // Suspense hooks\n const getSuspenseHookName = (operation: Operation) => {\n return getName(operation, { type: 'function', prefix: 'use', suffix: 'suspense' })\n }\n\n const getSuspenseHookFile = (operation: Operation) => {\n return getFile(operation, { prefix: 'use', suffix: 'suspense' })\n }\n\n const getSuspenseHookOptions = (operation: Operation) => {\n return getName(operation, { type: 'function', suffix: 'SuspenseQueryOptions' })\n }\n\n const getSuspenseHookOptionsImport = (operation: Operation) => {\n return <File.Import name={[getSuspenseHookOptions(operation)]} root={file.path} path={getSuspenseHookFile(operation).path} />\n }\n\n // Infinite hooks\n const getInfiniteHookName = (operation: Operation) => {\n return getName(operation, { type: 'function', prefix: 'use', suffix: 'infinite' })\n }\n\n const getInfiniteHookFile = (operation: Operation) => {\n return getFile(operation, { prefix: 'use', suffix: 'infinite' })\n }\n\n const getInfiniteHookOptions = (operation: Operation) => {\n return getName(operation, { type: 'function', suffix: 'InfiniteQueryOptions' })\n }\n\n const getInfiniteHookOptionsImport = (operation: Operation) => {\n return <File.Import name={[getInfiniteHookOptions(operation)]} root={file.path} path={getInfiniteHookFile(operation).path} />\n }\n\n // Suspense infinite hooks\n const getSuspenseInfiniteHookName = (operation: Operation) => {\n return getName(operation, { type: 'function', prefix: 'use', suffix: 'suspenseInfinite' })\n }\n\n const getSuspenseInfiniteHookFile = (operation: Operation) => {\n return getFile(operation, { prefix: 'use', suffix: 'suspenseInfinite' })\n }\n\n const getSuspenseInfiniteHookOptions = (operation: Operation) => {\n return getName(operation, { type: 'function', suffix: 'SuspenseInfiniteQueryOptions' })\n }\n\n const getSuspenseInfiniteHookOptionsImport = (operation: Operation) => {\n return <File.Import name={[getSuspenseInfiniteHookOptions(operation)]} root={file.path} path={getSuspenseInfiniteHookFile(operation).path} />\n }\n\n const imports = operations\n .flatMap((operation) => {\n if (isQuery(operation)) {\n return [\n getQueryHookOptionsImport(operation),\n isSuspense(operation) ? getSuspenseHookOptionsImport(operation) : undefined,\n isInfinite(operation) ? getInfiniteHookOptionsImport(operation) : undefined,\n isSuspense(operation) && isInfinite(operation) ? getSuspenseInfiniteHookOptionsImport(operation) : undefined,\n ].filter(Boolean)\n }\n if (isMutation(operation)) {\n return [getMutationHookOptionsImport(operation)]\n }\n return []\n })\n .filter(Boolean)\n\n const hookOptions = operations.reduce(\n (acc, operation) => {\n if (isQuery(operation)) {\n acc[getHookName(operation)] = `Partial<ReturnType<typeof ${getQueryHookOptions(operation)}>>`\n if (isSuspense(operation)) {\n acc[getSuspenseHookName(operation)] = `Partial<ReturnType<typeof ${getSuspenseHookOptions(operation)}>>`\n }\n if (isInfinite(operation)) {\n acc[getInfiniteHookName(operation)] = `Partial<ReturnType<typeof ${getInfiniteHookOptions(operation)}>>`\n }\n if (isSuspense(operation) && isInfinite(operation)) {\n acc[getSuspenseInfiniteHookName(operation)] = `Partial<ReturnType<typeof ${getSuspenseInfiniteHookOptions(operation)}>>`\n }\n }\n if (isMutation(operation)) {\n acc[getHookName(operation)] = `Partial<ReturnType<typeof ${getMutationHookOptions(operation)}>>`\n }\n return acc\n },\n {} as Record<string, string>,\n )\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output, config: driver.config })}\n footer={getFooter({ oas, output })}\n >\n {imports}\n <File.Source name={name} isExportable isIndexable isTypeOnly>\n <Type export name={name}>\n {`{ ${Object.keys(hookOptions).map((key) => `${JSON.stringify(key)}: ${hookOptions[key]}`)} }`}\n </Type>\n </File.Source>\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { useDriver } from '@kubb/core/hooks'\nimport { ClientLegacy as Client, pluginClientName } from '@kubb/plugin-client'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\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 } from '@kubb/react-fabric'\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({ config, operation, generator, plugin }) {\n const {\n options,\n options: { output },\n } = plugin\n const driver = useDriver()\n const root = path.resolve(config.root, config.output.path)\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\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 infiniteOptions = options.infinite && typeof options.infinite === 'object' ? options.infinite : undefined\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 hasClientPlugin = !!driver.getPlugin(pluginClientName)\n // Class-based clients are not compatible with query hooks, so we generate inline clients\n const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n const client = {\n name: shouldUseClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginName: pluginClientName,\n })\n : getName(operation, {\n type: 'function',\n suffix: 'infinite',\n }),\n file: getFile(operation, { pluginName: 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, { pluginName: pluginTsName }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginName: pluginTsName, type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginName: pluginZodName }),\n schemas: getSchemas(operation, { pluginName: pluginZodName, type: 'function' }),\n }\n\n if (!isQuery || isMutation || !infiniteOptions) {\n return null\n }\n\n const normalizeKey = (key?: string | null) => (key ?? '').replace(/\\?$/, '')\n const queryParam = infiniteOptions.queryParam\n const cursorParam = infiniteOptions.cursorParam\n const queryParamKeys = type.schemas.queryParams?.keys ?? []\n const responseKeys = [...(type.schemas.responses?.flatMap((item) => item.keys ?? []) ?? []), ...(type.schemas.response?.keys ?? [])]\n\n const hasQueryParam = queryParam ? queryParamKeys.some((key) => normalizeKey(key) === queryParam) : false\n const hasCursorParam = cursorParam ? responseKeys.some((key) => normalizeKey(key) === cursorParam) : true\n\n if (!hasQueryParam || !hasCursorParam) {\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, config: driver.config })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={query.file.path} path={zod.file.path} />\n )}\n {options.client.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={options.client.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={query.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={query.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {options.client.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={query.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n\n {shouldUseClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={query.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\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 {!shouldUseClientPlugin && (\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 || 'data'}\n paramsCasing={options.client?.paramsCasing || options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n {options.customOptions && <File.Import name={[options.customOptions.name]} path={options.customOptions.importPath} />}\n {infiniteOptions && (\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 paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType || 'data'}\n cursorParam={infiniteOptions.cursorParam}\n nextParam={infiniteOptions.nextParam}\n previousParam={infiniteOptions.previousParam}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n </>\n )}\n {infiniteOptions && (\n <>\n <File.Import name={['useInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'InfiniteQueryObserverOptions', 'UseInfiniteQueryResult']} 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 || 'data'}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n customOptions={options.customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { useDriver } from '@kubb/core/hooks'\nimport { ClientLegacy as Client, pluginClientName } from '@kubb/plugin-client'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\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 } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport { Mutation, MutationKey } from '../components'\nimport { MutationOptions } from '../components/MutationOptions.tsx'\nimport type { PluginReactQuery } from '../types'\n\nexport const mutationGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-query',\n Operation({ config, plugin, operation, generator }) {\n const {\n options,\n options: { output },\n } = plugin\n const driver = useDriver()\n const root = path.resolve(config.root, config.output.path)\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n const isQuery = !!options.query && options.query?.methods.some((method) => operation.method === method)\n const isMutation =\n options.mutation !== false &&\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, { pluginName: pluginTsName }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginName: pluginTsName, type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginName: pluginZodName }),\n schemas: getSchemas(operation, { pluginName: pluginZodName, type: 'function' }),\n }\n\n const hasClientPlugin = !!driver.getPlugin(pluginClientName)\n // Class-based clients are not compatible with query hooks, so we generate inline clients\n const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n const client = {\n name: shouldUseClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginName: pluginClientName,\n })\n : getName(operation, {\n type: 'function',\n }),\n file: getFile(operation, { pluginName: pluginClientName }),\n }\n\n const mutationOptions = {\n name: getName(operation, { type: 'function', suffix: 'MutationOptions' }),\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, config: driver.config })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={mutation.file.path} path={zod.file.path} />\n )}\n {options.client.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={options.client.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={mutation.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={mutation.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {options.client.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={mutation.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n {shouldUseClientPlugin && <File.Import name={[client.name]} root={mutation.file.path} path={client.file.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={mutation.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {options.customOptions && <File.Import name={[options.customOptions.name]} path={options.customOptions.importPath} />}\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 paramsCasing={options.paramsCasing}\n transformer={options.mutationKey}\n />\n\n {!shouldUseClientPlugin && (\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 || 'data'}\n paramsCasing={options.client?.paramsCasing || options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n <File.Import name={['mutationOptions']} path={importPath} />\n\n <MutationOptions\n name={mutationOptions.name}\n clientName={client.name}\n mutationKeyName={mutationKey.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType || 'data'}\n />\n {options.mutation && (\n <>\n <File.Import name={['useMutation']} path={importPath} />\n <File.Import name={['UseMutationOptions', 'UseMutationResult', 'QueryClient']} path={importPath} isTypeOnly />\n <Mutation\n name={mutation.name}\n mutationOptionsName={mutationOptions.name}\n typeName={mutation.typeName}\n typeSchemas={type.schemas}\n operation={operation}\n dataReturnType={options.client.dataReturnType || 'data'}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n mutationKeyName={mutationKey.name}\n customOptions={options.customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { useDriver } from '@kubb/core/hooks'\nimport { ClientLegacy as Client, pluginClientName } from '@kubb/plugin-client'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\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 } from '@kubb/react-fabric'\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({ config, plugin, operation, generator }) {\n const {\n options,\n options: { output },\n } = plugin\n const driver = useDriver()\n const root = path.resolve(config.root, config.output.path)\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\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 hasClientPlugin = !!driver.getPlugin(pluginClientName)\n // Class-based clients are not compatible with query hooks, so we generate inline clients\n const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n const client = {\n name: shouldUseClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginName: pluginClientName,\n })\n : getName(operation, {\n type: 'function',\n }),\n file: getFile(operation, { pluginName: 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, { pluginName: pluginTsName }),\n //todo remove type?\n schemas: getSchemas(operation, {\n pluginName: pluginTsName,\n type: 'type',\n }),\n }\n\n const zod = {\n // grouping is coming from react-query instead of zod option, we need to pass the options of zod instead\n file: getFile(operation, { pluginName: pluginZodName }),\n schemas: getSchemas(operation, {\n pluginName: pluginZodName,\n type: 'function',\n }),\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, config: driver.config })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={query.file.path} path={zod.file.path} />\n )}\n {options.client.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={options.client.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={query.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={query.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {options.client.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={query.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n\n {shouldUseClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={query.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {options.customOptions && <File.Import name={[options.customOptions.name]} path={options.customOptions.importPath} />}\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 paramsCasing={options.paramsCasing}\n transformer={options.queryKey}\n />\n {!shouldUseClientPlugin && (\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 || 'data'}\n paramsType={options.paramsType}\n paramsCasing={options.client?.paramsCasing || options.paramsCasing}\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 typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType || 'data'}\n />\n {options.query && (\n <>\n <File.Import name={['useQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'QueryObserverOptions', 'UseQueryResult', 'QueryClient']} 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 || 'data'}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n customOptions={options.customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { useDriver } from '@kubb/core/hooks'\nimport { ClientLegacy as Client, pluginClientName } from '@kubb/plugin-client'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\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 } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport { QueryKey, SuspenseInfiniteQuery, SuspenseInfiniteQueryOptions } from '../components'\nimport type { PluginReactQuery } from '../types'\n\nexport const suspenseInfiniteQueryGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-suspense-infinite-query',\n Operation({ config, operation, generator, plugin }) {\n const {\n options,\n options: { output },\n } = plugin\n const driver = useDriver()\n const root = path.resolve(config.root, config.output.path)\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\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 isSuspense = !!options.suspense\n const infiniteOptions = options.infinite && typeof options.infinite === 'object' ? options.infinite : undefined\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: 'suspenseInfinite' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use', suffix: 'suspenseInfinite' }),\n }\n\n const hasClientPlugin = !!driver.getPlugin(pluginClientName)\n // Class-based clients are not compatible with query hooks, so we generate inline clients\n const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n const client = {\n name: shouldUseClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginName: pluginClientName,\n })\n : getName(operation, {\n type: 'function',\n suffix: 'suspenseInfinite',\n }),\n file: getFile(operation, { pluginName: pluginClientName }),\n }\n\n const queryOptions = {\n name: getName(operation, { type: 'function', suffix: 'SuspenseInfiniteQueryOptions' }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'SuspenseInfiniteQueryKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'SuspenseInfiniteQueryKey' }),\n }\n\n const type = {\n file: getFile(operation, { pluginName: pluginTsName }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginName: pluginTsName, type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginName: pluginZodName }),\n schemas: getSchemas(operation, { pluginName: pluginZodName, type: 'function' }),\n }\n\n if (!isQuery || isMutation || !isSuspense || !infiniteOptions) {\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, config: driver.config })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={query.file.path} path={zod.file.path} />\n )}\n {options.client.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={options.client.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={query.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={query.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {options.client.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={query.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n\n {shouldUseClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={query.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {options.customOptions && <File.Import name={[options.customOptions.name]} path={options.customOptions.importPath} />}\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 {!shouldUseClientPlugin && (\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 || 'data'}\n paramsCasing={options.client?.paramsCasing || options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n {infiniteOptions && (\n <>\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n <SuspenseInfiniteQueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType || 'data'}\n cursorParam={infiniteOptions.cursorParam}\n nextParam={infiniteOptions.nextParam}\n previousParam={infiniteOptions.previousParam}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n </>\n )}\n {infiniteOptions && (\n <>\n <File.Import name={['useSuspenseInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseSuspenseInfiniteQueryOptions', 'UseSuspenseInfiniteQueryResult']} path={importPath} isTypeOnly />\n <SuspenseInfiniteQuery\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 || 'data'}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n customOptions={options.customOptions}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { useDriver } from '@kubb/core/hooks'\nimport { ClientLegacy as Client, pluginClientName } from '@kubb/plugin-client'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\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 } from '@kubb/react-fabric'\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({ config, operation, generator, plugin }) {\n const {\n options,\n options: { output },\n } = plugin\n const driver = useDriver()\n const root = path.resolve(config.root, config.output.path)\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\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, {\n type: 'function',\n prefix: 'use',\n suffix: 'suspense',\n }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use', suffix: 'suspense' }),\n }\n\n const hasClientPlugin = !!driver.getPlugin(pluginClientName)\n // Class-based clients are not compatible with query hooks, so we generate inline clients\n const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n const client = {\n name: shouldUseClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginName: pluginClientName,\n })\n : getName(operation, {\n type: 'function',\n suffix: 'suspense',\n }),\n file: getFile(operation, { pluginName: pluginClientName }),\n }\n\n const queryOptions = {\n name: getName(operation, {\n type: 'function',\n suffix: 'SuspenseQueryOptions',\n }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'SuspenseQueryKey' }),\n typeName: getName(operation, {\n type: 'type',\n suffix: 'SuspenseQueryKey',\n }),\n }\n\n const type = {\n file: getFile(operation, { pluginName: pluginTsName }),\n //todo remove type?\n schemas: getSchemas(operation, {\n pluginName: pluginTsName,\n type: 'type',\n }),\n }\n\n const zod = {\n file: getFile(operation, { pluginName: pluginZodName }),\n schemas: getSchemas(operation, {\n pluginName: pluginZodName,\n type: 'function',\n }),\n }\n\n if (!isQuery || isMutation || !isSuspense) {\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, config: driver.config })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={query.file.path} path={zod.file.path} />\n )}\n {options.client.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={options.client.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={query.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={query.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {options.client.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={query.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n {shouldUseClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={query.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {options.customOptions && <File.Import name={[options.customOptions.name]} path={options.customOptions.importPath} />}\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\n {!shouldUseClientPlugin && (\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 || 'data'}\n paramsCasing={options.client?.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 typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType}\n />\n {options.suspense && (\n <>\n <File.Import name={['useSuspenseQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseSuspenseQueryOptions', 'UseSuspenseQueryResult']} path={importPath} isTypeOnly />\n\n <SuspenseQuery\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\n paramsType={options.paramsType}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n operation={operation}\n dataReturnType={options.client.dataReturnType || 'data'}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n customOptions={options.customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n"],"mappings":"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"}
@@ -303,6 +303,7 @@ const infiniteQueryGenerator = (0, _kubb_plugin_oas_generators.createReactGenera
303
303
  Operation({ config, operation, generator, plugin }) {
304
304
  const { options, options: { output } } = plugin;
305
305
  const driver = (0, _kubb_core_hooks.useDriver)();
306
+ const root = node_path.default.resolve(config.root, config.output.path);
306
307
  const oas = (0, _kubb_plugin_oas_hooks.useOas)();
307
308
  const { getSchemas, getName, getFile } = (0, _kubb_plugin_oas_hooks.useOperationManager)(generator);
308
309
  const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
@@ -411,7 +412,7 @@ const infiniteQueryGenerator = (0, _kubb_plugin_oas_generators.createReactGenera
411
412
  !shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
412
413
  name: ["fetch"],
413
414
  root: query.file.path,
414
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts")
415
+ path: node_path.default.resolve(root, ".kubb/fetch.ts")
415
416
  }),
416
417
  /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
417
418
  name: [
@@ -420,13 +421,13 @@ const infiniteQueryGenerator = (0, _kubb_plugin_oas_generators.createReactGenera
420
421
  "ResponseErrorConfig"
421
422
  ],
422
423
  root: query.file.path,
423
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
424
+ path: node_path.default.resolve(root, ".kubb/fetch.ts"),
424
425
  isTypeOnly: true
425
426
  }),
426
427
  options.client.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
427
428
  name: ["ResponseConfig"],
428
429
  root: query.file.path,
429
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
430
+ path: node_path.default.resolve(root, ".kubb/fetch.ts"),
430
431
  isTypeOnly: true
431
432
  })
432
433
  ] }),
@@ -438,7 +439,7 @@ const infiniteQueryGenerator = (0, _kubb_plugin_oas_generators.createReactGenera
438
439
  !shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
439
440
  name: ["buildFormData"],
440
441
  root: query.file.path,
441
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/config.ts")
442
+ path: node_path.default.resolve(root, ".kubb/config.ts")
442
443
  }),
443
444
  /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
444
445
  name: [
@@ -546,6 +547,7 @@ const mutationGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)(
546
547
  Operation({ config, plugin, operation, generator }) {
547
548
  const { options, options: { output } } = plugin;
548
549
  const driver = (0, _kubb_core_hooks.useDriver)();
550
+ const root = node_path.default.resolve(config.root, config.output.path);
549
551
  const oas = (0, _kubb_plugin_oas_hooks.useOas)();
550
552
  const { getSchemas, getName, getFile } = (0, _kubb_plugin_oas_hooks.useOperationManager)(generator);
551
553
  const isQuery = !!options.query && options.query?.methods.some((method) => operation.method === method);
@@ -638,7 +640,7 @@ const mutationGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)(
638
640
  !shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
639
641
  name: ["fetch"],
640
642
  root: mutation.file.path,
641
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts")
643
+ path: node_path.default.resolve(root, ".kubb/fetch.ts")
642
644
  }),
643
645
  /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
644
646
  name: [
@@ -647,13 +649,13 @@ const mutationGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)(
647
649
  "ResponseErrorConfig"
648
650
  ],
649
651
  root: mutation.file.path,
650
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
652
+ path: node_path.default.resolve(root, ".kubb/fetch.ts"),
651
653
  isTypeOnly: true
652
654
  }),
653
655
  options.client.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
654
656
  name: ["ResponseConfig"],
655
657
  root: mutation.file.path,
656
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
658
+ path: node_path.default.resolve(root, ".kubb/fetch.ts"),
657
659
  isTypeOnly: true
658
660
  })
659
661
  ] }),
@@ -665,7 +667,7 @@ const mutationGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)(
665
667
  !shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
666
668
  name: ["buildFormData"],
667
669
  root: mutation.file.path,
668
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/config.ts")
670
+ path: node_path.default.resolve(root, ".kubb/config.ts")
669
671
  }),
670
672
  options.customOptions && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
671
673
  name: [options.customOptions.name],
@@ -757,6 +759,7 @@ const queryGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)({
757
759
  Operation({ config, plugin, operation, generator }) {
758
760
  const { options, options: { output } } = plugin;
759
761
  const driver = (0, _kubb_core_hooks.useDriver)();
762
+ const root = node_path.default.resolve(config.root, config.output.path);
760
763
  const oas = (0, _kubb_plugin_oas_hooks.useOas)();
761
764
  const { getSchemas, getName, getFile } = (0, _kubb_plugin_oas_hooks.useOperationManager)(generator);
762
765
  const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
@@ -849,7 +852,7 @@ const queryGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)({
849
852
  !shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
850
853
  name: ["fetch"],
851
854
  root: query.file.path,
852
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts")
855
+ path: node_path.default.resolve(root, ".kubb/fetch.ts")
853
856
  }),
854
857
  /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
855
858
  name: [
@@ -858,13 +861,13 @@ const queryGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)({
858
861
  "ResponseErrorConfig"
859
862
  ],
860
863
  root: query.file.path,
861
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
864
+ path: node_path.default.resolve(root, ".kubb/fetch.ts"),
862
865
  isTypeOnly: true
863
866
  }),
864
867
  options.client.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
865
868
  name: ["ResponseConfig"],
866
869
  root: query.file.path,
867
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
870
+ path: node_path.default.resolve(root, ".kubb/fetch.ts"),
868
871
  isTypeOnly: true
869
872
  })
870
873
  ] }),
@@ -876,7 +879,7 @@ const queryGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)({
876
879
  !shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
877
880
  name: ["buildFormData"],
878
881
  root: query.file.path,
879
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/config.ts")
882
+ path: node_path.default.resolve(root, ".kubb/config.ts")
880
883
  }),
881
884
  options.customOptions && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
882
885
  name: [options.customOptions.name],
@@ -971,6 +974,7 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_plugin_oas_generators.createRea
971
974
  Operation({ config, operation, generator, plugin }) {
972
975
  const { options, options: { output } } = plugin;
973
976
  const driver = (0, _kubb_core_hooks.useDriver)();
977
+ const root = node_path.default.resolve(config.root, config.output.path);
974
978
  const oas = (0, _kubb_plugin_oas_hooks.useOas)();
975
979
  const { getSchemas, getName, getFile } = (0, _kubb_plugin_oas_hooks.useOperationManager)(generator);
976
980
  const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
@@ -1072,7 +1076,7 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_plugin_oas_generators.createRea
1072
1076
  !shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
1073
1077
  name: ["fetch"],
1074
1078
  root: query.file.path,
1075
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts")
1079
+ path: node_path.default.resolve(root, ".kubb/fetch.ts")
1076
1080
  }),
1077
1081
  /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
1078
1082
  name: [
@@ -1081,13 +1085,13 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_plugin_oas_generators.createRea
1081
1085
  "ResponseErrorConfig"
1082
1086
  ],
1083
1087
  root: query.file.path,
1084
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
1088
+ path: node_path.default.resolve(root, ".kubb/fetch.ts"),
1085
1089
  isTypeOnly: true
1086
1090
  }),
1087
1091
  options.client.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
1088
1092
  name: ["ResponseConfig"],
1089
1093
  root: query.file.path,
1090
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
1094
+ path: node_path.default.resolve(root, ".kubb/fetch.ts"),
1091
1095
  isTypeOnly: true
1092
1096
  })
1093
1097
  ] }),
@@ -1099,7 +1103,7 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_plugin_oas_generators.createRea
1099
1103
  !shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
1100
1104
  name: ["buildFormData"],
1101
1105
  root: query.file.path,
1102
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/config.ts")
1106
+ path: node_path.default.resolve(root, ".kubb/config.ts")
1103
1107
  }),
1104
1108
  options.customOptions && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
1105
1109
  name: [options.customOptions.name],
@@ -1207,6 +1211,7 @@ const suspenseQueryGenerator = (0, _kubb_plugin_oas_generators.createReactGenera
1207
1211
  Operation({ config, operation, generator, plugin }) {
1208
1212
  const { options, options: { output } } = plugin;
1209
1213
  const driver = (0, _kubb_core_hooks.useDriver)();
1214
+ const root = node_path.default.resolve(config.root, config.output.path);
1210
1215
  const oas = (0, _kubb_plugin_oas_hooks.useOas)();
1211
1216
  const { getSchemas, getName, getFile } = (0, _kubb_plugin_oas_hooks.useOperationManager)(generator);
1212
1217
  const isQuery = typeof options.query === "boolean" ? true : options.query?.methods.some((method) => operation.method === method);
@@ -1307,7 +1312,7 @@ const suspenseQueryGenerator = (0, _kubb_plugin_oas_generators.createReactGenera
1307
1312
  !shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
1308
1313
  name: ["fetch"],
1309
1314
  root: query.file.path,
1310
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts")
1315
+ path: node_path.default.resolve(root, ".kubb/fetch.ts")
1311
1316
  }),
1312
1317
  /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
1313
1318
  name: [
@@ -1316,13 +1321,13 @@ const suspenseQueryGenerator = (0, _kubb_plugin_oas_generators.createReactGenera
1316
1321
  "ResponseErrorConfig"
1317
1322
  ],
1318
1323
  root: query.file.path,
1319
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
1324
+ path: node_path.default.resolve(root, ".kubb/fetch.ts"),
1320
1325
  isTypeOnly: true
1321
1326
  }),
1322
1327
  options.client.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
1323
1328
  name: ["ResponseConfig"],
1324
1329
  root: query.file.path,
1325
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/fetch.ts"),
1330
+ path: node_path.default.resolve(root, ".kubb/fetch.ts"),
1326
1331
  isTypeOnly: true
1327
1332
  })
1328
1333
  ] }),
@@ -1334,7 +1339,7 @@ const suspenseQueryGenerator = (0, _kubb_plugin_oas_generators.createReactGenera
1334
1339
  !shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
1335
1340
  name: ["buildFormData"],
1336
1341
  root: query.file.path,
1337
- path: node_path.default.resolve(config.root, config.output.path, ".kubb/config.ts")
1342
+ path: node_path.default.resolve(root, ".kubb/config.ts")
1338
1343
  }),
1339
1344
  options.customOptions && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
1340
1345
  name: [options.customOptions.name],
@@ -1465,4 +1470,4 @@ Object.defineProperty(exports, "suspenseQueryGenerator", {
1465
1470
  }
1466
1471
  });
1467
1472
 
1468
- //# sourceMappingURL=generators-CGKLyDDJ.cjs.map
1473
+ //# sourceMappingURL=generators-CeU3eFdF.cjs.map