@kubb/plugin-react-query 5.0.0-beta.22 → 5.0.0-beta.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/{components-BTwB9V-K.js → components-CDmg-RPi.js} +82 -63
  2. package/dist/components-CDmg-RPi.js.map +1 -0
  3. package/dist/{components-D4SQmw7N.cjs → components-MPBTffPl.cjs} +82 -63
  4. package/dist/components-MPBTffPl.cjs.map +1 -0
  5. package/dist/components.cjs +1 -1
  6. package/dist/components.d.ts +1 -1
  7. package/dist/components.js +1 -1
  8. package/dist/{generators-BZ_sX2lp.js → generators-C-cwJah8.js} +97 -57
  9. package/dist/generators-C-cwJah8.js.map +1 -0
  10. package/dist/{generators-C4bV7v9Z.cjs → generators-DozEZKwy.cjs} +97 -57
  11. package/dist/generators-DozEZKwy.cjs.map +1 -0
  12. package/dist/generators.cjs +1 -1
  13. package/dist/generators.d.ts +41 -1
  14. package/dist/generators.js +1 -1
  15. package/dist/index.cjs +51 -11
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.ts +30 -1
  18. package/dist/index.js +51 -11
  19. package/dist/index.js.map +1 -1
  20. package/dist/{types-DG_OxOym.d.ts → types-DiZPLTXl.d.ts} +92 -55
  21. package/extension.yaml +904 -325
  22. package/package.json +7 -7
  23. package/src/components/InfiniteQuery.tsx +7 -6
  24. package/src/components/InfiniteQueryOptions.tsx +11 -10
  25. package/src/components/Mutation.tsx +7 -5
  26. package/src/components/MutationOptions.tsx +4 -3
  27. package/src/components/Query.tsx +6 -4
  28. package/src/components/QueryOptions.tsx +4 -3
  29. package/src/components/SuspenseInfiniteQuery.tsx +7 -6
  30. package/src/components/SuspenseInfiniteQueryOptions.tsx +11 -10
  31. package/src/components/SuspenseQuery.tsx +6 -4
  32. package/src/generators/customHookOptionsFileGenerator.tsx +7 -1
  33. package/src/generators/hookOptionsGenerator.tsx +14 -8
  34. package/src/generators/infiniteQueryGenerator.tsx +19 -10
  35. package/src/generators/mutationGenerator.tsx +17 -9
  36. package/src/generators/queryGenerator.tsx +17 -9
  37. package/src/generators/suspenseInfiniteQueryGenerator.tsx +19 -10
  38. package/src/generators/suspenseQueryGenerator.tsx +18 -9
  39. package/src/plugin.ts +34 -5
  40. package/src/resolvers/resolverReactQuery.ts +15 -4
  41. package/src/types.ts +89 -52
  42. package/src/utils.ts +8 -1
  43. package/dist/components-BTwB9V-K.js.map +0 -1
  44. package/dist/components-D4SQmw7N.cjs.map +0 -1
  45. package/dist/generators-BZ_sX2lp.js.map +0 -1
  46. package/dist/generators-C4bV7v9Z.cjs.map +0 -1
@@ -228,12 +228,12 @@ var URLPath = class {
228
228
  get object() {
229
229
  return this.toObject();
230
230
  }
231
- /** Returns a map of path parameter names, or `undefined` when the path has no parameters.
231
+ /** Returns a map of path parameter names, or `null` when the path has no parameters.
232
232
  *
233
233
  * @example
234
234
  * ```ts
235
235
  * new URLPath('/pet/{petId}').params // { petId: 'petId' }
236
- * new URLPath('/pet').params // undefined
236
+ * new URLPath('/pet').params // null
237
237
  * ```
238
238
  */
239
239
  get params() {
@@ -296,7 +296,7 @@ var URLPath = class {
296
296
  const key = replacer ? replacer(param) : param;
297
297
  params[key] = key;
298
298
  });
299
- return Object.keys(params).length > 0 ? params : void 0;
299
+ return Object.keys(params).length > 0 ? params : null;
300
300
  }
