@kubb/plugin-react-query 5.0.0-beta.77 → 5.0.0-beta.80
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 +257 -179
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +16 -5
- package/dist/index.js +257 -179
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.cjs
CHANGED
|
@@ -91,7 +91,7 @@ function toFilePath(name, caseLast = camelCase) {
|
|
|
91
91
|
* JavaScript and Java reserved words.
|
|
92
92
|
* @link https://github.com/jonschlinkert/reserved/blob/master/index.js
|
|
93
93
|
*/
|
|
94
|
-
const reservedWords = new Set([
|
|
94
|
+
const reservedWords = /* @__PURE__ */ new Set([
|
|
95
95
|
"abstract",
|
|
96
96
|
"arguments",
|
|
97
97
|
"boolean",
|
|
@@ -320,6 +320,23 @@ function caseParams(params, casing) {
|
|
|
320
320
|
caseParamsCache.set(params, result);
|
|
321
321
|
return result;
|
|
322
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* Drops parameters that collapse to the same property identity once camelCased, keeping the first.
|
|
325
|
+
*
|
|
326
|
+
* Some specs declare the same parameter twice under different casings (for example AWS S3 lists both
|
|
327
|
+
* `max-uploads` and `MaxUploads`). Both resolve to one output property, so emitting both would yield
|
|
328
|
+
* an object type with a duplicate member, which TypeScript rejects. De-duplicate by the camelCased
|
|
329
|
+
* identity so the resulting group is collision-free regardless of the names each caller carries.
|
|
330
|
+
*/
|
|
331
|
+
function dedupeByCasedName(params) {
|
|
332
|
+
const seen = /* @__PURE__ */ new Set();
|
|
333
|
+
return params.filter((param) => {
|
|
334
|
+
const key = camelCase(param.name);
|
|
335
|
+
if (seen.has(key)) return false;
|
|
336
|
+
seen.add(key);
|
|
337
|
+
return true;
|
|
338
|
+
});
|
|
339
|
+
}
|
|
323
340
|
//#endregion
|
|
324
341
|
//#region ../../internals/shared/src/operation.ts
|
|
325
342
|
/**
|
|
@@ -358,11 +375,27 @@ function getContentTypeInfo(node) {
|
|
|
358
375
|
hasFormData: contentTypes.some((ct) => ct === "multipart/form-data")
|
|
359
376
|
};
|
|
360
377
|
}
|
|
378
|
+
/**
|
|
379
|
+
* The request-body counterpart for the primary success response: the content types it documents and
|
|
380
|
+
* whether several are present, so the client can let a caller pick which one to accept.
|
|
381
|
+
*/
|
|
382
|
+
function getResponseContentTypeInfo(node) {
|
|
383
|
+
const contentTypes = getPrimarySuccessResponse(node)?.content?.map((e) => e.contentType) ?? [];
|
|
384
|
+
const isMultipleContentTypes = contentTypes.length > 1;
|
|
385
|
+
return {
|
|
386
|
+
contentTypes,
|
|
387
|
+
isMultipleContentTypes,
|
|
388
|
+
contentTypeUnion: isMultipleContentTypes ? contentTypes.map((ct) => JSON.stringify(ct)).join(" | ") : "",
|
|
389
|
+
defaultContentType: contentTypes[0] ?? "application/json",
|
|
390
|
+
hasFormData: contentTypes.some((ct) => ct === "multipart/form-data")
|
|
391
|
+
};
|
|
392
|
+
}
|
|
361
393
|
function buildRequestConfigType(node) {
|
|
362
|
-
const
|
|
394
|
+
const request = getContentTypeInfo(node);
|
|
395
|
+
const response = getResponseContentTypeInfo(node);
|
|
363
396
|
const configType = `Partial<Omit<RequestConfig, 'path' | 'query' | 'body' | 'headers' | 'url'>>`;
|
|
364
|
-
const
|
|
365
|
-
return
|
|
397
|
+
const members = [request.isMultipleContentTypes ? `request?: ${request.contentTypeUnion}` : null, response.isMultipleContentTypes ? `response?: ${response.contentTypeUnion}` : null].filter(Boolean);
|
|
398
|
+
return members.length ? `${configType} & { contentType?: { ${members.join("; ")} } }` : configType;
|
|
366
399
|
}
|
|
367
400
|
/**
|
|
368
401
|
* Builds the `client?:` option type shared by the generated query hooks (`useQuery`,
|
|
@@ -424,10 +457,10 @@ function buildOperationComments(node, options = {}) {
|
|
|
424
457
|
function getOperationParameters(node, options = {}) {
|
|
425
458
|
const params = caseParams(node.parameters, options.paramsCasing === "original" ? void 0 : "camelcase");
|
|
426
459
|
return {
|
|
427
|
-
path: params.filter((param) => param.in === "path"),
|
|
428
|
-
query: params.filter((param) => param.in === "query"),
|
|
429
|
-
header: params.filter((param) => param.in === "header"),
|
|
430
|
-
cookie: params.filter((param) => param.in === "cookie")
|
|
460
|
+
path: dedupeByCasedName(params.filter((param) => param.in === "path")),
|
|
461
|
+
query: dedupeByCasedName(params.filter((param) => param.in === "query")),
|
|
462
|
+
header: dedupeByCasedName(params.filter((param) => param.in === "header")),
|
|
463
|
+
cookie: dedupeByCasedName(params.filter((param) => param.in === "cookie"))
|
|
431
464
|
};
|
|
432
465
|
}
|
|
433
466
|
function getStatusCodeNumber(statusCode) {
|
|
@@ -442,6 +475,15 @@ function isErrorStatusCode(statusCode) {
|
|
|
442
475
|
const code = getStatusCodeNumber(statusCode);
|
|
443
476
|
return code !== null && code >= 400;
|
|
444
477
|
}
|
|
478
|
+
function getSuccessResponses(responses) {
|
|
479
|
+
return responses.filter((response) => isSuccessStatusCode(response.statusCode));
|
|
480
|
+
}
|
|
481
|
+
function getOperationSuccessResponses(node) {
|
|
482
|
+
return getSuccessResponses(node.responses);
|
|
483
|
+
}
|
|
484
|
+
function getPrimarySuccessResponse(node) {
|
|
485
|
+
return getOperationSuccessResponses(node)[0] ?? null;
|
|
486
|
+
}
|
|
445
487
|
function resolveErrorNames(node, resolver) {
|
|
446
488
|
return node.responses.filter((response) => isErrorStatusCode(response.statusCode)).map((response) => resolver.resolveResponseStatusName(node, response.statusCode));
|
|
447
489
|
}
|
|
@@ -515,14 +557,14 @@ function createGroupConfig(group) {
|
|
|
515
557
|
};
|
|
516
558
|
}
|
|
517
559
|
//#endregion
|
|
518
|
-
//#region ../../internals/client/src/builders/
|
|
560
|
+
//#region ../../internals/client/src/builders/validatorOptions.ts
|
|
519
561
|
/**
|
|
520
|
-
* Returns `true` when any direction of the
|
|
562
|
+
* Returns `true` when any direction of the validator uses zod (used for dependency checks).
|
|
521
563
|
*/
|
|
522
|
-
function
|
|
523
|
-
if (!
|
|
524
|
-
if (
|
|
525
|
-
return Boolean(
|
|
564
|
+
function isValidatorEnabled(validator) {
|
|
565
|
+
if (!validator) return false;
|
|
566
|
+
if (validator === "zod") return true;
|
|
567
|
+
return Boolean(validator.request || validator.response);
|
|
526
568
|
}
|
|
527
569
|
//#endregion
|
|
528
570
|
//#region ../../internals/client/src/resolveClient.ts
|
|
@@ -650,12 +692,15 @@ function MutationKey({ name, node, transformer }) {
|
|
|
650
692
|
* The grouped request options, ordered for both the destructured signature and the
|
|
651
693
|
* call passed to the underlying client.
|
|
652
694
|
*/
|
|
653
|
-
const requestGroupOrder = [
|
|
695
|
+
const requestGroupOrder$1 = [
|
|
654
696
|
"path",
|
|
655
697
|
"query",
|
|
656
698
|
"body",
|
|
657
699
|
"headers"
|
|
658
700
|
];
|
|
701
|
+
function maybeValueOrGetter(type) {
|
|
702
|
+
return `${type} | (() => ${type})`;
|
|
703
|
+
}
|
|
659
704
|
/**
|
|
660
705
|
* Builds the grouped `{ path, query, body, headers }` parameter that mirrors the client
|
|
661
706
|
* function signature. Only the groups the operation carries are emitted, typed from the
|
|
@@ -668,7 +713,7 @@ const requestGroupOrder = [
|
|
|
668
713
|
* `MaybeRefOrGetter` per group.
|
|
669
714
|
*/
|
|
670
715
|
function buildGroupedRequestParam(node, options) {
|
|
671
|
-
const { resolver, keys = requestGroupOrder, memberTypeWrapper } = options;
|
|
716
|
+
const { resolver, keys = requestGroupOrder$1, memberTypeWrapper } = options;
|
|
672
717
|
const { groups, hasRequiredPath, hasRequiredQuery, hasRequiredHeader } = getRequestGroupOptionality(node);
|
|
673
718
|
const names = keys.filter((key) => groups[key]);
|
|
674
719
|
if (names.length === 0) return null;
|
|
@@ -680,7 +725,7 @@ function buildGroupedRequestParam(node, options) {
|
|
|
680
725
|
};
|
|
681
726
|
const isOptional = names.every((name) => !requiredByGroup[name]);
|
|
682
727
|
const requestConfigName = resolver.resolveRequestConfigName(node);
|
|
683
|
-
const omittedKeys = requestGroupOrder.filter((key) => !keys.includes(key));
|
|
728
|
+
const omittedKeys = requestGroupOrder$1.filter((key) => !keys.includes(key));
|
|
684
729
|
const requestConfigType = omittedKeys.length > 0 ? `Omit<${requestConfigName}, ${omittedKeys.map((key) => `'${key}'`).join(" | ")}>` : requestConfigName;
|
|
685
730
|
if (memberTypeWrapper) {
|
|
686
731
|
const members = names.map((name) => ({
|
|
@@ -736,7 +781,7 @@ function buildClientCall(node, options) {
|
|
|
736
781
|
const { groups } = getRequestGroupOptionality(node);
|
|
737
782
|
return `${clientName}({ ${[
|
|
738
783
|
"...config",
|
|
739
|
-
...requestGroupOrder.filter((key) => groups[key]),
|
|
784
|
+
...requestGroupOrder$1.filter((key) => groups[key]),
|
|
740
785
|
signal ? "signal: config.signal ?? signal" : null,
|
|
741
786
|
"throwOnError: true"
|
|
742
787
|
].filter((part) => part !== null).join(", ")} })`;
|
|
@@ -963,6 +1008,30 @@ const customHookOptionsFileGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
963
1008
|
}
|
|
964
1009
|
});
|
|
965
1010
|
//#endregion
|
|
1011
|
+
//#region src/utils.ts
|
|
1012
|
+
const requestGroupOrder = [
|
|
1013
|
+
"path",
|
|
1014
|
+
"query",
|
|
1015
|
+
"body",
|
|
1016
|
+
"headers"
|
|
1017
|
+
];
|
|
1018
|
+
/**
|
|
1019
|
+
* Builds the object literal that resolves each request group to a concrete value, unwrapping a getter
|
|
1020
|
+
* once before the value reaches the plain `queryKey`/`queryOptions` helpers. A getter must never reach a
|
|
1021
|
+
* React Query key, which is hashed structurally. Returns `null` when the operation carries no request group.
|
|
1022
|
+
*
|
|
1023
|
+
* @example
|
|
1024
|
+
* ```ts
|
|
1025
|
+
* buildResolvedRequestParams(node) // { path: typeof path === 'function' ? path() : path }
|
|
1026
|
+
* ```
|
|
1027
|
+
*/
|
|
1028
|
+
function buildResolvedRequestParams(node) {
|
|
1029
|
+
const groups = getRequestGroups(node);
|
|
1030
|
+
const names = requestGroupOrder.filter((key) => groups[key]);
|
|
1031
|
+
if (names.length === 0) return null;
|
|
1032
|
+
return `{ ${names.map((name) => `${name}: typeof ${name} === 'function' ? ${name}() : ${name}`).join(", ")} }`;
|
|
1033
|
+
}
|
|
1034
|
+
//#endregion
|
|
966
1035
|
//#region src/generators/hookOptionsGenerator.tsx
|
|
967
1036
|
/**
|
|
968
1037
|
* Emits the `HookOptions` type used by `customOptions`. Enabled when
|
|
@@ -975,8 +1044,8 @@ const hookOptionsGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
975
1044
|
renderer: _kubb_renderer_jsx.jsxRenderer,
|
|
976
1045
|
operations(nodes, ctx) {
|
|
977
1046
|
const { resolver, config, root } = ctx;
|
|
978
|
-
const { output, customOptions, query, mutation, suspense, infinite, group, override } = ctx.options;
|
|
979
|
-
if (!customOptions) return null;
|
|
1047
|
+
const { output, customOptions, query, mutation, suspense, infinite, group, override, hooks } = ctx.options;
|
|
1048
|
+
if (!customOptions || !hooks) return null;
|
|
980
1049
|
const name = resolver.resolveHookOptionsName();
|
|
981
1050
|
const resolvedFile = resolver.resolveFile({
|
|
982
1051
|
name,
|
|
@@ -1120,51 +1189,8 @@ const hookOptionsGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1120
1189
|
}
|
|
1121
1190
|
});
|
|
1122
1191
|
//#endregion
|
|
1123
|
-
//#region src/components/QueryOptions.tsx
|
|
1124
|
-
const declarationPrinter$8 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1125
|
-
const callPrinter$8 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1126
|
-
function getQueryOptionsParams(node, options) {
|
|
1127
|
-
return buildQueryOptionsParams(node, options);
|
|
1128
|
-
}
|
|
1129
|
-
function QueryOptions({ name, clientName, node, tsResolver, queryKeyName }) {
|
|
1130
|
-
const successNames = resolveSuccessNames(node, tsResolver);
|
|
1131
|
-
const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
|
|
1132
|
-
const errorNames = resolveErrorNames(node, tsResolver);
|
|
1133
|
-
const TData = responseName;
|
|
1134
|
-
const TError = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
|
|
1135
|
-
const queryKeyParamsNode = buildQueryKeyParams(node, { resolver: tsResolver });
|
|
1136
|
-
const queryKeyParamsCall = callPrinter$8.print(queryKeyParamsNode) ?? "";
|
|
1137
|
-
const paramsNode = getQueryOptionsParams(node, { resolver: tsResolver });
|
|
1138
|
-
const paramsSignature = declarationPrinter$8.print(paramsNode) ?? "";
|
|
1139
|
-
const queryFnBody = `const { data } = await ${buildClientCall(node, {
|
|
1140
|
-
clientName,
|
|
1141
|
-
signal: true
|
|
1142
|
-
})}
|
|
1143
|
-
return data`;
|
|
1144
|
-
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
1145
|
-
name,
|
|
1146
|
-
isExportable: true,
|
|
1147
|
-
isIndexable: true,
|
|
1148
|
-
children: /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.Function, {
|
|
1149
|
-
name,
|
|
1150
|
-
export: true,
|
|
1151
|
-
params: paramsSignature,
|
|
1152
|
-
children: `
|
|
1153
|
-
const queryKey = ${queryKeyName}(${queryKeyParamsCall})
|
|
1154
|
-
return queryOptions<${TData}, ${TError}, ${TData}, typeof queryKey>({
|
|
1155
|
-
queryKey,
|
|
1156
|
-
queryFn: async ({ signal }) => {
|
|
1157
|
-
${queryFnBody}
|
|
1158
|
-
},
|
|
1159
|
-
})
|
|
1160
|
-
`
|
|
1161
|
-
})
|
|
1162
|
-
});
|
|
1163
|
-
}
|
|
1164
|
-
//#endregion
|
|
1165
1192
|
//#region src/components/InfiniteQuery.tsx
|
|
1166
|
-
const declarationPrinter$
|
|
1167
|
-
const callPrinter$7 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1193
|
+
const declarationPrinter$8 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1168
1194
|
function buildInfiniteQueryParamsNode(node, options) {
|
|
1169
1195
|
const { resolver, pageParamGeneric } = options;
|
|
1170
1196
|
const optionsParam = (0, _kubb_plugin_ts.createFunctionParameter)({
|
|
@@ -1175,7 +1201,10 @@ function buildInfiniteQueryParamsNode(node, options) {
|
|
|
1175
1201
|
}`,
|
|
1176
1202
|
default: "{}"
|
|
1177
1203
|
});
|
|
1178
|
-
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1204
|
+
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1205
|
+
resolver,
|
|
1206
|
+
memberTypeWrapper: maybeValueOrGetter
|
|
1207
|
+
}), optionsParam].filter((param) => param !== null) });
|
|
1179
1208
|
}
|
|
1180
1209
|
function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, tsResolver, initialPageParam, queryParam, customOptions }) {
|
|
1181
1210
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
@@ -1203,15 +1232,14 @@ function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
|
|
|
1203
1232
|
`TQueryKey extends QueryKey = ${queryKeyTypeName}`,
|
|
1204
1233
|
`TPageParam = ${pageParamType}`
|
|
1205
1234
|
];
|
|
1206
|
-
const
|
|
1207
|
-
const
|
|
1208
|
-
const
|
|
1209
|
-
const queryOptionsParamsCall = callPrinter$7.print(queryOptionsParamsNode) ?? "";
|
|
1235
|
+
const resolvedParams = buildResolvedRequestParams(node);
|
|
1236
|
+
const queryKeyArgs = resolvedParams ? "resolvedParams" : "";
|
|
1237
|
+
const queryOptionsArgs = resolvedParams ? "resolvedParams, config" : "config";
|
|
1210
1238
|
const paramsNode = buildInfiniteQueryParamsNode(node, {
|
|
1211
1239
|
resolver: tsResolver,
|
|
1212
1240
|
pageParamGeneric: "TPageParam"
|
|
1213
1241
|
});
|
|
1214
|
-
const paramsSignature = declarationPrinter$
|
|
1242
|
+
const paramsSignature = declarationPrinter$8.print(paramsNode) ?? "";
|
|
1215
1243
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
1216
1244
|
name,
|
|
1217
1245
|
isExportable: true,
|
|
@@ -1225,11 +1253,11 @@ function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
|
|
|
1225
1253
|
JSDoc: { comments: buildOperationComments(node) },
|
|
1226
1254
|
children: `
|
|
1227
1255
|
const { query: queryConfig = {}, client: config = {} } = options ?? {}
|
|
1228
|
-
const { client: queryClient, ...resolvedOptions } = queryConfig
|
|
1229
|
-
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${
|
|
1256
|
+
const { client: queryClient, ...resolvedOptions } = queryConfig${resolvedParams ? `\n const resolvedParams = ${resolvedParams}` : ""}
|
|
1257
|
+
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${queryKeyArgs})${customOptions ? `\n const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${node.operationId}' })` : ""}
|
|
1230
1258
|
|
|
1231
1259
|
const queryResult = useInfiniteQuery({
|
|
1232
|
-
...${queryOptionsName}(${
|
|
1260
|
+
...${queryOptionsName}(${queryOptionsArgs}),${customOptions ? "\n ...customOptions," : ""}
|
|
1233
1261
|
...resolvedOptions,
|
|
1234
1262
|
queryKey,
|
|
1235
1263
|
} as unknown as InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, queryClient) as ${returnType}
|
|
@@ -1242,9 +1270,51 @@ function InfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
|
|
|
1242
1270
|
});
|
|
1243
1271
|
}
|
|
1244
1272
|
//#endregion
|
|
1273
|
+
//#region src/components/QueryOptions.tsx
|
|
1274
|
+
const declarationPrinter$7 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1275
|
+
const callPrinter$4 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1276
|
+
function getQueryOptionsParams(node, options) {
|
|
1277
|
+
return buildQueryOptionsParams(node, options);
|
|
1278
|
+
}
|
|
1279
|
+
function QueryOptions({ name, clientName, node, tsResolver, queryKeyName }) {
|
|
1280
|
+
const successNames = resolveSuccessNames(node, tsResolver);
|
|
1281
|
+
const responseName = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
|
|
1282
|
+
const errorNames = resolveErrorNames(node, tsResolver);
|
|
1283
|
+
const TData = responseName;
|
|
1284
|
+
const TError = `ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`;
|
|
1285
|
+
const queryKeyParamsNode = buildQueryKeyParams(node, { resolver: tsResolver });
|
|
1286
|
+
const queryKeyParamsCall = callPrinter$4.print(queryKeyParamsNode) ?? "";
|
|
1287
|
+
const paramsNode = getQueryOptionsParams(node, { resolver: tsResolver });
|
|
1288
|
+
const paramsSignature = declarationPrinter$7.print(paramsNode) ?? "";
|
|
1289
|
+
const queryFnBody = `const { data } = await ${buildClientCall(node, {
|
|
1290
|
+
clientName,
|
|
1291
|
+
signal: true
|
|
1292
|
+
})}
|
|
1293
|
+
return data`;
|
|
1294
|
+
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
1295
|
+
name,
|
|
1296
|
+
isExportable: true,
|
|
1297
|
+
isIndexable: true,
|
|
1298
|
+
children: /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.Function, {
|
|
1299
|
+
name,
|
|
1300
|
+
export: true,
|
|
1301
|
+
params: paramsSignature,
|
|
1302
|
+
children: `
|
|
1303
|
+
const queryKey = ${queryKeyName}(${queryKeyParamsCall})
|
|
1304
|
+
return queryOptions<${TData}, ${TError}, ${TData}, typeof queryKey>({
|
|
1305
|
+
queryKey,
|
|
1306
|
+
queryFn: async ({ signal }) => {
|
|
1307
|
+
${queryFnBody}
|
|
1308
|
+
},
|
|
1309
|
+
})
|
|
1310
|
+
`
|
|
1311
|
+
})
|
|
1312
|
+
});
|
|
1313
|
+
}
|
|
1314
|
+
//#endregion
|
|
1245
1315
|
//#region src/components/InfiniteQueryOptions.tsx
|
|
1246
1316
|
const declarationPrinter$6 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1247
|
-
const callPrinter$
|
|
1317
|
+
const callPrinter$3 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1248
1318
|
function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam, nextParam, previousParam, node, tsResolver, queryParam, queryKeyName }) {
|
|
1249
1319
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
1250
1320
|
const queryFnDataType = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
|
|
@@ -1263,7 +1333,7 @@ function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam,
|
|
|
1263
1333
|
const queryParamType = queryParam && queryParamsTypeName ? `${queryParamsTypeName}['${queryParam}']` : null;
|
|
1264
1334
|
const pageParamType = queryParamType ? isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType : fallbackPageParamType;
|
|
1265
1335
|
const queryKeyParamsNode = buildQueryKeyParams(node, { resolver: tsResolver });
|
|
1266
|
-
const queryKeyParamsCall = callPrinter$
|
|
1336
|
+
const queryKeyParamsCall = callPrinter$3.print(queryKeyParamsNode) ?? "";
|
|
1267
1337
|
const paramsNode = getQueryOptionsParams(node, { resolver: tsResolver });
|
|
1268
1338
|
const paramsSignature = declarationPrinter$6.print(paramsNode) ?? "";
|
|
1269
1339
|
const queryFnBody = `const { data } = await ${buildClientCall(node, {
|
|
@@ -1335,7 +1405,7 @@ return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${que
|
|
|
1335
1405
|
//#endregion
|
|
1336
1406
|
//#region src/components/MutationOptions.tsx
|
|
1337
1407
|
const declarationPrinter$5 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1338
|
-
const callPrinter$
|
|
1408
|
+
const callPrinter$2 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1339
1409
|
function buildMutationConfigParamsNode(node) {
|
|
1340
1410
|
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [(0, _kubb_plugin_ts.createFunctionParameter)({
|
|
1341
1411
|
name: "config",
|
|
@@ -1354,7 +1424,7 @@ function MutationOptions({ name, clientName, node, tsResolver, mutationKeyName }
|
|
|
1354
1424
|
const hasMutationParams = groupedParam !== null;
|
|
1355
1425
|
const groupedParamsNode = (0, _kubb_plugin_ts.createFunctionParameters)({ params: groupedParam ? [groupedParam] : [] });
|
|
1356
1426
|
const TRequest = hasMutationParams ? tsResolver.resolveRequestConfigName(node) : "undefined";
|
|
1357
|
-
const argBindingStr = hasMutationParams ? callPrinter$
|
|
1427
|
+
const argBindingStr = hasMutationParams ? callPrinter$2.print(groupedParamsNode) ?? "" : "_";
|
|
1358
1428
|
const mutationFnBody = `const { data } = await ${buildClientCall(node, {
|
|
1359
1429
|
clientName,
|
|
1360
1430
|
signal: false
|
|
@@ -1384,7 +1454,7 @@ function MutationOptions({ name, clientName, node, tsResolver, mutationKeyName }
|
|
|
1384
1454
|
//#endregion
|
|
1385
1455
|
//#region src/components/Mutation.tsx
|
|
1386
1456
|
const declarationPrinter$4 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1387
|
-
const callPrinter$
|
|
1457
|
+
const callPrinter$1 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1388
1458
|
function resolveMutationRequestType(node, resolver) {
|
|
1389
1459
|
return buildGroupedRequestParam(node, { resolver }) ? resolver.resolveRequestConfigName(node) : "undefined";
|
|
1390
1460
|
}
|
|
@@ -1419,7 +1489,7 @@ function Mutation({ name, mutationOptionsName, node, tsResolver, mutationKeyName
|
|
|
1419
1489
|
].join(", ");
|
|
1420
1490
|
const returnType = `UseMutationResult<${generics}>`;
|
|
1421
1491
|
const mutationOptionsConfigNode = buildMutationConfigParamsNode(node);
|
|
1422
|
-
const mutationOptionsParamsCall = callPrinter$
|
|
1492
|
+
const mutationOptionsParamsCall = callPrinter$1.print(mutationOptionsConfigNode) ?? "";
|
|
1423
1493
|
const paramsNode = buildMutationParamsNode(node, { resolver: tsResolver });
|
|
1424
1494
|
const paramsSignature = declarationPrinter$4.print(paramsNode) ?? "";
|
|
1425
1495
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
@@ -1451,7 +1521,6 @@ function Mutation({ name, mutationOptionsName, node, tsResolver, mutationKeyName
|
|
|
1451
1521
|
//#endregion
|
|
1452
1522
|
//#region src/components/Query.tsx
|
|
1453
1523
|
const declarationPrinter$3 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1454
|
-
const callPrinter$3 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1455
1524
|
function buildQueryParamsNode(node, options) {
|
|
1456
1525
|
const { resolver } = options;
|
|
1457
1526
|
const successNames = resolveSuccessNames(node, resolver);
|
|
@@ -1471,7 +1540,10 @@ function buildQueryParamsNode(node, options) {
|
|
|
1471
1540
|
}`,
|
|
1472
1541
|
default: "{}"
|
|
1473
1542
|
});
|
|
1474
|
-
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1543
|
+
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1544
|
+
resolver,
|
|
1545
|
+
memberTypeWrapper: maybeValueOrGetter
|
|
1546
|
+
}), optionsParam].filter((param) => param !== null) });
|
|
1475
1547
|
}
|
|
1476
1548
|
function Query({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, tsResolver, customOptions }) {
|
|
1477
1549
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
@@ -1484,10 +1556,9 @@ function Query({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, t
|
|
|
1484
1556
|
`TQueryData = ${TData}`,
|
|
1485
1557
|
`TQueryKey extends QueryKey = ${queryKeyTypeName}`
|
|
1486
1558
|
];
|
|
1487
|
-
const
|
|
1488
|
-
const
|
|
1489
|
-
const
|
|
1490
|
-
const queryOptionsParamsCall = callPrinter$3.print(queryOptionsParamsNode) ?? "";
|
|
1559
|
+
const resolvedParams = buildResolvedRequestParams(node);
|
|
1560
|
+
const queryKeyArgs = resolvedParams ? "resolvedParams" : "";
|
|
1561
|
+
const queryOptionsArgs = resolvedParams ? "resolvedParams, config" : "config";
|
|
1491
1562
|
const paramsNode = buildQueryParamsNode(node, { resolver: tsResolver });
|
|
1492
1563
|
const paramsSignature = declarationPrinter$3.print(paramsNode) ?? "";
|
|
1493
1564
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
@@ -1503,11 +1574,11 @@ function Query({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, t
|
|
|
1503
1574
|
JSDoc: { comments: buildOperationComments(node) },
|
|
1504
1575
|
children: `
|
|
1505
1576
|
const { query: queryConfig = {}, client: config = {} } = options ?? {}
|
|
1506
|
-
const { client: queryClient, ...resolvedOptions } = queryConfig
|
|
1507
|
-
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${
|
|
1577
|
+
const { client: queryClient, ...resolvedOptions } = queryConfig${resolvedParams ? `\n const resolvedParams = ${resolvedParams}` : ""}
|
|
1578
|
+
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${queryKeyArgs})${customOptions ? `\n const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${node.operationId}' })` : ""}
|
|
1508
1579
|
|
|
1509
1580
|
const queryResult = useQuery({
|
|
1510
|
-
...${queryOptionsName}(${
|
|
1581
|
+
...${queryOptionsName}(${queryOptionsArgs}),${customOptions ? "\n ...customOptions," : ""}
|
|
1511
1582
|
...resolvedOptions,
|
|
1512
1583
|
queryKey,
|
|
1513
1584
|
} as unknown as QueryObserverOptions, queryClient) as ${returnType}
|
|
@@ -1522,7 +1593,6 @@ function Query({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, t
|
|
|
1522
1593
|
//#endregion
|
|
1523
1594
|
//#region src/components/SuspenseInfiniteQuery.tsx
|
|
1524
1595
|
const declarationPrinter$2 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1525
|
-
const callPrinter$2 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1526
1596
|
function buildSuspenseInfiniteQueryParamsNode(node, options) {
|
|
1527
1597
|
const { resolver, pageParamGeneric } = options;
|
|
1528
1598
|
const optionsParam = (0, _kubb_plugin_ts.createFunctionParameter)({
|
|
@@ -1533,7 +1603,10 @@ function buildSuspenseInfiniteQueryParamsNode(node, options) {
|
|
|
1533
1603
|
}`,
|
|
1534
1604
|
default: "{}"
|
|
1535
1605
|
});
|
|
1536
|
-
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1606
|
+
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1607
|
+
resolver,
|
|
1608
|
+
memberTypeWrapper: maybeValueOrGetter
|
|
1609
|
+
}), optionsParam].filter((param) => param !== null) });
|
|
1537
1610
|
}
|
|
1538
1611
|
function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, tsResolver, customOptions, initialPageParam, queryParam }) {
|
|
1539
1612
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
@@ -1561,10 +1634,9 @@ function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, query
|
|
|
1561
1634
|
`TQueryKey extends QueryKey = ${queryKeyTypeName}`,
|
|
1562
1635
|
`TPageParam = ${pageParamType}`
|
|
1563
1636
|
];
|
|
1564
|
-
const
|
|
1565
|
-
const
|
|
1566
|
-
const
|
|
1567
|
-
const queryOptionsParamsCall = callPrinter$2.print(queryOptionsParamsNode) ?? "";
|
|
1637
|
+
const resolvedParams = buildResolvedRequestParams(node);
|
|
1638
|
+
const queryKeyArgs = resolvedParams ? "resolvedParams" : "";
|
|
1639
|
+
const queryOptionsArgs = resolvedParams ? "resolvedParams, config" : "config";
|
|
1568
1640
|
const paramsNode = buildSuspenseInfiniteQueryParamsNode(node, {
|
|
1569
1641
|
resolver: tsResolver,
|
|
1570
1642
|
pageParamGeneric: "TPageParam"
|
|
@@ -1583,11 +1655,11 @@ function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, query
|
|
|
1583
1655
|
JSDoc: { comments: buildOperationComments(node) },
|
|
1584
1656
|
children: `
|
|
1585
1657
|
const { query: queryConfig = {}, client: config = {} } = options ?? {}
|
|
1586
|
-
const { client: queryClient, ...resolvedOptions } = queryConfig
|
|
1587
|
-
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${
|
|
1658
|
+
const { client: queryClient, ...resolvedOptions } = queryConfig${resolvedParams ? `\n const resolvedParams = ${resolvedParams}` : ""}
|
|
1659
|
+
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${queryKeyArgs})${customOptions ? `\n const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${node.operationId}' })` : ""}
|
|
1588
1660
|
|
|
1589
1661
|
const queryResult = useSuspenseInfiniteQuery({
|
|
1590
|
-
...${queryOptionsName}(${
|
|
1662
|
+
...${queryOptionsName}(${queryOptionsArgs}),${customOptions ? "\n ...customOptions," : ""}
|
|
1591
1663
|
...resolvedOptions,
|
|
1592
1664
|
queryKey,
|
|
1593
1665
|
} as unknown as UseSuspenseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, queryClient) as ${returnType}
|
|
@@ -1602,7 +1674,7 @@ function SuspenseInfiniteQuery({ name, queryKeyTypeName, queryOptionsName, query
|
|
|
1602
1674
|
//#endregion
|
|
1603
1675
|
//#region src/components/SuspenseInfiniteQueryOptions.tsx
|
|
1604
1676
|
const declarationPrinter$1 = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1605
|
-
const callPrinter
|
|
1677
|
+
const callPrinter = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1606
1678
|
function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam, nextParam, previousParam, node, tsResolver, queryParam, queryKeyName }) {
|
|
1607
1679
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
1608
1680
|
const queryFnDataType = successNames.length > 0 ? successNames.join(" | ") : tsResolver.resolveResponseName(node);
|
|
@@ -1628,7 +1700,7 @@ function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, curs
|
|
|
1628
1700
|
})}
|
|
1629
1701
|
return data`;
|
|
1630
1702
|
const queryKeyParamsNode = buildQueryKeyParams(node, { resolver: tsResolver });
|
|
1631
|
-
const queryKeyParamsCall = callPrinter
|
|
1703
|
+
const queryKeyParamsCall = callPrinter.print(queryKeyParamsNode) ?? "";
|
|
1632
1704
|
const hasNewParams = nextParam != null || previousParam != null;
|
|
1633
1705
|
const [getNextPageParamExpr, getPreviousPageParamExpr] = (() => {
|
|
1634
1706
|
if (hasNewParams) {
|
|
@@ -1693,7 +1765,6 @@ return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${que
|
|
|
1693
1765
|
//#endregion
|
|
1694
1766
|
//#region src/components/SuspenseQuery.tsx
|
|
1695
1767
|
const declarationPrinter = (0, _kubb_plugin_ts.functionPrinter)({ mode: "declaration" });
|
|
1696
|
-
const callPrinter = (0, _kubb_plugin_ts.functionPrinter)({ mode: "call" });
|
|
1697
1768
|
function buildSuspenseQueryParamsNode(node, options) {
|
|
1698
1769
|
const { resolver } = options;
|
|
1699
1770
|
const successNames = resolveSuccessNames(node, resolver);
|
|
@@ -1712,7 +1783,10 @@ function buildSuspenseQueryParamsNode(node, options) {
|
|
|
1712
1783
|
}`,
|
|
1713
1784
|
default: "{}"
|
|
1714
1785
|
});
|
|
1715
|
-
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1786
|
+
return (0, _kubb_plugin_ts.createFunctionParameters)({ params: [buildGroupedRequestParam(node, {
|
|
1787
|
+
resolver,
|
|
1788
|
+
memberTypeWrapper: maybeValueOrGetter
|
|
1789
|
+
}), optionsParam].filter((param) => param !== null) });
|
|
1716
1790
|
}
|
|
1717
1791
|
function SuspenseQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName, node, tsResolver, customOptions }) {
|
|
1718
1792
|
const successNames = resolveSuccessNames(node, tsResolver);
|
|
@@ -1721,10 +1795,9 @@ function SuspenseQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
|
|
|
1721
1795
|
const TData = responseName;
|
|
1722
1796
|
const returnType = `UseSuspenseQueryResult<TData, ${`ResponseErrorConfig<${errorNames.length > 0 ? errorNames.join(" | ") : "Error"}>`}> & { queryKey: TQueryKey }`;
|
|
1723
1797
|
const generics = [`TData = ${TData}`, `TQueryKey extends QueryKey = ${queryKeyTypeName}`];
|
|
1724
|
-
const
|
|
1725
|
-
const
|
|
1726
|
-
const
|
|
1727
|
-
const queryOptionsParamsCall = callPrinter.print(queryOptionsParamsNode) ?? "";
|
|
1798
|
+
const resolvedParams = buildResolvedRequestParams(node);
|
|
1799
|
+
const queryKeyArgs = resolvedParams ? "resolvedParams" : "";
|
|
1800
|
+
const queryOptionsArgs = resolvedParams ? "resolvedParams, config" : "config";
|
|
1728
1801
|
const paramsNode = buildSuspenseQueryParamsNode(node, { resolver: tsResolver });
|
|
1729
1802
|
const paramsSignature = declarationPrinter.print(paramsNode) ?? "";
|
|
1730
1803
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Source, {
|
|
@@ -1740,11 +1813,11 @@ function SuspenseQuery({ name, queryKeyTypeName, queryOptionsName, queryKeyName,
|
|
|
1740
1813
|
JSDoc: { comments: buildOperationComments(node) },
|
|
1741
1814
|
children: `
|
|
1742
1815
|
const { query: queryConfig = {}, client: config = {} } = options ?? {}
|
|
1743
|
-
const { client: queryClient, ...resolvedOptions } = queryConfig
|
|
1744
|
-
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${
|
|
1816
|
+
const { client: queryClient, ...resolvedOptions } = queryConfig${resolvedParams ? `\n const resolvedParams = ${resolvedParams}` : ""}
|
|
1817
|
+
const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${queryKeyArgs})${customOptions ? `\n const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${node.operationId}' })` : ""}
|
|
1745
1818
|
|
|
1746
1819
|
const queryResult = useSuspenseQuery({
|
|
1747
|
-
...${queryOptionsName}(${
|
|
1820
|
+
...${queryOptionsName}(${queryOptionsArgs}),${customOptions ? "\n ...customOptions," : ""}
|
|
1748
1821
|
...resolvedOptions,
|
|
1749
1822
|
queryKey,
|
|
1750
1823
|
} as unknown as UseSuspenseQueryOptions, queryClient) as ${returnType}
|
|
@@ -1770,7 +1843,7 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1770
1843
|
operation(node, ctx) {
|
|
1771
1844
|
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
1772
1845
|
const { config, driver, resolver, root } = ctx;
|
|
1773
|
-
const { output, query, mutation, infinite,
|
|
1846
|
+
const { output, query, mutation, infinite, validator, client, group, customOptions, hooks } = ctx.options;
|
|
1774
1847
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
1775
1848
|
if (!pluginTs) return null;
|
|
1776
1849
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
@@ -1820,14 +1893,14 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1820
1893
|
includeParams: false
|
|
1821
1894
|
})
|
|
1822
1895
|
].filter((name) => Boolean(name));
|
|
1823
|
-
const pluginZod =
|
|
1896
|
+
const pluginZod = isValidatorEnabled(validator) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
1824
1897
|
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
1825
1898
|
const fileZod = zodResolver ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
1826
1899
|
root,
|
|
1827
1900
|
output: pluginZod?.options?.output ?? output,
|
|
1828
1901
|
group: pluginZod?.options?.group ?? void 0
|
|
1829
1902
|
}) : null;
|
|
1830
|
-
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver,
|
|
1903
|
+
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, validator);
|
|
1831
1904
|
const calledClientName = contractOp.name;
|
|
1832
1905
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
1833
1906
|
baseName: meta.file.baseName,
|
|
@@ -1904,31 +1977,33 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1904
1977
|
initialPageParam: infiniteOptions.initialPageParam,
|
|
1905
1978
|
queryParam: infiniteOptions.queryParam
|
|
1906
1979
|
}),
|
|
1907
|
-
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1980
|
+
hooks && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
1981
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
1982
|
+
name: ["useInfiniteQuery"],
|
|
1983
|
+
path: importPath
|
|
1984
|
+
}),
|
|
1985
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
1986
|
+
name: [
|
|
1987
|
+
"QueryKey",
|
|
1988
|
+
"QueryClient",
|
|
1989
|
+
"InfiniteQueryObserverOptions",
|
|
1990
|
+
"UseInfiniteQueryResult"
|
|
1991
|
+
],
|
|
1992
|
+
path: importPath,
|
|
1993
|
+
isTypeOnly: true
|
|
1994
|
+
}),
|
|
1995
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(InfiniteQuery, {
|
|
1996
|
+
name: queryName,
|
|
1997
|
+
queryOptionsName,
|
|
1998
|
+
queryKeyName,
|
|
1999
|
+
queryKeyTypeName,
|
|
2000
|
+
node,
|
|
2001
|
+
tsResolver,
|
|
2002
|
+
initialPageParam: infiniteOptions.initialPageParam,
|
|
2003
|
+
queryParam: infiniteOptions.queryParam,
|
|
2004
|
+
customOptions
|
|
2005
|
+
})
|
|
2006
|
+
] })
|
|
1932
2007
|
]
|
|
1933
2008
|
});
|
|
1934
2009
|
}
|
|
@@ -1946,7 +2021,7 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1946
2021
|
operation(node, ctx) {
|
|
1947
2022
|
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
1948
2023
|
const { config, driver, resolver, root } = ctx;
|
|
1949
|
-
const { output, query, mutation,
|
|
2024
|
+
const { output, query, mutation, validator, client, group, customOptions, hooks } = ctx.options;
|
|
1950
2025
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
1951
2026
|
if (!pluginTs) return null;
|
|
1952
2027
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
@@ -1982,14 +2057,14 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1982
2057
|
order: "body-response-first",
|
|
1983
2058
|
includeParams: false
|
|
1984
2059
|
})].filter((name) => Boolean(name));
|
|
1985
|
-
const pluginZod =
|
|
2060
|
+
const pluginZod = isValidatorEnabled(validator) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
1986
2061
|
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
1987
2062
|
const fileZod = zodResolver ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
1988
2063
|
root,
|
|
1989
2064
|
output: pluginZod?.options?.output ?? output,
|
|
1990
2065
|
group: pluginZod?.options?.group ?? void 0
|
|
1991
2066
|
}) : null;
|
|
1992
|
-
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver,
|
|
2067
|
+
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, validator);
|
|
1993
2068
|
const calledClientName = contractOp.name;
|
|
1994
2069
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
1995
2070
|
baseName: meta.file.baseName,
|
|
@@ -2054,7 +2129,7 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2054
2129
|
node,
|
|
2055
2130
|
tsResolver
|
|
2056
2131
|
}),
|
|
2057
|
-
mutation && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2132
|
+
mutation && hooks && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2058
2133
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2059
2134
|
name: ["useMutation"],
|
|
2060
2135
|
path: importPath
|
|
@@ -2095,7 +2170,7 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2095
2170
|
operation(node, ctx) {
|
|
2096
2171
|
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
2097
2172
|
const { config, driver, resolver, root } = ctx;
|
|
2098
|
-
const { output, query, mutation,
|
|
2173
|
+
const { output, query, mutation, validator, client, group, customOptions, hooks } = ctx.options;
|
|
2099
2174
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
2100
2175
|
if (!pluginTs) return null;
|
|
2101
2176
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
@@ -2133,14 +2208,14 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2133
2208
|
order: "body-response-first",
|
|
2134
2209
|
includeParams: false
|
|
2135
2210
|
})].filter((name) => Boolean(name));
|
|
2136
|
-
const pluginZod =
|
|
2211
|
+
const pluginZod = isValidatorEnabled(validator) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
2137
2212
|
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
2138
2213
|
const fileZod = zodResolver ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
2139
2214
|
root,
|
|
2140
2215
|
output: pluginZod?.options?.output ?? output,
|
|
2141
2216
|
group: pluginZod?.options?.group ?? void 0
|
|
2142
2217
|
}) : null;
|
|
2143
|
-
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver,
|
|
2218
|
+
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, validator);
|
|
2144
2219
|
const calledClientName = contractOp.name;
|
|
2145
2220
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
2146
2221
|
baseName: meta.file.baseName,
|
|
@@ -2207,7 +2282,7 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2207
2282
|
node,
|
|
2208
2283
|
tsResolver
|
|
2209
2284
|
}),
|
|
2210
|
-
query && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2285
|
+
query && hooks && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2211
2286
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2212
2287
|
name: ["useQuery"],
|
|
2213
2288
|
path: importPath
|
|
@@ -2250,7 +2325,7 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2250
2325
|
operation(node, ctx) {
|
|
2251
2326
|
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
2252
2327
|
const { config, driver, resolver, root } = ctx;
|
|
2253
|
-
const { output, query, mutation, infinite, suspense,
|
|
2328
|
+
const { output, query, mutation, infinite, suspense, validator, client, group, customOptions, hooks } = ctx.options;
|
|
2254
2329
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
2255
2330
|
if (!pluginTs) return null;
|
|
2256
2331
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
@@ -2300,14 +2375,14 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2300
2375
|
includeParams: false
|
|
2301
2376
|
})
|
|
2302
2377
|
].filter((name) => Boolean(name));
|
|
2303
|
-
const pluginZod =
|
|
2378
|
+
const pluginZod = isValidatorEnabled(validator) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
2304
2379
|
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
2305
2380
|
const fileZod = zodResolver ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
2306
2381
|
root,
|
|
2307
2382
|
output: pluginZod?.options?.output ?? output,
|
|
2308
2383
|
group: pluginZod?.options?.group ?? void 0
|
|
2309
2384
|
}) : null;
|
|
2310
|
-
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver,
|
|
2385
|
+
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, validator);
|
|
2311
2386
|
const calledClientName = contractOp.name;
|
|
2312
2387
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
2313
2388
|
baseName: meta.file.baseName,
|
|
@@ -2384,31 +2459,33 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2384
2459
|
initialPageParam: infiniteOptions.initialPageParam,
|
|
2385
2460
|
queryParam: infiniteOptions.queryParam
|
|
2386
2461
|
}),
|
|
2387
|
-
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2462
|
+
hooks && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2463
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2464
|
+
name: ["useSuspenseInfiniteQuery"],
|
|
2465
|
+
path: importPath
|
|
2466
|
+
}),
|
|
2467
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2468
|
+
name: [
|
|
2469
|
+
"QueryKey",
|
|
2470
|
+
"QueryClient",
|
|
2471
|
+
"UseSuspenseInfiniteQueryOptions",
|
|
2472
|
+
"UseSuspenseInfiniteQueryResult"
|
|
2473
|
+
],
|
|
2474
|
+
path: importPath,
|
|
2475
|
+
isTypeOnly: true
|
|
2476
|
+
}),
|
|
2477
|
+
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(SuspenseInfiniteQuery, {
|
|
2478
|
+
name: queryName,
|
|
2479
|
+
queryOptionsName,
|
|
2480
|
+
queryKeyName,
|
|
2481
|
+
queryKeyTypeName,
|
|
2482
|
+
node,
|
|
2483
|
+
tsResolver,
|
|
2484
|
+
initialPageParam: infiniteOptions.initialPageParam,
|
|
2485
|
+
queryParam: infiniteOptions.queryParam,
|
|
2486
|
+
customOptions
|
|
2487
|
+
})
|
|
2488
|
+
] })
|
|
2412
2489
|
]
|
|
2413
2490
|
});
|
|
2414
2491
|
}
|
|
@@ -2427,7 +2504,7 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2427
2504
|
operation(node, ctx) {
|
|
2428
2505
|
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
2429
2506
|
const { config, driver, resolver, root } = ctx;
|
|
2430
|
-
const { output, query, mutation, suspense,
|
|
2507
|
+
const { output, query, mutation, suspense, validator, client, group, customOptions, hooks } = ctx.options;
|
|
2431
2508
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
2432
2509
|
if (!pluginTs) return null;
|
|
2433
2510
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
@@ -2465,14 +2542,14 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2465
2542
|
order: "body-response-first",
|
|
2466
2543
|
includeParams: false
|
|
2467
2544
|
})].filter((name) => Boolean(name));
|
|
2468
|
-
const pluginZod =
|
|
2545
|
+
const pluginZod = isValidatorEnabled(validator) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
2469
2546
|
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
2470
2547
|
const fileZod = zodResolver ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
2471
2548
|
root,
|
|
2472
2549
|
output: pluginZod?.options?.output ?? output,
|
|
2473
2550
|
group: pluginZod?.options?.group ?? void 0
|
|
2474
2551
|
}) : null;
|
|
2475
|
-
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver,
|
|
2552
|
+
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, validator);
|
|
2476
2553
|
const calledClientName = contractOp.name;
|
|
2477
2554
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
2478
2555
|
baseName: meta.file.baseName,
|
|
@@ -2539,7 +2616,7 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
2539
2616
|
node,
|
|
2540
2617
|
tsResolver
|
|
2541
2618
|
}),
|
|
2542
|
-
suspense && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2619
|
+
suspense && hooks && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
2543
2620
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
2544
2621
|
name: ["useSuspenseQuery"],
|
|
2545
2622
|
path: importPath
|
|
@@ -2719,7 +2796,7 @@ const pluginReactQuery = (0, _kubb_core.definePlugin)((options) => {
|
|
|
2719
2796
|
const { output = {
|
|
2720
2797
|
path: "hooks",
|
|
2721
2798
|
barrel: { type: "named" }
|
|
2722
|
-
}, group, exclude = [], include, override = [],
|
|
2799
|
+
}, group, exclude = [], include, override = [], validator = false, suspense = {}, infinite = false, mutation = {}, query = {}, mutationKey = mutationKeyTransformer, queryKey = queryKeyTransformer, customOptions, hooks = false, client, resolver: userResolver, macros: userMacros } = options;
|
|
2723
2800
|
const selectedGenerators = [
|
|
2724
2801
|
queryGenerator,
|
|
2725
2802
|
suspenseQueryGenerator,
|
|
@@ -2733,7 +2810,7 @@ const pluginReactQuery = (0, _kubb_core.definePlugin)((options) => {
|
|
|
2733
2810
|
return {
|
|
2734
2811
|
name: pluginReactQueryName,
|
|
2735
2812
|
options,
|
|
2736
|
-
dependencies: [_kubb_plugin_ts.pluginTsName,
|
|
2813
|
+
dependencies: [_kubb_plugin_ts.pluginTsName, isValidatorEnabled(validator) ? _kubb_plugin_zod.pluginZodName : void 0].filter((dependency) => Boolean(dependency)),
|
|
2737
2814
|
hooks: { "kubb:plugin:setup"(ctx) {
|
|
2738
2815
|
const resolver = userResolver ? {
|
|
2739
2816
|
...resolverReactQuery,
|
|
@@ -2781,7 +2858,8 @@ const pluginReactQuery = (0, _kubb_core.definePlugin)((options) => {
|
|
|
2781
2858
|
name: "useCustomHookOptions",
|
|
2782
2859
|
...customOptions
|
|
2783
2860
|
} : null,
|
|
2784
|
-
|
|
2861
|
+
hooks,
|
|
2862
|
+
validator,
|
|
2785
2863
|
group: groupConfig,
|
|
2786
2864
|
exclude,
|
|
2787
2865
|
include,
|