@kubb/plugin-react-query 5.0.0-beta.79 → 5.0.0-beta.81
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.
- package/dist/index.cjs +193 -279
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +18 -170
- package/dist/index.js +193 -279
- package/dist/index.js.map +1 -1
- package/package.json +6 -7
package/dist/index.cjs
CHANGED
|
@@ -28,7 +28,6 @@ let node_path = require("node:path");
|
|
|
28
28
|
node_path = __toESM(node_path, 1);
|
|
29
29
|
let _kubb_core = require("@kubb/core");
|
|
30
30
|
let _kubb_plugin_ts = require("@kubb/plugin-ts");
|
|
31
|
-
let _kubb_plugin_zod = require("@kubb/plugin-zod");
|
|
32
31
|
let _kubb_renderer_jsx = require("@kubb/renderer-jsx");
|
|
33
32
|
let _kubb_renderer_jsx_jsx_runtime = require("@kubb/renderer-jsx/jsx-runtime");
|
|
34
33
|
let node_fs = require("node:fs");
|
|
@@ -557,16 +556,6 @@ function createGroupConfig(group) {
|
|
|
557
556
|
};
|
|
558
557
|
}
|
|
559
558
|
//#endregion
|
|
560
|
-
//#region ../../internals/client/src/builders/validatorOptions.ts
|
|
561
|
-
/**
|
|
562
|
-
* Returns `true` when any direction of the validator uses zod (used for dependency checks).
|
|
563
|
-
*/
|
|
564
|
-
function isValidatorEnabled(validator) {
|
|
565
|
-
if (!validator) return false;
|
|
566
|
-
if (validator === "zod") return true;
|
|
567
|
-
return Boolean(validator.request || validator.response);
|
|
568
|
-
}
|
|
569
|
-
//#endregion
|
|
570
559
|
//#region ../../internals/client/src/resolveClient.ts
|
|
571
560
|
/**
|
|
572
561
|
* Resolves which client plugin a consumer (react-query, vue-query, swr, mcp) should call for an
|
|
@@ -692,12 +681,15 @@ function MutationKey({ name, node, transformer }) {
|
|
|
692
681
|
* The grouped request options, ordered for both the destructured signature and the
|
|
693
682
|
* call passed to the underlying client.
|
|
694
683
|
*/
|
|
695
|
-
const requestGroupOrder = [
|
|
684
|
+
const requestGroupOrder$1 = [
|
|
696
685
|
"path",
|
|
697
686
|
"query",
|
|
698
687
|
"body",
|
|
699
688
|
"headers"
|
|
700
689
|
];
|
|
690
|
+
function maybeValueOrGetter(type) {
|
|
691
|
+
return `${type} | (() => ${type})`;
|
|
692
|
+
}
|
|
701
693
|
/**
|
|
702
694
|
* Builds the grouped `{ path, query, body, headers }` parameter that mirrors the client
|
|
703
695
|
* function signature. Only the groups the operation carries are emitted, typed from the
|
|
@@ -710,7 +702,7 @@ const requestGroupOrder = [
|
|
|
710
702
|
* `MaybeRefOrGetter` per group.
|
|
711
703
|
*/
|
|
712
704
|
function buildGroupedRequestParam(node, options) {
|
|
713
|
-
const { resolver, keys = requestGroupOrder, memberTypeWrapper } = options;
|
|
705
|
+
const { resolver, keys = requestGroupOrder$1, memberTypeWrapper } = options;
|
|
714
706
|
const { groups, hasRequiredPath, hasRequiredQuery, hasRequiredHeader } = getRequestGroupOptionality(node);
|
|
715
707
|
const names = keys.filter((key) => groups[key]);
|
|
716
708
|
if (names.length === 0) return null;
|
|
@@ -722,7 +714,7 @@ function buildGroupedRequestParam(node, options) {
|
|
|
722
714
|
};
|
|
723
715
|
const isOptional = names.every((name) => !requiredByGroup[name]);
|
|
724
716
|
const requestConfigName = resolver.resolveRequestConfigName(node);
|
|
725
|
-
const omittedKeys = requestGroupOrder.filter((key) => !keys.includes(key));
|
|
717
|
+
const omittedKeys = requestGroupOrder$1.filter((key) => !keys.includes(key));
|
|
726
718
|
const requestConfigType = omittedKeys.length > 0 ? `Omit<${requestConfigName}, ${omittedKeys.map((key) => `'${key}'`).join(" | ")}>` : requestConfigName;
|
|
727
719
|
if (memberTypeWrapper) {
|
|
728
720
|
const members = names.map((name) => ({
|
|
@@ -778,7 +770,7 @@ function buildClientCall(node, options) {
|
|
|
778
770
|
const { groups } = getRequestGroupOptionality(node);
|
|
779
771
|
return `${clientName}({ ${[
|
|
780
772
|
"...config",
|
|
781
|
-
...requestGroupOrder.filter((key) => groups[key]),
|
|
773
|
+
...requestGroupOrder$1.filter((key) => groups[key]),
|
|
782
774
|
signal ? "signal: config.signal ?? signal" : null,
|
|
783
775
|
"throwOnError: true"
|
|
784
776
|
].filter((part) => part !== null).join(", ")} })`;
|
|
@@ -806,51 +798,6 @@ function resolveOperationOverrides(node, override) {
|
|
|
806
798
|
return override.find((ov) => matchesPattern(node, ov))?.options ?? {};
|
|
807
799
|
}
|
|
808
800
|
/**
|
|
809
|
-
* Returns `'zod'` when response-direction parsing is enabled.
|
|
810
|
-
* The string shorthand `'zod'` also enables response parsing.
|
|
811
|
-
*/
|
|
812
|
-
function resolveResponseParser(parser) {
|
|
813
|
-
if (!parser) return null;
|
|
814
|
-
if (parser === "zod") return "zod";
|
|
815
|
-
return parser.response ?? null;
|
|
816
|
-
}
|
|
817
|
-
/**
|
|
818
|
-
* Returns `'zod'` when request body parsing is enabled.
|
|
819
|
-
* The string shorthand `'zod'` also enables request body parsing (existing behavior).
|
|
820
|
-
*/
|
|
821
|
-
function resolveRequestParser(parser) {
|
|
822
|
-
if (!parser) return null;
|
|
823
|
-
if (parser === "zod") return "zod";
|
|
824
|
-
return parser.request ?? null;
|
|
825
|
-
}
|
|
826
|
-
/**
|
|
827
|
-
* Returns `'zod'` when query-params parsing is enabled.
|
|
828
|
-
* Only the object form `{ request: 'zod' }` enables this. `parser: 'zod'` does not.
|
|
829
|
-
*/
|
|
830
|
-
function resolveQueryParamsParser(parser) {
|
|
831
|
-
if (!parser || parser === "zod") return null;
|
|
832
|
-
return parser.request ?? null;
|
|
833
|
-
}
|
|
834
|
-
/**
|
|
835
|
-
* Collects the Zod schema import names for an operation based on the active parser directions.
|
|
836
|
-
*
|
|
837
|
-
* - `parser: 'zod'`: response and request body names (backward-compatible behavior).
|
|
838
|
-
* - `parser: { request: 'zod' }`: request body and query params names.
|
|
839
|
-
* - `parser: { response: 'zod' }`: response name only.
|
|
840
|
-
* - `parser: { request: 'zod', response: 'zod' }`: all three.
|
|
841
|
-
*
|
|
842
|
-
* Returns an empty array when no resolver is provided or `parser` is falsy.
|
|
843
|
-
*/
|
|
844
|
-
function resolveZodSchemaNames(node, zodResolver, parser) {
|
|
845
|
-
if (!zodResolver || !parser) return [];
|
|
846
|
-
const { query: queryParams } = getOperationParameters(node, { paramsCasing: "original" });
|
|
847
|
-
return [
|
|
848
|
-
resolveResponseParser(parser) === "zod" ? zodResolver.resolveResponseName?.(node) : null,
|
|
849
|
-
resolveRequestParser(parser) === "zod" && node.requestBody?.content?.[0]?.schema ? zodResolver.resolveDataName?.(node) : null,
|
|
850
|
-
resolveQueryParamsParser(parser) === "zod" && queryParams.length > 0 ? zodResolver.resolveQueryParamsName?.(node, queryParams[0]) : null
|
|
851
|
-
].filter((n) => Boolean(n));
|
|
852
|
-
}
|
|
853
|
-
/**
|
|
854
801
|
* Build QueryKey params as the grouped `{ path, query, body }` object (NO headers, NO config),
|
|
855
802
|
* typed from the operation's `RequestConfig` minus `url`. The query key transformer reads the
|
|
856
803
|
* grouped `path`/`query`/`body` bindings.
|
|
@@ -1005,6 +952,30 @@ const customHookOptionsFileGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1005
952
|
}
|
|
1006
953
|
});
|
|
1007
954
|
//#endregion
|
|
955
|
+
//#region src/utils.ts
|
|
956
|
+
const requestGroupOrder = [
|
|
957
|
+
"path",
|
|
958
|
+
"query",
|
|
959
|
+
"body",
|
|
960
|
+
"headers"
|
|
961
|
+
];
|
|
962
|
+
/**
|
|
963
|
+
* Builds the object literal that resolves each request group to a concrete value, unwrapping a getter
|
|
964
|
+
* once before the value reaches the plain `queryKey`/`queryOptions` helpers. A getter must never reach a
|
|
965
|
+
* React Query key, which is hashed structurally. Returns `null` when the operation carries no request group.
|
|
966
|
+
*
|
|
967
|
+
* @example
|
|
968
|
+
* ```ts
|
|
969
|
+
* buildResolvedRequestParams(node) // { path: typeof path === 'function' ? path() : path }
|
|
970
|
+
* ```
|
|
971
|
+
*/
|
|
972
|
+
function buildResolvedRequestParams(node) {
|
|
973
|
+
const groups = getRequestGroups(node);
|
|
974
|
+
const names = requestGroupOrder.filter((key) => groups[key]);
|
|
975
|
+
if (names.length === 0) return null;
|
|
976
|
+
return `{ ${names.map((name) => `${name}: typeof ${name} === 'function' ? ${name}() : ${name}`).join(", ")} }`;
|
|
977
|
+
}
|
|
978
|
+
//#endregion
|
|
1008
979
|
//#region src/generators/hookOptionsGenerator.tsx
|
|
1009
980
|
/**
|
|
1010
981
|
* Emits the `HookOptions` type used by `customOptions`. Enabled when
|
|
@@ -1017,8 +988,8 @@ const hookOptionsGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1017
988
|
renderer: _kubb_renderer_jsx.jsxRenderer,
|
|
1018
989
|
operations(nodes, ctx) {
|
|
1019
990
|
const { resolver, config, root } = ctx;
|
|
1020
|
-
const { output, customOptions, query, mutation, suspense, infinite, group, override } = ctx.options;
|
|
1021
|
-
if (!customOptions) return null;
|
|
991
|
+
const { output, customOptions, query, mutation, suspense, infinite, group, override, hooks } = ctx.options;
|
|
992
|
+
if (!customOptions || !hooks) return null;
|
|
1022
993
|
const name = resolver.resolveHookOptionsName();
|
|
1023
994
|
const resolvedFile = resolver.resolveFile({
|
|
1024
995
|
name,
|
|
@@ -1162,51 +1133,8 @@ const hookOptionsGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1162
1133
|
}
|
|
1163
1134
|
});
|
|
1164
1135
|
//#endregion
|
|
1165
|
-
//#region src/components/QueryOptions.tsx
|
|
1166
|
-
const declarationPrinter$8 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1167
|
-
const callPrinter$8 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1168
|
-
function getQueryOptionsParams(node, options) {
|
|
1169
|
-
return buildQueryOptionsParams(node, options);
|
|
1170
|
-
}
|
|
1171
|
-
function QueryOptions({ name, clientName, node, tsResolver, queryKeyName }) {
|
|
1172
|
-
const successNames = resolveSuccessNames(node, tsResolver);
|
|
1173
|
-
const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
|
|
1174
|
-
const errorNames = resolveErrorNames(node, tsResolver);
|
|
1175
|
-
const TData = responseName;
|
|
1176
|
-
const TError = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
|
|
1177
|
-
const queryKeyParamsNode = buildQueryKeyParams(node, { resolver: tsResolver });
|
|
1178
|
-
const queryKeyParamsCall = callPrinter$8.print(queryKeyParamsNode) ?? "";
|
|
1179
|
-
const paramsNode = getQueryOptionsParams(node, { resolver: tsResolver });
|
|
1180
|
-
const paramsSignature = declarationPrinter$8.print(paramsNode) ?? "";
|
|
1181
|
-
const queryFnBody = `const { data } = await ${buildClientCall(node, {
|
|
1182
|
-
clientName,
|
|
1183
|
-
signal: true
|
|
1184
|
-
})}
|
|
1185
|
-
return data`;
|
|
1186
|
-
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
1187
|
-
name,
|
|
1188
|
-
isExportable: true,
|
|
1189
|
-
isIndexable: true,
|
|
1190
|
-
children: /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.Function, {
|
|
1191
|
-
name,
|
|
1192
|
-
export: true,
|
|
1193
|
-
params: paramsSignature,
|
|
1194
|
-
children: `
|
|
1195
|
-
const queryKey = ${queryKeyName}(${queryKeyParamsCall})
|
|
1196
|
-
return queryOptions<${TData}, ${TError}, ${TData}, typeof queryKey>({
|
|
1197
|
-
queryKey,
|
|
1198
|
-
queryFn: async ({ signal }) => {
|
|
1199
|
-
${queryFnBody}
|
|
1200
|
-
},
|
|
1201
|
-
})
|
|
1202
|
-
`
|
|
1203
|
-
})
|
|
1204
|
-
});
|
|
1205
|
-
}
|
|
1206
|
-
//#endregion
|
|
1207
1136
|
//#region src/components/InfiniteQuery.tsx
|
|
1208
|
-
const declarationPrinter$
|
|
1209
|
-
const callPrinter$7 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1137
|
+
const declarationPrinter$8 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1210
1138
|
function buildInfiniteQueryParamsNode(node, options) {
|
|
1211
1139
|
const { resolver, pageParamGeneric } = options;
|
|
1212
1140
|
const optionsParam = (0, _kubb_plugin_ts.createFunctionParameter)({
|
|
@@ -1217,7 +1145,10 @@ function buildInfiniteQueryParamsNode(node, options) {
|
|
|
1217
1145
|
}`,
|
|
1218
1146
|
default: "{}"
|
|
1219
1147
|
});
|
|
1220
|
-
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1148
|
+
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1149
|
+
resolver,
|
|
1150
|
+
memberTypeWrapper: maybeValueOrGetter
|
|
1151
|
+
}), optionsParam].filter((param) => param !== null) });
|
|
1221
1152
|
}
|
|
1222
1153
|
function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, tsResolver, initialPageParam, queryParam, customOptions }) {
|
|
1223
1154
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
@@ -1245,15 +1176,14 @@ function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
|
|
|
1245
1176
|
`TQueryKey extends QueryKey = ${queryKeyTypeName}`,
|
|
1246
1177
|
`TPageParam = ${pageParamType}`
|
|
1247
1178
|
];
|
|
1248
|
-
const
|
|
1249
|
-
const
|
|
1250
|
-
const
|
|
1251
|
-
const queryOptionsParamsCall = callPrinter$7.print(queryOptionsParamsNode) ?? "";
|
|
1179
|
+
const resolvedParams = buildResolvedRequestParams(node);
|
|
1180
|
+
const queryKeyArgs = resolvedParams ? "resolvedParams" : "";
|
|
1181
|
+
const queryOptionsArgs = resolvedParams ? "resolvedParams, config" : "config";
|
|
1252
1182
|
const paramsNode = buildInfiniteQueryParamsNode(node, {
|
|
1253
1183
|
resolver: tsResolver,
|
|
1254
1184
|
pageParamGeneric: "TPageParam"
|
|
1255
1185
|
});
|
|
1256
|
-
const paramsSignature = declarationPrinter$
|
|
1186
|
+
const paramsSignature = declarationPrinter$8.print(paramsNode) ?? "";
|
|
1257
1187
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
1258
1188
|
name,
|
|
1259
1189
|
isExportable: true,
|
|
@@ -1267,11 +1197,11 @@ function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
|
|
|
1267
1197
|
JSDoc: { comments: buildOperationComments(node) },
|
|
1268
1198
|
children: `
|
|
1269
1199
|
const { query: queryConfig = {}, client: config = {} } = options ?? {}
|
|
1270
|
-
const { client: queryClient, ...resolvedOptions } = queryConfig
|
|
1271
|
-
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${
|
|
1200
|
+
const { client: queryClient, ...resolvedOptions } = queryConfig${resolvedParams ? `\n const resolvedParams = ${resolvedParams}` : ""}
|
|
1201
|
+
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${queryKeyArgs})${customOptions ? `\n const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${node.operationId}' })` : ""}
|
|
1272
1202
|
|
|
1273
1203
|
const queryResult = useInfiniteQuery({
|
|
1274
|
-
...${queryOptionsName}(${
|
|
1204
|
+
...${queryOptionsName}(${queryOptionsArgs}),${customOptions ? "\n ...customOptions," : ""}
|
|
1275
1205
|
...resolvedOptions,
|
|
1276
1206
|
queryKey,
|
|
1277
1207
|
} as unknown as InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, queryClient) as ${returnType}
|
|
@@ -1284,9 +1214,51 @@ function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
|
|
|
1284
1214
|
});
|
|
1285
1215
|
}
|
|
1286
1216
|
//#endregion
|
|
1217
|
+
//#region src/components/QueryOptions.tsx
|
|
1218
|
+
const declarationPrinter$7 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1219
|
+
const callPrinter$4 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1220
|
+
function getQueryOptionsParams(node, options) {
|
|
1221
|
+
return buildQueryOptionsParams(node, options);
|
|
1222
|
+
}
|
|
1223
|
+
function QueryOptions({ name, clientName, node, tsResolver, queryKeyName }) {
|
|
1224
|
+
const successNames = resolveSuccessNames(node, tsResolver);
|
|
1225
|
+
const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
|
|
1226
|
+
const errorNames = resolveErrorNames(node, tsResolver);
|
|
1227
|
+
const TData = responseName;
|
|
1228
|
+
const TError = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
|
|
1229
|
+
const queryKeyParamsNode = buildQueryKeyParams(node, { resolver: tsResolver });
|
|
1230
|
+
const queryKeyParamsCall = callPrinter$4.print(queryKeyParamsNode) ?? "";
|
|
1231
|
+
const paramsNode = getQueryOptionsParams(node, { resolver: tsResolver });
|
|
1232
|
+
const paramsSignature = declarationPrinter$7.print(paramsNode) ?? "";
|
|
1233
|
+
const queryFnBody = `const { data } = await ${buildClientCall(node, {
|
|
1234
|
+
clientName,
|
|
1235
|
+
signal: true
|
|
1236
|
+
})}
|
|
1237
|
+
return data`;
|
|
1238
|
+
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
1239
|
+
name,
|
|
1240
|
+
isExportable: true,
|
|
1241
|
+
isIndexable: true,
|
|
1242
|
+
children: /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.Function, {
|
|
1243
|
+
name,
|
|
1244
|
+
export: true,
|
|
1245
|
+
params: paramsSignature,
|
|
1246
|
+
children: `
|
|
1247
|
+
const queryKey = ${queryKeyName}(${queryKeyParamsCall})
|
|
1248
|
+
return queryOptions<${TData}, ${TError}, ${TData}, typeof queryKey>({
|
|
1249
|
+
queryKey,
|
|
1250
|
+
queryFn: async ({ signal }) => {
|
|
1251
|
+
${queryFnBody}
|
|
1252
|
+
},
|
|
1253
|
+
})
|
|
1254
|
+
`
|
|
1255
|
+
})
|
|
1256
|
+
});
|
|
1257
|
+
}
|
|
1258
|
+
//#endregion
|
|
1287
1259
|
//#region src/components/InfiniteQueryOptions.tsx
|
|
1288
1260
|
const declarationPrinter$6 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1289
|
-
const callPrinter$
|
|
1261
|
+
const callPrinter$3 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1290
1262
|
function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam, nextParam, previousParam, node, tsResolver, queryParam, queryKeyName }) {
|
|
1291
1263
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
1292
1264
|
const queryFnDataType = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
|
|
@@ -1305,7 +1277,7 @@ function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam,
|
|
|
1305
1277
|
const queryParamType = queryParam && queryParamsTypeName ? `${queryParamsTypeName}['${queryParam}']` : null;
|
|
1306
1278
|
const pageParamType = queryParamType ? isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType : fallbackPageParamType;
|
|
1307
1279
|
const queryKeyParamsNode = buildQueryKeyParams(node, { resolver: tsResolver });
|
|
1308
|
-
const queryKeyParamsCall = callPrinter$
|
|
1280
|
+
const queryKeyParamsCall = callPrinter$3.print(queryKeyParamsNode) ?? "";
|
|
1309
1281
|
const paramsNode = getQueryOptionsParams(node, { resolver: tsResolver });
|
|
1310
1282
|
const paramsSignature = declarationPrinter$6.print(paramsNode) ?? "";
|
|
1311
1283
|
const queryFnBody = `const { data } = await ${buildClientCall(node, {
|
|
@@ -1377,7 +1349,7 @@ return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${que
|
|
|
1377
1349
|
//#endregion
|
|
1378
1350
|
//#region src/components/MutationOptions.tsx
|
|
1379
1351
|
const declarationPrinter$5 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1380
|
-
const callPrinter$
|
|
1352
|
+
const callPrinter$2 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1381
1353
|
function buildMutationConfigParamsNode(node) {
|
|
1382
1354
|
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [(0, _kubb_plugin_ts.createFunctionParameter)({
|
|
1383
1355
|
name: "config",
|
|
@@ -1396,7 +1368,7 @@ function MutationOptions({ name, clientName, node, tsResolver, mutationKeyName }
|
|
|
1396
1368
|
const hasMutationParams = groupedParam !== null;
|
|
1397
1369
|
const groupedParamsNode = (0, _kubb_plugin_ts.createFunctionParameters)({ params: groupedParam ? [groupedParam] : [] });
|
|
1398
1370
|
const TRequest = hasMutationParams ? tsResolver.resolveRequestConfigName(node) : "undefined";
|
|
1399
|
-
const argBindingStr = hasMutationParams ? callPrinter$
|
|
1371
|
+
const argBindingStr = hasMutationParams ? callPrinter$2.print(groupedParamsNode) ?? "" : "_";
|
|
1400
1372
|
const mutationFnBody = `const { data } = await ${buildClientCall(node, {
|
|
1401
1373
|
clientName,
|
|
1402
1374
|
signal: false
|
|
@@ -1426,7 +1398,7 @@ function MutationOptions({ name, clientName, node, tsResolver, mutationKeyName }
|
|
|
1426
1398
|
//#endregion
|
|
1427
1399
|
//#region src/components/Mutation.tsx
|
|
1428
1400
|
const declarationPrinter$4 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1429
|
-
const callPrinter$
|
|
1401
|
+
const callPrinter$1 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1430
1402
|
function resolveMutationRequestType(node, resolver) {
|
|
1431
1403
|
return buildGroupedRequestParam(node, { resolver }) ? resolver.resolveRequestConfigName(node) : "undefined";
|
|
1432
1404
|
}
|
|
@@ -1461,7 +1433,7 @@ function Mutation({ name, mutationOptionsName, node, tsResolver, mutationKeyName
|
|
|
1461
1433
|
].join(", ");
|
|
1462
1434
|
const returnType = `UseMutationResult<${generics}>`;
|
|
1463
1435
|
const mutationOptionsConfigNode = buildMutationConfigParamsNode(node);
|
|
1464
|
-
const mutationOptionsParamsCall = callPrinter$
|
|
1436
|
+
const mutationOptionsParamsCall = callPrinter$1.print(mutationOptionsConfigNode) ?? "";
|
|
1465
1437
|
const paramsNode = buildMutationParamsNode(node, { resolver: tsResolver });
|
|
1466
1438
|
const paramsSignature = declarationPrinter$4.print(paramsNode) ?? "";
|
|
1467
1439
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
@@ -1493,7 +1465,6 @@ function Mutation({ name, mutationOptionsName, node, tsResolver, mutationKeyName
|
|
|
1493
1465
|
//#endregion
|
|
1494
1466
|
//#region src/components/Query.tsx
|
|
1495
1467
|
const declarationPrinter$3 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1496
|
-
const callPrinter$3 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1497
1468
|
function buildQueryParamsNode(node, options) {
|
|
1498
1469
|
const { resolver } = options;
|
|
1499
1470
|
const successNames = resolveSuccessNames(node, resolver);
|
|
@@ -1513,7 +1484,10 @@ function buildQueryParamsNode(node, options) {
|
|
|
1513
1484
|
}`,
|
|
1514
1485
|
default: "{}"
|
|
1515
1486
|
});
|
|
1516
|
-
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1487
|
+
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1488
|
+
resolver,
|
|
1489
|
+
memberTypeWrapper: maybeValueOrGetter
|
|
1490
|
+
}), optionsParam].filter((param) => param !== null) });
|
|
1517
1491
|
}
|
|
1518
1492
|
function Query({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, tsResolver, customOptions }) {
|
|
1519
1493
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
@@ -1526,10 +1500,9 @@ function Query({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, t
|
|
|
1526
1500
|
`TQueryData = ${TData}`,
|
|
1527
1501
|
`TQueryKey extends QueryKey = ${queryKeyTypeName}`
|
|
1528
1502
|
];
|
|
1529
|
-
const
|
|
1530
|
-
const
|
|
1531
|
-
const
|
|
1532
|
-
const queryOptionsParamsCall = callPrinter$3.print(queryOptionsParamsNode) ?? "";
|
|
1503
|
+
const resolvedParams = buildResolvedRequestParams(node);
|
|
1504
|
+
const queryKeyArgs = resolvedParams ? "resolvedParams" : "";
|
|
1505
|
+
const queryOptionsArgs = resolvedParams ? "resolvedParams, config" : "config";
|
|
1533
1506
|
const paramsNode = buildQueryParamsNode(node, { resolver: tsResolver });
|
|
1534
1507
|
const paramsSignature = declarationPrinter$3.print(paramsNode) ?? "";
|
|
1535
1508
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
@@ -1545,11 +1518,11 @@ function Query({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, t
|
|
|
1545
1518
|
JSDoc: { comments: buildOperationComments(node) },
|
|
1546
1519
|
children: `
|
|
1547
1520
|
const { query: queryConfig = {}, client: config = {} } = options ?? {}
|
|
1548
|
-
const { client: queryClient, ...resolvedOptions } = queryConfig
|
|
1549
|
-
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${
|
|
1521
|
+
const { client: queryClient, ...resolvedOptions } = queryConfig${resolvedParams ? `\n const resolvedParams = ${resolvedParams}` : ""}
|
|
1522
|
+
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${queryKeyArgs})${customOptions ? `\n const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${node.operationId}' })` : ""}
|
|
1550
1523
|
|
|
1551
1524
|
const queryResult = useQuery({
|
|
1552
|
-
...${queryOptionsName}(${
|
|
1525
|
+
...${queryOptionsName}(${queryOptionsArgs}),${customOptions ? "\n ...customOptions," : ""}
|
|
1553
1526
|
...resolvedOptions,
|
|
1554
1527
|
queryKey,
|
|
1555
1528
|
} as unknown as QueryObserverOptions, queryClient) as ${returnType}
|
|
@@ -1564,7 +1537,6 @@ function Query({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, t
|
|
|
1564
1537
|
//#endregion
|
|
1565
1538
|
//#region src/components/SuspenseInfiniteQuery.tsx
|
|
1566
1539
|
const declarationPrinter$2 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1567
|
-
const callPrinter$2 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1568
1540
|
function buildSuspenseInfiniteQueryParamsNode(node, options) {
|
|
1569
1541
|
const { resolver, pageParamGeneric } = options;
|
|
1570
1542
|
const optionsParam = (0, _kubb_plugin_ts.createFunctionParameter)({
|
|
@@ -1575,7 +1547,10 @@ function buildSuspenseInfiniteQueryParamsNode(node, options) {
|
|
|
1575
1547
|
}`,
|
|
1576
1548
|
default: "{}"
|
|
1577
1549
|
});
|
|
1578
|
-
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1550
|
+
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1551
|
+
resolver,
|
|
1552
|
+
memberTypeWrapper: maybeValueOrGetter
|
|
1553
|
+
}), optionsParam].filter((param) => param !== null) });
|
|
1579
1554
|
}
|
|
1580
1555
|
function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, tsResolver, customOptions, initialPageParam, queryParam }) {
|
|
1581
1556
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
@@ -1603,10 +1578,9 @@ function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, query
|
|
|
1603
1578
|
`TQueryKey extends QueryKey = ${queryKeyTypeName}`,
|
|
1604
1579
|
`TPageParam = ${pageParamType}`
|
|
1605
1580
|
];
|
|
1606
|
-
const
|
|
1607
|
-
const
|
|
1608
|
-
const
|
|
1609
|
-
const queryOptionsParamsCall = callPrinter$2.print(queryOptionsParamsNode) ?? "";
|
|
1581
|
+
const resolvedParams = buildResolvedRequestParams(node);
|
|
1582
|
+
const queryKeyArgs = resolvedParams ? "resolvedParams" : "";
|
|
1583
|
+
const queryOptionsArgs = resolvedParams ? "resolvedParams, config" : "config";
|
|
1610
1584
|
const paramsNode = buildSuspenseInfiniteQueryParamsNode(node, {
|
|
1611
1585
|
resolver: tsResolver,
|
|
1612
1586
|
pageParamGeneric: "TPageParam"
|
|
@@ -1625,11 +1599,11 @@ function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, query
|
|
|
1625
1599
|
JSDoc: { comments: buildOperationComments(node) },
|
|
1626
1600
|
children: `
|
|
1627
1601
|
const { query: queryConfig = {}, client: config = {} } = options ?? {}
|
|
1628
|
-
const { client: queryClient, ...resolvedOptions } = queryConfig
|
|
1629
|
-
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${
|
|
1602
|
+
const { client: queryClient, ...resolvedOptions } = queryConfig${resolvedParams ? `\n const resolvedParams = ${resolvedParams}` : ""}
|
|
1603
|
+
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${queryKeyArgs})${customOptions ? `\n const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${node.operationId}' })` : ""}
|
|
1630
1604
|
|
|
1631
1605
|
const queryResult = useSuspenseInfiniteQuery({
|
|
1632
|
-
...${queryOptionsName}(${
|
|
1606
|
+
...${queryOptionsName}(${queryOptionsArgs}),${customOptions ? "\n ...customOptions," : ""}
|
|
1633
1607
|
...resolvedOptions,
|
|
1634
1608
|
queryKey,
|
|
1635
1609
|
} as unknown as UseSuspenseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, queryClient) as ${returnType}
|
|
@@ -1644,7 +1618,7 @@ function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, query
|
|
|
1644
1618
|
//#endregion
|
|
1645
1619
|
//#region src/components/SuspenseInfiniteQueryOptions.tsx
|
|
1646
1620
|
const declarationPrinter$1 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1647
|
-
const callPrinter
|
|
1621
|
+
const callPrinter = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1648
1622
|
function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam, nextParam, previousParam, node, tsResolver, queryParam, queryKeyName }) {
|
|
1649
1623
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
1650
1624
|
const queryFnDataType = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
|
|
@@ -1670,7 +1644,7 @@ function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, curs
|
|
|
1670
1644
|
})}
|
|
1671
1645
|
return data`;
|
|
1672
1646
|
const queryKeyParamsNode = buildQueryKeyParams(node, { resolver: tsResolver });
|
|
1673
|
-
const queryKeyParamsCall = callPrinter
|
|
1647
|
+
const queryKeyParamsCall = callPrinter.print(queryKeyParamsNode) ?? "";
|
|
1674
1648
|
const hasNewParams = nextParam != null || previousParam != null;
|
|
1675
1649
|
const [getNextPageParamExpr, getPreviousPageParamExpr] = (() => {
|
|
1676
1650
|
if (hasNewParams) {
|
|
@@ -1735,7 +1709,6 @@ return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${que
|
|
|
1735
1709
|
//#endregion
|
|
1736
1710
|
//#region src/components/SuspenseQuery.tsx
|
|
1737
1711
|
const declarationPrinter = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1738
|
-
const callPrinter = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1739
1712
|
function buildSuspenseQueryParamsNode(node, options) {
|
|
1740
1713
|
const { resolver } = options;
|
|
1741
1714
|
const successNames = resolveSuccessNames(node, resolver);
|
|
@@ -1754,7 +1727,10 @@ function buildSuspenseQueryParamsNode(node, options) {
|
|
|
1754
1727
|
}`,
|
|
1755
1728
|
default: "{}"
|
|
1756
1729
|
});
|
|
1757
|
-
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1730
|
+
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1731
|
+
resolver,
|
|
1732
|
+
memberTypeWrapper: maybeValueOrGetter
|
|
1733
|
+
}), optionsParam].filter((param) => param !== null) });
|
|
1758
1734
|
}
|
|
1759
1735
|
function SuspenseQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, tsResolver, customOptions }) {
|
|
1760
1736
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
@@ -1763,10 +1739,9 @@ function SuspenseQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
|
|
|
1763
1739
|
const TData = responseName;
|
|
1764
1740
|
const returnType = `UseSuspenseQueryResult<TData, ${`ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`}> & { queryKey: TQueryKey }`;
|
|
1765
1741
|
const generics = [`TData = ${TData}`, `TQueryKey extends QueryKey = ${queryKeyTypeName}`];
|
|
1766
|
-
const
|
|
1767
|
-
const
|
|
1768
|
-
const
|
|
1769
|
-
const queryOptionsParamsCall = callPrinter.print(queryOptionsParamsNode) ?? "";
|
|
1742
|
+
const resolvedParams = buildResolvedRequestParams(node);
|
|
1743
|
+
const queryKeyArgs = resolvedParams ? "resolvedParams" : "";
|
|
1744
|
+
const queryOptionsArgs = resolvedParams ? "resolvedParams, config" : "config";
|
|
1770
1745
|
const paramsNode = buildSuspenseQueryParamsNode(node, { resolver: tsResolver });
|
|
1771
1746
|
const paramsSignature = declarationPrinter.print(paramsNode) ?? "";
|
|
1772
1747
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
@@ -1782,11 +1757,11 @@ function SuspenseQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
|
|
|
1782
1757
|
JSDoc: { comments: buildOperationComments(node) },
|
|
1783
1758
|
children: `
|
|
1784
1759
|
const { query: queryConfig = {}, client: config = {} } = options ?? {}
|
|
1785
|
-
const { client: queryClient, ...resolvedOptions } = queryConfig
|
|
1786
|
-
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${
|
|
1760
|
+
const { client: queryClient, ...resolvedOptions } = queryConfig${resolvedParams ? `\n const resolvedParams = ${resolvedParams}` : ""}
|
|
1761
|
+
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${queryKeyArgs})${customOptions ? `\n const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${node.operationId}' })` : ""}
|
|
1787
1762
|
|
|
1788
1763
|
const queryResult = useSuspenseQuery({
|
|
1789
|
-
...${queryOptionsName}(${
|
|
1764
|
+
...${queryOptionsName}(${queryOptionsArgs}),${customOptions ? "\n ...customOptions," : ""}
|
|
1790
1765
|
...resolvedOptions,
|
|
1791
1766
|
queryKey,
|
|
1792
1767
|
} as unknown as UseSuspenseQueryOptions, queryClient) as ${returnType}
|
|
@@ -1812,7 +1787,7 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1812
1787
|
operation(node, ctx) {
|
|
1813
1788
|
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
1814
1789
|
const { config, driver, resolver, root } = ctx;
|
|
1815
|
-
const { output, query, mutation, infinite,
|
|
1790
|
+
const { output, query, mutation, infinite, client, group, customOptions, hooks } = ctx.options;
|
|
1816
1791
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
1817
1792
|
if (!pluginTs) return null;
|
|
1818
1793
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
@@ -1862,14 +1837,6 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1862
1837
|
includeParams: false
|
|
1863
1838
|
})
|
|
1864
1839
|
].filter((name) => Boolean(name));
|
|
1865
|
-
const pluginZod = isValidatorEnabled(validator) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
1866
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
1867
|
-
const fileZod = zodResolver ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
1868
|
-
root,
|
|
1869
|
-
output: pluginZod?.options?.output ?? output,
|
|
1870
|
-
group: pluginZod?.options?.group ?? void 0
|
|
1871
|
-
}) : null;
|
|
1872
|
-
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, validator);
|
|
1873
1840
|
const calledClientName = contractOp.name;
|
|
1874
1841
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
1875
1842
|
baseName: meta.file.baseName,
|
|
@@ -1892,11 +1859,6 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1892
1859
|
}
|
|
1893
1860
|
}),
|
|
1894
1861
|
children: [
|
|
1895
|
-
fileZod && zodSchemaNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
1896
|
-
name: zodSchemaNames,
|
|
1897
|
-
root: meta.file.path,
|
|
1898
|
-
path: fileZod.path
|
|
1899
|
-
}),
|
|
1900
1862
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
1901
1863
|
name: [contractOp.name],
|
|
1902
1864
|
root: meta.file.path,
|
|
@@ -1946,31 +1908,33 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1946
1908
|
initialPageParam: infiniteOptions.initialPageParam,
|
|
1947
1909
|
queryParam: infiniteOptions.queryParam
|
|
1948
1910
|
}),
|
|
1949
|
-
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1911
|
+
hooks && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
1912
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
1913
|
+
name: ["useInfiniteQuery"],
|
|
1914
|
+
path: importPath
|
|
1915
|
+
}),
|
|
1916
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
1917
|
+
name: [
|
|
1918
|
+
"QueryKey",
|
|
1919
|
+
"QueryClient",
|
|
1920
|
+
"InfiniteQueryObserverOptions",
|
|
1921
|
+
"UseInfiniteQueryResult"
|
|
1922
|
+
],
|
|
1923
|
+
path: importPath,
|
|
1924
|
+
isTypeOnly: true
|
|
1925
|
+
}),
|
|
1926
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(InfiniteQuery, {
|
|
1927
|
+
name: queryName,
|
|
1928
|
+
queryOptionsName,
|
|
1929
|
+
queryKeyName,
|
|
1930
|
+
queryKeyTypeName,
|
|
1931
|
+
node,
|
|
1932
|
+
tsResolver,
|
|
1933
|
+
initialPageParam: infiniteOptions.initialPageParam,
|
|
1934
|
+
queryParam: infiniteOptions.queryParam,
|
|
1935
|
+
customOptions
|
|
1936
|
+
})
|
|
1937
|
+
] })
|
|
1974
1938
|
]
|
|
1975
1939
|
});
|
|
1976
1940
|
}
|
|
@@ -1988,7 +1952,7 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1988
1952
|
operation(node, ctx) {
|
|
1989
1953
|
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
1990
1954
|
const { config, driver, resolver, root } = ctx;
|
|
1991
|
-
const { output, query, mutation,
|
|
1955
|
+
const { output, query, mutation, client, group, customOptions, hooks } = ctx.options;
|
|
1992
1956
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
1993
1957
|
if (!pluginTs) return null;
|
|
1994
1958
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
@@ -2024,14 +1988,6 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2024
1988
|
order: "body-response-first",
|
|
2025
1989
|
includeParams: false
|
|
2026
1990
|
})].filter((name) => Boolean(name));
|
|
2027
|
-
const pluginZod = isValidatorEnabled(validator) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
2028
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
2029
|
-
const fileZod = zodResolver ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
2030
|
-
root,
|
|
2031
|
-
output: pluginZod?.options?.output ?? output,
|
|
2032
|
-
group: pluginZod?.options?.group ?? void 0
|
|
2033
|
-
}) : null;
|
|
2034
|
-
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, validator);
|
|
2035
1991
|
const calledClientName = contractOp.name;
|
|
2036
1992
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
2037
1993
|
baseName: meta.file.baseName,
|
|
@@ -2054,11 +2010,6 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2054
2010
|
}
|
|
2055
2011
|
}),
|
|
2056
2012
|
children: [
|
|
2057
|
-
fileZod && zodSchemaNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2058
|
-
name: zodSchemaNames,
|
|
2059
|
-
root: meta.file.path,
|
|
2060
|
-
path: fileZod.path
|
|
2061
|
-
}),
|
|
2062
2013
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2063
2014
|
name: [contractOp.name],
|
|
2064
2015
|
root: meta.file.path,
|
|
@@ -2096,7 +2047,7 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2096
2047
|
node,
|
|
2097
2048
|
tsResolver
|
|
2098
2049
|
}),
|
|
2099
|
-
mutation && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2050
|
+
mutation && hooks && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2100
2051
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2101
2052
|
name: ["useMutation"],
|
|
2102
2053
|
path: importPath
|
|
@@ -2137,7 +2088,7 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2137
2088
|
operation(node, ctx) {
|
|
2138
2089
|
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
2139
2090
|
const { config, driver, resolver, root } = ctx;
|
|
2140
|
-
const { output, query, mutation,
|
|
2091
|
+
const { output, query, mutation, client, group, customOptions, hooks } = ctx.options;
|
|
2141
2092
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
2142
2093
|
if (!pluginTs) return null;
|
|
2143
2094
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
@@ -2175,14 +2126,6 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2175
2126
|
order: "body-response-first",
|
|
2176
2127
|
includeParams: false
|
|
2177
2128
|
})].filter((name) => Boolean(name));
|
|
2178
|
-
const pluginZod = isValidatorEnabled(validator) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
2179
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
2180
|
-
const fileZod = zodResolver ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
2181
|
-
root,
|
|
2182
|
-
output: pluginZod?.options?.output ?? output,
|
|
2183
|
-
group: pluginZod?.options?.group ?? void 0
|
|
2184
|
-
}) : null;
|
|
2185
|
-
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, validator);
|
|
2186
2129
|
const calledClientName = contractOp.name;
|
|
2187
2130
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
2188
2131
|
baseName: meta.file.baseName,
|
|
@@ -2205,11 +2148,6 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2205
2148
|
}
|
|
2206
2149
|
}),
|
|
2207
2150
|
children: [
|
|
2208
|
-
fileZod && zodSchemaNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2209
|
-
name: zodSchemaNames,
|
|
2210
|
-
root: meta.file.path,
|
|
2211
|
-
path: fileZod.path
|
|
2212
|
-
}),
|
|
2213
2151
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2214
2152
|
name: [contractOp.name],
|
|
2215
2153
|
root: meta.file.path,
|
|
@@ -2249,7 +2187,7 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2249
2187
|
node,
|
|
2250
2188
|
tsResolver
|
|
2251
2189
|
}),
|
|
2252
|
-
query && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2190
|
+
query && hooks && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2253
2191
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2254
2192
|
name: ["useQuery"],
|
|
2255
2193
|
path: importPath
|
|
@@ -2283,7 +2221,7 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2283
2221
|
/**
|
|
2284
2222
|
* Built-in generator for `useSuspenseInfiniteQuery` hooks. Enabled when both
|
|
2285
2223
|
* `suspense` and `infinite` are configured. Combines suspense semantics with
|
|
2286
|
-
* cursor-based pagination
|
|
2224
|
+
* cursor-based pagination. Handlers throw promises while loading and pull
|
|
2287
2225
|
* additional pages on demand.
|
|
2288
2226
|
*/
|
|
2289
2227
|
const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
@@ -2292,7 +2230,7 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2292
2230
|
operation(node, ctx) {
|
|
2293
2231
|
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
2294
2232
|
const { config, driver, resolver, root } = ctx;
|
|
2295
|
-
const { output, query, mutation, infinite, suspense,
|
|
2233
|
+
const { output, query, mutation, infinite, suspense, client, group, customOptions, hooks } = ctx.options;
|
|
2296
2234
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
2297
2235
|
if (!pluginTs) return null;
|
|
2298
2236
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
@@ -2342,14 +2280,6 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2342
2280
|
includeParams: false
|
|
2343
2281
|
})
|
|
2344
2282
|
].filter((name) => Boolean(name));
|
|
2345
|
-
const pluginZod = isValidatorEnabled(validator) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
2346
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
2347
|
-
const fileZod = zodResolver ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
2348
|
-
root,
|
|
2349
|
-
output: pluginZod?.options?.output ?? output,
|
|
2350
|
-
group: pluginZod?.options?.group ?? void 0
|
|
2351
|
-
}) : null;
|
|
2352
|
-
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, validator);
|
|
2353
2283
|
const calledClientName = contractOp.name;
|
|
2354
2284
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
2355
2285
|
baseName: meta.file.baseName,
|
|
@@ -2372,11 +2302,6 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2372
2302
|
}
|
|
2373
2303
|
}),
|
|
2374
2304
|
children: [
|
|
2375
|
-
fileZod && zodSchemaNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2376
|
-
name: zodSchemaNames,
|
|
2377
|
-
root: meta.file.path,
|
|
2378
|
-
path: fileZod.path
|
|
2379
|
-
}),
|
|
2380
2305
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2381
2306
|
name: [contractOp.name],
|
|
2382
2307
|
root: meta.file.path,
|
|
@@ -2426,31 +2351,33 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2426
2351
|
initialPageParam: infiniteOptions.initialPageParam,
|
|
2427
2352
|
queryParam: infiniteOptions.queryParam
|
|
2428
2353
|
}),
|
|
2429
|
-
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2354
|
+
hooks && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2355
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2356
|
+
name: ["useSuspenseInfiniteQuery"],
|
|
2357
|
+
path: importPath
|
|
2358
|
+
}),
|
|
2359
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2360
|
+
name: [
|
|
2361
|
+
"QueryKey",
|
|
2362
|
+
"QueryClient",
|
|
2363
|
+
"UseSuspenseInfiniteQueryOptions",
|
|
2364
|
+
"UseSuspenseInfiniteQueryResult"
|
|
2365
|
+
],
|
|
2366
|
+
path: importPath,
|
|
2367
|
+
isTypeOnly: true
|
|
2368
|
+
}),
|
|
2369
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(SuspenseInfiniteQuery, {
|
|
2370
|
+
name: queryName,
|
|
2371
|
+
queryOptionsName,
|
|
2372
|
+
queryKeyName,
|
|
2373
|
+
queryKeyTypeName,
|
|
2374
|
+
node,
|
|
2375
|
+
tsResolver,
|
|
2376
|
+
initialPageParam: infiniteOptions.initialPageParam,
|
|
2377
|
+
queryParam: infiniteOptions.queryParam,
|
|
2378
|
+
customOptions
|
|
2379
|
+
})
|
|
2380
|
+
] })
|
|
2454
2381
|
]
|
|
2455
2382
|
});
|
|
2456
2383
|
}
|
|
@@ -2469,7 +2396,7 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2469
2396
|
operation(node, ctx) {
|
|
2470
2397
|
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
2471
2398
|
const { config, driver, resolver, root } = ctx;
|
|
2472
|
-
const { output, query, mutation, suspense,
|
|
2399
|
+
const { output, query, mutation, suspense, client, group, customOptions, hooks } = ctx.options;
|
|
2473
2400
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
2474
2401
|
if (!pluginTs) return null;
|
|
2475
2402
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
@@ -2507,14 +2434,6 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2507
2434
|
order: "body-response-first",
|
|
2508
2435
|
includeParams: false
|
|
2509
2436
|
})].filter((name) => Boolean(name));
|
|
2510
|
-
const pluginZod = isValidatorEnabled(validator) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
2511
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
2512
|
-
const fileZod = zodResolver ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
2513
|
-
root,
|
|
2514
|
-
output: pluginZod?.options?.output ?? output,
|
|
2515
|
-
group: pluginZod?.options?.group ?? void 0
|
|
2516
|
-
}) : null;
|
|
2517
|
-
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, validator);
|
|
2518
2437
|
const calledClientName = contractOp.name;
|
|
2519
2438
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
2520
2439
|
baseName: meta.file.baseName,
|
|
@@ -2537,11 +2456,6 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2537
2456
|
}
|
|
2538
2457
|
}),
|
|
2539
2458
|
children: [
|
|
2540
|
-
fileZod && zodSchemaNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2541
|
-
name: zodSchemaNames,
|
|
2542
|
-
root: meta.file.path,
|
|
2543
|
-
path: fileZod.path
|
|
2544
|
-
}),
|
|
2545
2459
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2546
2460
|
name: [contractOp.name],
|
|
2547
2461
|
root: meta.file.path,
|
|
@@ -2581,7 +2495,7 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2581
2495
|
node,
|
|
2582
2496
|
tsResolver
|
|
2583
2497
|
}),
|
|
2584
|
-
suspense && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2498
|
+
suspense && hooks && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2585
2499
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2586
2500
|
name: ["useSuspenseQuery"],
|
|
2587
2501
|
path: importPath
|
|
@@ -2734,8 +2648,8 @@ const resolverReactQuery = (0, _kubb_core.defineResolver)(() => ({
|
|
|
2734
2648
|
const pluginReactQueryName = "plugin-react-query";
|
|
2735
2649
|
/**
|
|
2736
2650
|
* Generates one TanStack Query hook per OpenAPI operation for React. Queries
|
|
2737
|
-
* become `
|
|
2738
|
-
* become `
|
|
2651
|
+
* become `useFoo`, with `useFooSuspense` and `useFooInfinite` variants.
|
|
2652
|
+
* Mutations become `useFoo`. Each hook is fully typed: query keys, input
|
|
2739
2653
|
* variables, response data, and error shape all come from the spec.
|
|
2740
2654
|
*
|
|
2741
2655
|
* @example
|
|
@@ -2761,7 +2675,7 @@ const pluginReactQuery = (0, _kubb_core.definePlugin)((options) => {
|
|
|
2761
2675
|
const { output = {
|
|
2762
2676
|
path: "hooks",
|
|
2763
2677
|
barrel: { type: "named" }
|
|
2764
|
-
}, group, exclude = [], include, override = [],
|
|
2678
|
+
}, group, exclude = [], include, override = [], suspense = {}, infinite = false, mutation = {}, query = {}, mutationKey = mutationKeyTransformer, queryKey = queryKeyTransformer, customOptions, hooks = false, client, resolver: userResolver, macros: userMacros } = options;
|
|
2765
2679
|
const selectedGenerators = [
|
|
2766
2680
|
queryGenerator,
|
|
2767
2681
|
suspenseQueryGenerator,
|
|
@@ -2775,7 +2689,7 @@ const pluginReactQuery = (0, _kubb_core.definePlugin)((options) => {
|
|
|
2775
2689
|
return {
|
|
2776
2690
|
name: pluginReactQueryName,
|
|
2777
2691
|
options,
|
|
2778
|
-
dependencies: [_kubb_plugin_ts.pluginTsName
|
|
2692
|
+
dependencies: [_kubb_plugin_ts.pluginTsName],
|
|
2779
2693
|
hooks: { "kubb:plugin:setup"(ctx) {
|
|
2780
2694
|
const resolver = userResolver ? {
|
|
2781
2695
|
...resolverReactQuery,
|
|
@@ -2823,7 +2737,7 @@ const pluginReactQuery = (0, _kubb_core.definePlugin)((options) => {
|
|
|
2823
2737
|
name: "useCustomHookOptions",
|
|
2824
2738
|
...customOptions
|
|
2825
2739
|
} : null,
|
|
2826
|
-
|
|
2740
|
+
hooks,
|
|
2827
2741
|
group: groupConfig,
|
|
2828
2742
|
exclude,
|
|
2829
2743
|
include,
|