301
301
  /** Converts the OpenAPI path to Express-style colon syntax.
302
302
  *
@@ -315,10 +315,10 @@ const declarationPrinter$10 = functionPrinter({ mode: "declaration" });
315
315
  const mutationKeyTransformer = ({ node, casing }) => {
316
316
  return [`{ url: '${new URLPath(node.path, { casing }).toURLPath()}' }`];
317
317
  };
318
- function MutationKey({ name, paramsCasing, node, transformer = mutationKeyTransformer }) {
318
+ function MutationKey({ name, paramsCasing, node, transformer }) {
319
319
  const paramsNode = ast.createFunctionParameters({ params: [] });
320
320
  const paramsSignature = declarationPrinter$10.print(paramsNode) ?? "";
321
- const keys = transformer({
321
+ const keys = (transformer ?? mutationKeyTransformer)({
322
322
  node,
323
323
  casing: paramsCasing
324
324
  });
@@ -338,9 +338,9 @@ function MutationKey({ name, paramsCasing, node, transformer = mutationKeyTransf
338
338
  //#endregion
339
339
  //#region ../../internals/shared/src/operation.ts
340
340
  function getOperationLink(node, link) {
341
- if (!link) return;
342
- if (typeof link === "function") return link(node);
343
- if (link === "urlPath") return node.path ? `{@link ${new URLPath(node.path).URL}}` : void 0;
341
+ if (!link) return null;
342
+ if (typeof link === "function") return link(node) ?? null;
343
+ if (link === "urlPath") return node.path ? `{@link ${new URLPath(node.path).URL}}` : null;
344
344
  return `{@link ${node.path.replaceAll("{", ":").replaceAll("}", "")}}`;
345
345
  }
346
346
  function getContentTypeInfo(node) {
@@ -355,9 +355,9 @@ function getContentTypeInfo(node) {
355
355
  };
356
356
  }
357
357
  function buildRequestConfigType(node, resolver) {
358
- const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : void 0;
358
+ const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : null;
359
359
  const { isMultipleContentTypes, contentTypeUnion } = getContentTypeInfo(node);
360
- return `${requestName ? `Partial<RequestConfig<${requestName}>>` : "Partial<RequestConfig>"} & { ${["client?: Client", isMultipleContentTypes ? `contentType?: ${contentTypeUnion}` : void 0].filter(Boolean).join("; ")} }`;
360
+ return `${requestName ? `Partial<RequestConfig<${requestName}>>` : "Partial<RequestConfig>"} & { ${["client?: Client", isMultipleContentTypes ? `contentType?: ${contentTypeUnion}` : null].filter(Boolean).join("; ")} }`;
361
361
  }
362
362
  function buildOperationComments(node, options = {}) {
363
363
  const { link = "pathTemplate", linkPosition = "afterDeprecated", splitLines = false } = options;
@@ -387,15 +387,22 @@ function getOperationParameters(node, options = {}) {
387
387
  }
388
388
  function getStatusCodeNumber(statusCode) {
389
389
  const code = Number(statusCode);
390
- return Number.isNaN(code) ? void 0 : code;
390
+ return Number.isNaN(code) ? null : code;
391
+ }
392
+ function isSuccessStatusCode(statusCode) {
393
+ const code = getStatusCodeNumber(statusCode);
394
+ return code !== null && code >= 200 && code < 300;
391
395
  }
392
396
  function isErrorStatusCode(statusCode) {
393
397
  const code = getStatusCodeNumber(statusCode);
394
- return code !== void 0 && code >= 400;
398
+ return code !== null && code >= 400;
395
399
  }
396
400
  function resolveErrorNames(node, resolver) {
397
401
  return node.responses.filter((response) => isErrorStatusCode(response.statusCode)).map((response) => resolver.resolveResponseStatusName(node, response.statusCode));
398
402
  }
403
+ function resolveSuccessNames(node, resolver) {
404
+ return node.responses.filter((response) => isSuccessStatusCode(response.statusCode)).map((response) => resolver.resolveResponseStatusName(node, response.statusCode));
405
+ }
399
406
  function resolveStatusCodeNames(node, resolver) {
400
407
  return node.responses.map((response) => resolver.resolveResponseStatusName(node, response.statusCode));
401
408
  }
@@ -418,7 +425,7 @@ function resolveOperationTypeNames(node, resolver, options = {}) {
418
425
  ...query.map((param) => resolver.resolveQueryParamsName(node, param)),
419
426
  ...header.map((param) => resolver.resolveHeaderParamsName(node, param))
420
427
  ];
421
- const bodyAndResponseNames = [node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : void 0, resolver.resolveResponseName(node)];
428
+ const bodyAndResponseNames = [node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : null, resolver.resolveResponseName(node)];
422
429
  const result = (options.order === "body-response-first" ? [
423
430
  ...bodyAndResponseNames,
424
431
  ...paramNames,
@@ -462,7 +469,7 @@ function resolveOperationOverrides(node, override) {
462
469
  */
463
470
  function resolveZodSchemaNames(node, zodResolver) {
464
471
  if (!zodResolver) return [];
465
- return [zodResolver.resolveResponseName?.(node), node.requestBody?.content?.[0]?.schema ? zodResolver.resolveDataName?.(node) : void 0].filter((n) => Boolean(n));
472
+ return [zodResolver.resolveResponseName?.(node), node.requestBody?.content?.[0]?.schema ? zodResolver.resolveDataName?.(node) : null].filter((n) => Boolean(n));
466
473
  }
467
474
  /**
468
475
  * Resolve the type for a single path parameter.
@@ -486,14 +493,14 @@ function resolvePathParamType(node, param, resolver) {
486
493
  }
487
494
  /**
488
495
  * Derive a query-params group type from the resolver.
489
- * Returns `undefined` when no query params exist or when the group name
496
+ * Returns `null` when no query params exist or when the group name
490
497
  * equals the individual param name (no real group).
491
498
  */
492
499
  function resolveQueryGroupType(node, params, resolver) {
493
- if (!params.length) return void 0;
500
+ if (!params.length) return null;
494
501
  const firstParam = params[0];
495
502
  const groupName = resolver.resolveQueryParamsName(node, firstParam);
496
- if (groupName === resolver.resolveParamName(node, firstParam)) return void 0;
503
+ if (groupName === resolver.resolveParamName(node, firstParam)) return null;
497
504
  return {
498
505
  type: ast.createParamsType({
499
506
  variant: "reference",
@@ -543,7 +550,7 @@ function buildQueryKeyParams(node, options) {
543
550
  const bodyType = node.requestBody?.content?.[0]?.schema ? ast.createParamsType({
544
551
  variant: "reference",
545
552
  name: resolver.resolveDataName(node)
546
- }) : void 0;
553
+ }) : null;
547
554
  const bodyRequired = node.requestBody?.required ?? false;
548
555
  const params = [];
549
556
  if (pathParams.length) {
@@ -590,18 +597,18 @@ const queryKeyTransformer = ({ node, casing }) => {
590
597
  type: "path",
591
598
  stringify: true
592
599
  }),
593
- hasQueryParams ? "...(params ? [params] : [])" : void 0,
594
- hasRequestBody ? "...(data ? [data] : [])" : void 0
600
+ hasQueryParams ? "...(params ? [params] : [])" : null,
601
+ hasRequestBody ? "...(data ? [data] : [])" : null
595
602
  ].filter(Boolean);
596
603
  };
597
- function QueryKey({ name, node, tsResolver, paramsCasing, pathParamsType, typeName, transformer = queryKeyTransformer }) {
604
+ function QueryKey({ name, node, tsResolver, paramsCasing, pathParamsType, typeName, transformer }) {
598
605
  const paramsNode = buildQueryKeyParams(node, {
599
606
  pathParamsType,
600
607
  paramsCasing,
601
608
  resolver: tsResolver
602
609
  });
603
610
  const paramsSignature = declarationPrinter$9.print(paramsNode) ?? "";
604
- const keys = transformer({
611
+ const keys = (transformer ?? queryKeyTransformer)({
605
612
  node,
606
613
  casing: paramsCasing
607
614
  });
@@ -631,7 +638,7 @@ const declarationPrinter$8 = functionPrinter({ mode: "declaration" });
631
638
  const callPrinter$8 = functionPrinter({ mode: "call" });
632
639
  function getQueryOptionsParams(node, options) {
633
640
  const { paramsType, paramsCasing, pathParamsType, resolver } = options;
634
- const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : void 0;
641
+ const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : null;
635
642
  return ast.createOperationParams(node, {
636
643
  paramsType,
637
644
  pathParamsType: paramsType === "object" ? "object" : pathParamsType === "object" ? "object" : "inline",
@@ -648,7 +655,8 @@ function getQueryOptionsParams(node, options) {
648
655
  });
649
656
  }
650
657
  function QueryOptions({ name, clientName, dataReturnType, node, tsResolver, paramsCasing, paramsType, pathParamsType, queryKeyName }) {
651
- const responseName = tsResolver.resolveResponseName(node);
658
+ const successNames = resolveSuccessNames(node, tsResolver);
659
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
652
660
  const errorNames = resolveErrorNames(node, tsResolver);
653
661
  const TData = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
654
662
  const TError = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
@@ -695,7 +703,7 @@ const declarationPrinter$7 = functionPrinter({ mode: "declaration" });
695
703
  const callPrinter$7 = functionPrinter({ mode: "call" });
696
704
  function buildInfiniteQueryParamsNode(node, options) {
697
705
  const { paramsType, paramsCasing, pathParamsType, resolver, pageParamGeneric } = options;
698
- const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : void 0;
706
+ const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : null;
699
707
  const optionsParam = ast.createFunctionParameter({
700
708
  name: "options",
701
709
  type: ast.createParamsType({
@@ -716,7 +724,8 @@ function buildInfiniteQueryParamsNode(node, options) {
716
724
  });
717
725
  }
718
726
  function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName, paramsType, paramsCasing, pathParamsType, dataReturnType, node, tsResolver, initialPageParam, queryParam, customOptions }) {
719
- const responseName = tsResolver.resolveResponseName(node);
727
+ const successNames = resolveSuccessNames(node, tsResolver);
728
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
720
729
  const errorNames = resolveErrorNames(node, tsResolver);
721
730
  const responseType = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
722
731
  const errorType = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
@@ -728,9 +737,9 @@ function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
728
737
  const rawQueryParams = getOperationParameters(node).query;
729
738
  const queryParamsTypeName = rawQueryParams.length > 0 ? (() => {
730
739
  const groupName = tsResolver.resolveQueryParamsName(node, rawQueryParams[0]);
731
- return groupName !== tsResolver.resolveParamName(node, rawQueryParams[0]) ? groupName : void 0;
732
- })() : void 0;
733
- const queryParamType = queryParam && queryParamsTypeName ? `${queryParamsTypeName}['${queryParam}']` : void 0;
740
+ return groupName !== tsResolver.resolveParamName(node, rawQueryParams[0]) ? groupName : null;
741
+ })() : null;
742
+ const queryParamType = queryParam && queryParamsTypeName ? `${queryParamsTypeName}['${queryParam}']` : null;
734
743
  const pageParamType = queryParamType ? isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType : fallbackPageParamType;
735
744
  const returnType = "UseInfiniteQueryResult<TData, TError> & { queryKey: TQueryKey }";
736
745
  const generics = [
@@ -797,7 +806,8 @@ function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
797
806
  const declarationPrinter$6 = functionPrinter({ mode: "declaration" });
798
807
  const callPrinter$6 = functionPrinter({ mode: "call" });
799
808
  function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam, nextParam, previousParam, node, tsResolver, paramsCasing, paramsType, dataReturnType, pathParamsType, queryParam, queryKeyName }) {
800
- const responseName = tsResolver.resolveResponseName(node);
809
+ const successNames = resolveSuccessNames(node, tsResolver);
810
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
801
811
  const queryFnDataType = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
802
812
  const errorNames = resolveErrorNames(node, tsResolver);
803
813
  const errorType = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
@@ -809,9 +819,9 @@ function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam,
809
819
  const rawQueryParams = getOperationParameters(node).query;
810
820
  const queryParamsTypeName = rawQueryParams.length > 0 ? (() => {
811
821
  const groupName = tsResolver.resolveQueryParamsName(node, rawQueryParams[0]);
812
- return groupName !== tsResolver.resolveParamName(node, rawQueryParams[0]) ? groupName : void 0;
813
- })() : void 0;
814
- const queryParamType = queryParam && queryParamsTypeName ? `${queryParamsTypeName}['${queryParam}']` : void 0;
822
+ return groupName !== tsResolver.resolveParamName(node, rawQueryParams[0]) ? groupName : null;
823
+ })() : null;
824
+ const queryParamType = queryParam && queryParamsTypeName ? `${queryParamsTypeName}['${queryParam}']` : null;
815
825
  const pageParamType = queryParamType ? isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType : fallbackPageParamType;
816
826
  const paramsNode = getQueryOptionsParams(node, {
817
827
  paramsType,
@@ -829,12 +839,12 @@ function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam,
829
839
  const queryKeyParamsCall = callPrinter$6.print(queryKeyParamsNode) ?? "";
830
840
  const enabledSource = buildEnabledCheck(queryKeyParamsNode);
831
841
  const enabledText = enabledSource ? `enabled: !!(${enabledSource}),` : "";
832
- const hasNewParams = nextParam !== void 0 || previousParam !== void 0;
842
+ const hasNewParams = nextParam != null || previousParam != null;
833
843
  const [getNextPageParamExpr, getPreviousPageParamExpr] = (() => {
834
844
  if (hasNewParams) {
835
- const nextAccessor = nextParam ? getNestedAccessor(nextParam, "lastPage") : void 0;
836
- const prevAccessor = previousParam ? getNestedAccessor(previousParam, "firstPage") : void 0;
837
- return [nextAccessor ? `getNextPageParam: (lastPage) => ${nextAccessor}` : void 0, prevAccessor ? `getPreviousPageParam: (firstPage) => ${prevAccessor}` : void 0];
845
+ const nextAccessor = nextParam ? getNestedAccessor(nextParam, "lastPage") : null;
846
+ const prevAccessor = previousParam ? getNestedAccessor(previousParam, "firstPage") : null;
847
+ return [nextAccessor ? `getNextPageParam: (lastPage) => ${nextAccessor}` : null, prevAccessor ? `getPreviousPageParam: (firstPage) => ${prevAccessor}` : null];
838
848
  }
839
849
  if (cursorParam) return [`getNextPageParam: (lastPage) => lastPage['${cursorParam}']`, `getPreviousPageParam: (firstPage) => firstPage['${cursorParam}']`];
840
850
  return [dataReturnType === "full" ? "getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage.data) && lastPage.data.length === 0 ? undefined : lastPageParam + 1" : "getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage) && lastPage.length === 0 ? undefined : lastPageParam + 1", "getPreviousPageParam: (_firstPage, _allPages, firstPageParam) => firstPageParam <= 1 ? undefined : firstPageParam - 1"];
@@ -909,7 +919,8 @@ function buildMutationConfigParamsNode(node, resolver) {
909
919
  })] });
910
920
  }
911
921
  function MutationOptions({ name, clientName, dataReturnType, node, tsResolver, paramsCasing, paramsType, pathParamsType, mutationKeyName }) {
912
- const responseName = tsResolver.resolveResponseName(node);
922
+ const successNames = resolveSuccessNames(node, tsResolver);
923
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
913
924
  const TData = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
914
925
  const errorNames = resolveErrorNames(node, tsResolver);
915
926
  const TError = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
@@ -950,7 +961,7 @@ function MutationOptions({ name, clientName, dataReturnType, node, tsResolver, p
950
961
  generics: ["TContext = unknown"],
951
962
  children: `
952
963
  const mutationKey = ${mutationKeyName}()
953
- return mutationOptions<${TData}, ${TError}, ${TRequest ? `{${TRequest}}` : "void"}, TContext>({
964
+ return mutationOptions<${TData}, ${TError}, ${TRequest ? `{${TRequest}}` : "undefined"}, TContext>({
954
965
  mutationKey,
955
966
  mutationFn: async(${hasMutationParams ? `{ ${argKeysStr} }` : "_"}) => {
956
967
  return ${clientName}(${clientCallStr})
@@ -974,7 +985,8 @@ function createMutationArgParams(node, options) {
974
985
  }
975
986
  function buildMutationParamsNode(node, options) {
976
987
  const { paramsCasing, dataReturnType, resolver } = options;
977
- const responseName = resolver.resolveResponseName(node);
988
+ const successNames = resolveSuccessNames(node, resolver);
989
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : resolver.resolveResponseName(node);
978
990
  const errorNames = resolveErrorNames(node, resolver);
979
991
  const TData = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
980
992
  const TError = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
@@ -986,7 +998,7 @@ function buildMutationParamsNode(node, options) {
986
998
  const generics = [
987
999
  TData,
988
1000
  TError,
989
- TRequest ? `{${TRequest}}` : "void",
1001
+ TRequest ? `{${TRequest}}` : "undefined",
990
1002
  "TContext"
991
1003
  ].join(", ");
992
1004
  return ast.createFunctionParameters({ params: [ast.createFunctionParameter({
@@ -1002,7 +1014,8 @@ function buildMutationParamsNode(node, options) {
1002
1014
  })] });
1003
1015
  }
1004
1016
  function Mutation({ name, mutationOptionsName, paramsCasing, dataReturnType, node, tsResolver, mutationKeyName, customOptions }) {
1005
- const responseName = tsResolver.resolveResponseName(node);
1017
+ const successNames = resolveSuccessNames(node, tsResolver);
1018
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
1006
1019
  const errorNames = resolveErrorNames(node, tsResolver);
1007
1020
  const TData = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
1008
1021
  const TError = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
@@ -1014,7 +1027,7 @@ function Mutation({ name, mutationOptionsName, paramsCasing, dataReturnType, nod
1014
1027
  const generics = [
1015
1028
  TData,
1016
1029
  TError,
1017
- TRequest ? `{${TRequest}}` : "void",
1030
+ TRequest ? `{${TRequest}}` : "undefined",
1018
1031
  "TContext"
1019
1032
  ].join(", ");
1020
1033
  const returnType = `UseMutationResult<${generics}>`;
@@ -1059,8 +1072,9 @@ const declarationPrinter$3 = functionPrinter({ mode: "declaration" });
1059
1072
  const callPrinter$3 = functionPrinter({ mode: "call" });
1060
1073
  function buildQueryParamsNode(node, options) {
1061
1074
  const { paramsType, paramsCasing, pathParamsType, dataReturnType, resolver } = options;
1062
- const responseName = resolver.resolveResponseName(node);
1063
- const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : void 0;
1075
+ const successNames = resolveSuccessNames(node, resolver);
1076
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : resolver.resolveResponseName(node);
1077
+ const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : null;
1064
1078
  const errorNames = resolveErrorNames(node, resolver);
1065
1079
  const TData = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
1066
1080
  const TError = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
@@ -1090,7 +1104,8 @@ function buildQueryParamsNode(node, options) {
1090
1104
  });
1091
1105
  }
1092
1106
  function Query({ name, queryKeyTypeName, queryOptionsName, queryKeyName, paramsType, paramsCasing, pathParamsType, dataReturnType, node, tsResolver, customOptions }) {
1093
- const responseName = tsResolver.resolveResponseName(node);
1107
+ const successNames = resolveSuccessNames(node, tsResolver);
1108
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
1094
1109
  const errorNames = resolveErrorNames(node, tsResolver);
1095
1110
  const TData = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
1096
1111
  const returnType = `UseQueryResult<TData, ${`ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`}> & { queryKey: TQueryKey }`;
@@ -1156,7 +1171,7 @@ const declarationPrinter$2 = functionPrinter({ mode: "declaration" });
1156
1171
  const callPrinter$2 = functionPrinter({ mode: "call" });
1157
1172
  function buildSuspenseInfiniteQueryParamsNode(node, options) {
1158
1173
  const { paramsType, paramsCasing, pathParamsType, resolver, pageParamGeneric } = options;
1159
- const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : void 0;
1174
+ const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : null;
1160
1175
  const optionsParam = ast.createFunctionParameter({
1161
1176
  name: "options",
1162
1177
  type: ast.createParamsType({
@@ -1177,7 +1192,8 @@ function buildSuspenseInfiniteQueryParamsNode(node, options) {
1177
1192
  });
1178
1193
  }
1179
1194
  function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName, paramsType, paramsCasing, pathParamsType, dataReturnType, node, tsResolver, customOptions, initialPageParam, queryParam }) {
1180
- const responseName = tsResolver.resolveResponseName(node);
1195
+ const successNames = resolveSuccessNames(node, tsResolver);
1196
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
1181
1197
  const errorNames = resolveErrorNames(node, tsResolver);
1182
1198
  const responseType = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
1183
1199
  const errorType = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
@@ -1189,9 +1205,9 @@ function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, query
1189
1205
  const rawQueryParams = getOperationParameters(node).query;
1190
1206
  const queryParamsTypeName = rawQueryParams.length > 0 ? (() => {
1191
1207
  const groupName = tsResolver.resolveQueryParamsName(node, rawQueryParams[0]);
1192
- return groupName !== tsResolver.resolveParamName(node, rawQueryParams[0]) ? groupName : void 0;
1193
- })() : void 0;
1194
- const queryParamType = queryParam && queryParamsTypeName ? `${queryParamsTypeName}['${queryParam}']` : void 0;
1208
+ return groupName !== tsResolver.resolveParamName(node, rawQueryParams[0]) ? groupName : null;
1209
+ })() : null;
1210
+ const queryParamType = queryParam && queryParamsTypeName ? `${queryParamsTypeName}['${queryParam}']` : null;
1195
1211
  const pageParamType = queryParamType ? isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType : fallbackPageParamType;
1196
1212
  const returnType = "UseSuspenseInfiniteQueryResult<TData, TError> & { queryKey: TQueryKey }";
1197
1213
  const generics = [
@@ -1258,7 +1274,8 @@ function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, query
1258
1274
  const declarationPrinter$1 = functionPrinter({ mode: "declaration" });
1259
1275
  const callPrinter$1 = functionPrinter({ mode: "call" });
1260
1276
  function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam, nextParam, previousParam, node, tsResolver, paramsCasing, paramsType, dataReturnType, pathParamsType, queryParam, queryKeyName }) {
1261
- const responseName = tsResolver.resolveResponseName(node);
1277
+ const successNames = resolveSuccessNames(node, tsResolver);
1278
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
1262
1279
  const queryFnDataType = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
1263
1280
  const errorNames = resolveErrorNames(node, tsResolver);
1264
1281
  const errorType = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
@@ -1270,9 +1287,9 @@ function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, curs
1270
1287
  const rawQueryParams = getOperationParameters(node).query;
1271
1288
  const queryParamsTypeName = rawQueryParams.length > 0 ? (() => {
1272
1289
  const groupName = tsResolver.resolveQueryParamsName(node, rawQueryParams[0]);
1273
- return groupName !== tsResolver.resolveParamName(node, rawQueryParams[0]) ? groupName : void 0;
1274
- })() : void 0;
1275
- const queryParamType = queryParam && queryParamsTypeName ? `${queryParamsTypeName}['${queryParam}']` : void 0;
1290
+ return groupName !== tsResolver.resolveParamName(node, rawQueryParams[0]) ? groupName : null;
1291
+ })() : null;
1292
+ const queryParamType = queryParam && queryParamsTypeName ? `${queryParamsTypeName}['${queryParam}']` : null;
1276
1293
  const pageParamType = queryParamType ? isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType : fallbackPageParamType;
1277
1294
  const paramsNode = getQueryOptionsParams(node, {
1278
1295
  paramsType,
@@ -1290,12 +1307,12 @@ function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, curs
1290
1307
  const queryKeyParamsCall = callPrinter$1.print(queryKeyParamsNode) ?? "";
1291
1308
  const enabledSource = buildEnabledCheck(queryKeyParamsNode);
1292
1309
  const enabledText = enabledSource ? `enabled: !!(${enabledSource}),` : "";
1293
- const hasNewParams = nextParam !== void 0 || previousParam !== void 0;
1310
+ const hasNewParams = nextParam != null || previousParam != null;
1294
1311
  const [getNextPageParamExpr, getPreviousPageParamExpr] = (() => {
1295
1312
  if (hasNewParams) {
1296
- const nextAccessor = nextParam ? getNestedAccessor(nextParam, "lastPage") : void 0;
1297
- const prevAccessor = previousParam ? getNestedAccessor(previousParam, "firstPage") : void 0;
1298
- return [nextAccessor ? `getNextPageParam: (lastPage) => ${nextAccessor}` : void 0, prevAccessor ? `getPreviousPageParam: (firstPage) => ${prevAccessor}` : void 0];
1313
+ const nextAccessor = nextParam ? getNestedAccessor(nextParam, "lastPage") : null;
1314
+ const prevAccessor = previousParam ? getNestedAccessor(previousParam, "firstPage") : null;
1315
+ return [nextAccessor ? `getNextPageParam: (lastPage) => ${nextAccessor}` : null, prevAccessor ? `getPreviousPageParam: (firstPage) => ${prevAccessor}` : null];
1299
1316
  }
1300
1317
  if (cursorParam) return [`getNextPageParam: (lastPage) => lastPage['${cursorParam}']`, `getPreviousPageParam: (firstPage) => firstPage['${cursorParam}']`];
1301
1318
  return [dataReturnType === "full" ? "getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage.data) && lastPage.data.length === 0 ? undefined : lastPageParam + 1" : "getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage) && lastPage.length === 0 ? undefined : lastPageParam + 1", "getPreviousPageParam: (_firstPage, _allPages, firstPageParam) => firstPageParam <= 1 ? undefined : firstPageParam - 1"];
@@ -1360,8 +1377,9 @@ const declarationPrinter = functionPrinter({ mode: "declaration" });
1360
1377
  const callPrinter = functionPrinter({ mode: "call" });
1361
1378
  function buildSuspenseQueryParamsNode(node, options) {
1362
1379
  const { paramsType, paramsCasing, pathParamsType, dataReturnType, resolver } = options;
1363
- const responseName = resolver.resolveResponseName(node);
1364
- const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : void 0;
1380
+ const successNames = resolveSuccessNames(node, resolver);
1381
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : resolver.resolveResponseName(node);
1382
+ const requestName = node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : null;
1365
1383
  const errorNames = resolveErrorNames(node, resolver);
1366
1384
  const TData = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
1367
1385
  const TError = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
@@ -1390,7 +1408,8 @@ function buildSuspenseQueryParamsNode(node, options) {
1390
1408
  });
1391
1409
  }
1392
1410
  function SuspenseQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName, paramsType, paramsCasing, pathParamsType, dataReturnType, node, tsResolver, customOptions }) {
1393
- const responseName = tsResolver.resolveResponseName(node);
1411
+ const successNames = resolveSuccessNames(node, tsResolver);
1412
+ const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
1394
1413
  const errorNames = resolveErrorNames(node, tsResolver);
1395
1414
  const TData = dataReturnType === "data" ? responseName : `ResponseConfig<${responseName}>`;
1396
1415
  const returnType = `UseSuspenseQueryResult<TData, ${`ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`}> & { queryKey: TQueryKey }`;
@@ -1449,4 +1468,4 @@ function SuspenseQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
1449
1468
  //#endregion
1450
1469
  export { mutationKeyTransformer as _, Mutation as a, InfiniteQuery as c, queryKeyTransformer as d, resolveOperationOverrides as f, MutationKey as g, resolveOperationTypeNames as h, Query as i, QueryOptions as l, getOperationParameters as m, SuspenseInfiniteQueryOptions as n, MutationOptions as o, resolveZodSchemaNames as p, SuspenseInfiniteQuery as r, InfiniteQueryOptions as s, SuspenseQuery as t, QueryKey as u, camelCase as v };
1451
1470
 
1452
- //# sourceMappingURL=components-BTwB9V-K.js.map
1471
+ //# sourceMappingURL=components-CDmg-RPi.js.map