@kubb/plugin-react-query 5.0.0-beta.15 → 5.0.0-beta.25
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/{components-BZ3a2O0G.cjs → components-C1_zAoAO.cjs} +65 -84
- package/dist/components-C1_zAoAO.cjs.map +1 -0
- package/dist/{components-DJqIUiZW.js → components-C91DnOOV.js} +65 -84
- package/dist/components-C91DnOOV.js.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.d.ts +1 -1
- package/dist/components.js +1 -1
- package/dist/{generators-BQ_vEksc.js → generators-9srJC_zb.js} +115 -75
- package/dist/generators-9srJC_zb.js.map +1 -0
- package/dist/{generators-DSjer1xY.cjs → generators-DS3JH1hR.cjs} +115 -75
- package/dist/generators-DS3JH1hR.cjs.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.ts +41 -1
- package/dist/generators.js +1 -1
- package/dist/index.cjs +51 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +30 -1
- package/dist/index.js +51 -11
- package/dist/index.js.map +1 -1
- package/dist/{types-DG_OxOym.d.ts → types-DiZPLTXl.d.ts} +92 -55
- package/extension.yaml +904 -325
- package/package.json +7 -7
- package/src/components/InfiniteQuery.tsx +4 -4
- package/src/components/InfiniteQueryOptions.tsx +21 -31
- package/src/components/Mutation.tsx +2 -2
- package/src/components/MutationOptions.tsx +1 -1
- package/src/components/Query.tsx +1 -1
- package/src/components/QueryOptions.tsx +1 -1
- package/src/components/SuspenseInfiniteQuery.tsx +4 -4
- package/src/components/SuspenseInfiniteQueryOptions.tsx +21 -31
- package/src/components/SuspenseQuery.tsx +1 -1
- package/src/generators/customHookOptionsFileGenerator.tsx +7 -1
- package/src/generators/hookOptionsGenerator.tsx +17 -11
- package/src/generators/infiniteQueryGenerator.tsx +22 -13
- package/src/generators/mutationGenerator.tsx +20 -12
- package/src/generators/queryGenerator.tsx +20 -12
- package/src/generators/suspenseInfiniteQueryGenerator.tsx +22 -13
- package/src/generators/suspenseQueryGenerator.tsx +21 -12
- package/src/plugin.ts +34 -5
- package/src/resolvers/resolverReactQuery.ts +15 -4
- package/src/types.ts +89 -52
- package/dist/components-BZ3a2O0G.cjs.map +0 -1
- package/dist/components-DJqIUiZW.js.map +0 -1
- package/dist/generators-BQ_vEksc.js.map +0 -1
- package/dist/generators-DSjer1xY.cjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./chunk--u3MIqq1.js";
|
|
2
|
-
import { a as Mutation, c as InfiniteQuery, f as resolveOperationOverrides, g as MutationKey, h as resolveOperationTypeNames, i as Query, l as QueryOptions, m as getOperationParameters, n as SuspenseInfiniteQueryOptions, o as MutationOptions, p as resolveZodSchemaNames, r as SuspenseInfiniteQuery, s as InfiniteQueryOptions, t as SuspenseQuery, u as QueryKey } from "./components-
|
|
2
|
+
import { a as Mutation, c as InfiniteQuery, f as resolveOperationOverrides, g as MutationKey, h as resolveOperationTypeNames, i as Query, l as QueryOptions, m as getOperationParameters, n as SuspenseInfiniteQueryOptions, o as MutationOptions, p as resolveZodSchemaNames, r as SuspenseInfiniteQuery, s as InfiniteQueryOptions, t as SuspenseQuery, u as QueryKey } from "./components-C91DnOOV.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { defineGenerator } from "@kubb/core";
|
|
5
5
|
import { Client, pluginClientName } from "@kubb/plugin-client";
|
|
@@ -10,6 +10,12 @@ import { Fragment, jsx, jsxs } from "@kubb/renderer-jsx/jsx-runtime";
|
|
|
10
10
|
import fs from "node:fs";
|
|
11
11
|
import { difference } from "remeda";
|
|
12
12
|
//#region src/generators/customHookOptionsFileGenerator.tsx
|
|
13
|
+
/**
|
|
14
|
+
* Scaffolds the user-editable `useCustomHookOptions` file when
|
|
15
|
+
* `pluginReactQuery({ customOptions: { ... } })` is configured. The file is
|
|
16
|
+
* only created when it does not already exist, so user edits persist across
|
|
17
|
+
* regeneration.
|
|
18
|
+
*/
|
|
13
19
|
const customHookOptionsFileGenerator = defineGenerator({
|
|
14
20
|
name: "react-query-custom-hook-options-file",
|
|
15
21
|
renderer: jsxRendererSync,
|
|
@@ -34,7 +40,7 @@ const customHookOptionsFileGenerator = defineGenerator({
|
|
|
34
40
|
}, {
|
|
35
41
|
root,
|
|
36
42
|
output,
|
|
37
|
-
group
|
|
43
|
+
group: group ?? void 0
|
|
38
44
|
}).path;
|
|
39
45
|
} else hookFilePath = path.resolve(root, "index.ts");
|
|
40
46
|
const ensureExtension = (filePath, extname) => {
|
|
@@ -101,11 +107,17 @@ const customHookOptionsFileGenerator = defineGenerator({
|
|
|
101
107
|
});
|
|
102
108
|
//#endregion
|
|
103
109
|
//#region src/generators/hookOptionsGenerator.tsx
|
|
110
|
+
/**
|
|
111
|
+
* Emits the `HookOptions` type used by `customOptions`. Enabled when
|
|
112
|
+
* `pluginReactQuery({ customOptions: { ... } })`. The generated type lists
|
|
113
|
+
* every hook keyed by name so user-supplied options stay in sync with the
|
|
114
|
+
* generated hooks at compile time.
|
|
115
|
+
*/
|
|
104
116
|
const hookOptionsGenerator = defineGenerator({
|
|
105
117
|
name: "react-query-hook-options",
|
|
106
118
|
renderer: jsxRendererSync,
|
|
107
119
|
operations(nodes, ctx) {
|
|
108
|
-
const { resolver, config, root
|
|
120
|
+
const { resolver, config, root } = ctx;
|
|
109
121
|
const { output, customOptions, query, mutation, suspense, infinite, group, override } = ctx.options;
|
|
110
122
|
if (!customOptions) return null;
|
|
111
123
|
const name = resolver.resolveHookOptionsName();
|
|
@@ -115,7 +127,7 @@ const hookOptionsGenerator = defineGenerator({
|
|
|
115
127
|
}, {
|
|
116
128
|
root,
|
|
117
129
|
output,
|
|
118
|
-
group
|
|
130
|
+
group: group ?? void 0
|
|
119
131
|
});
|
|
120
132
|
const hookOptionsFile = {
|
|
121
133
|
...resolvedFile,
|
|
@@ -129,7 +141,7 @@ const hookOptionsGenerator = defineGenerator({
|
|
|
129
141
|
const nodeQuery = "query" in opOverrides ? opOverrides.query : query;
|
|
130
142
|
const nodeMutation = "mutation" in opOverrides ? opOverrides.mutation : mutation;
|
|
131
143
|
const nodeInfinite = "infinite" in opOverrides ? opOverrides.infinite : infinite;
|
|
132
|
-
const nodeInfiniteOptions = nodeInfinite && typeof nodeInfinite === "object" ? nodeInfinite :
|
|
144
|
+
const nodeInfiniteOptions = nodeInfinite && typeof nodeInfinite === "object" ? nodeInfinite : null;
|
|
133
145
|
const isQueryOp = nodeQuery === false ? !!query && query.methods.some((m) => node.method.toLowerCase() === m.toLowerCase()) : !!nodeQuery && nodeQuery.methods.some((m) => node.method.toLowerCase() === m.toLowerCase());
|
|
134
146
|
const isMutationOp = nodeMutation !== false && !isQueryOp && difference(nodeMutation ? nodeMutation.methods : [], nodeQuery ? nodeQuery.methods : []).some((m) => node.method.toLowerCase() === m.toLowerCase());
|
|
135
147
|
const isSuspenseOp = !!suspense;
|
|
@@ -145,7 +157,7 @@ const hookOptionsGenerator = defineGenerator({
|
|
|
145
157
|
}, {
|
|
146
158
|
root,
|
|
147
159
|
output,
|
|
148
|
-
group
|
|
160
|
+
group: group ?? void 0
|
|
149
161
|
});
|
|
150
162
|
imports.push(/* @__PURE__ */ jsx(File.Import, {
|
|
151
163
|
name: [queryOptionsName],
|
|
@@ -164,7 +176,7 @@ const hookOptionsGenerator = defineGenerator({
|
|
|
164
176
|
}, {
|
|
165
177
|
root,
|
|
166
178
|
output,
|
|
167
|
-
group
|
|
179
|
+
group: group ?? void 0
|
|
168
180
|
});
|
|
169
181
|
imports.push(/* @__PURE__ */ jsx(File.Import, {
|
|
170
182
|
name: [suspenseOptionsName],
|
|
@@ -187,7 +199,7 @@ const hookOptionsGenerator = defineGenerator({
|
|
|
187
199
|
}, {
|
|
188
200
|
root,
|
|
189
201
|
output,
|
|
190
|
-
group
|
|
202
|
+
group: group ?? void 0
|
|
191
203
|
});
|
|
192
204
|
imports.push(/* @__PURE__ */ jsx(File.Import, {
|
|
193
205
|
name: [infiniteOptionsName],
|
|
@@ -206,7 +218,7 @@ const hookOptionsGenerator = defineGenerator({
|
|
|
206
218
|
}, {
|
|
207
219
|
root,
|
|
208
220
|
output,
|
|
209
|
-
group
|
|
221
|
+
group: group ?? void 0
|
|
210
222
|
});
|
|
211
223
|
imports.push(/* @__PURE__ */ jsx(File.Import, {
|
|
212
224
|
name: [suspenseInfiniteOptionsName],
|
|
@@ -229,7 +241,7 @@ const hookOptionsGenerator = defineGenerator({
|
|
|
229
241
|
}, {
|
|
230
242
|
root,
|
|
231
243
|
output,
|
|
232
|
-
group
|
|
244
|
+
group: group ?? void 0
|
|
233
245
|
});
|
|
234
246
|
imports.push(/* @__PURE__ */ jsx(File.Import, {
|
|
235
247
|
name: [mutationOptionsName],
|
|
@@ -243,11 +255,11 @@ const hookOptionsGenerator = defineGenerator({
|
|
|
243
255
|
baseName: hookOptionsFile.baseName,
|
|
244
256
|
path: hookOptionsFile.path,
|
|
245
257
|
meta: hookOptionsFile.meta,
|
|
246
|
-
banner: resolver.resolveBanner(
|
|
258
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
247
259
|
output,
|
|
248
260
|
config
|
|
249
261
|
}),
|
|
250
|
-
footer: resolver.resolveFooter(
|
|
262
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
251
263
|
output,
|
|
252
264
|
config
|
|
253
265
|
}),
|
|
@@ -267,18 +279,24 @@ const hookOptionsGenerator = defineGenerator({
|
|
|
267
279
|
});
|
|
268
280
|
//#endregion
|
|
269
281
|
//#region src/generators/infiniteQueryGenerator.tsx
|
|
282
|
+
/**
|
|
283
|
+
* Built-in generator for `useInfiniteQuery` hooks. Enabled when
|
|
284
|
+
* `pluginReactQuery({ infinite: { ... } })`. Emits one `useFooInfiniteQuery`
|
|
285
|
+
* hook per query operation, wiring the configured `nextParam` /
|
|
286
|
+
* `previousParam` paths into TanStack Query's cursor-based pagination.
|
|
287
|
+
*/
|
|
270
288
|
const infiniteQueryGenerator = defineGenerator({
|
|
271
289
|
name: "react-infinite-query",
|
|
272
290
|
renderer: jsxRendererSync,
|
|
273
291
|
operation(node, ctx) {
|
|
274
|
-
const { config, driver, resolver, root
|
|
292
|
+
const { config, driver, resolver, root } = ctx;
|
|
275
293
|
const { output, query, mutation, infinite, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options;
|
|
276
294
|
const pluginTs = driver.getPlugin(pluginTsName);
|
|
277
295
|
if (!pluginTs) return null;
|
|
278
296
|
const tsResolver = driver.getResolver(pluginTsName);
|
|
279
297
|
const isQuery = query === false || !!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
280
298
|
const isMutation = mutation !== false && !isQuery && difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
281
|
-
const infiniteOptions = infinite && typeof infinite === "object" ? infinite :
|
|
299
|
+
const infiniteOptions = infinite && typeof infinite === "object" ? infinite : null;
|
|
282
300
|
if (!isQuery || isMutation || !infiniteOptions) return null;
|
|
283
301
|
const normalizeKey = (key) => key.replace(/\?$/, "");
|
|
284
302
|
const queryParamKeys = getOperationParameters(node).query.map((p) => p.name);
|
|
@@ -300,7 +318,7 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
300
318
|
}, {
|
|
301
319
|
root,
|
|
302
320
|
output,
|
|
303
|
-
group
|
|
321
|
+
group: group ?? void 0
|
|
304
322
|
}),
|
|
305
323
|
fileTs: tsResolver.resolveFile({
|
|
306
324
|
name: node.operationId,
|
|
@@ -310,7 +328,7 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
310
328
|
}, {
|
|
311
329
|
root,
|
|
312
330
|
output: pluginTs.options?.output ?? output,
|
|
313
|
-
group: pluginTs.options?.group
|
|
331
|
+
group: pluginTs.options?.group ?? void 0
|
|
314
332
|
})
|
|
315
333
|
};
|
|
316
334
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
@@ -318,8 +336,8 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
318
336
|
exclude: [queryKeyTypeName],
|
|
319
337
|
order: "body-response-first"
|
|
320
338
|
});
|
|
321
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) :
|
|
322
|
-
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) :
|
|
339
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) : null;
|
|
340
|
+
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null;
|
|
323
341
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
324
342
|
name: node.operationId,
|
|
325
343
|
extname: ".ts",
|
|
@@ -328,12 +346,12 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
328
346
|
}, {
|
|
329
347
|
root,
|
|
330
348
|
output: pluginZod?.options?.output ?? output,
|
|
331
|
-
group: pluginZod?.options?.group
|
|
332
|
-
}) :
|
|
349
|
+
group: pluginZod?.options?.group ?? void 0
|
|
350
|
+
}) : null;
|
|
333
351
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver);
|
|
334
352
|
const clientPlugin = driver.getPlugin(pluginClientName);
|
|
335
353
|
const shouldUseClientPlugin = clientPlugin?.name === pluginClientName && clientOptions.clientType !== "class";
|
|
336
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) :
|
|
354
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null;
|
|
337
355
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
338
356
|
name: node.operationId,
|
|
339
357
|
extname: ".ts",
|
|
@@ -342,18 +360,18 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
342
360
|
}, {
|
|
343
361
|
root,
|
|
344
362
|
output: clientPlugin?.options?.output ?? output,
|
|
345
|
-
group: clientPlugin?.options?.group
|
|
346
|
-
}) :
|
|
363
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
364
|
+
}) : null;
|
|
347
365
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientBaseName : clientBaseName;
|
|
348
366
|
return /* @__PURE__ */ jsxs(File, {
|
|
349
367
|
baseName: meta.file.baseName,
|
|
350
368
|
path: meta.file.path,
|
|
351
369
|
meta: meta.file.meta,
|
|
352
|
-
banner: resolver.resolveBanner(
|
|
370
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
353
371
|
output,
|
|
354
372
|
config
|
|
355
373
|
}),
|
|
356
|
-
footer: resolver.resolveFooter(
|
|
374
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
357
375
|
output,
|
|
358
376
|
config
|
|
359
377
|
}),
|
|
@@ -506,11 +524,16 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
506
524
|
});
|
|
507
525
|
//#endregion
|
|
508
526
|
//#region src/generators/mutationGenerator.tsx
|
|
527
|
+
/**
|
|
528
|
+
* Built-in generator for `useMutation` hooks. Emits one `useFooMutation` hook
|
|
529
|
+
* per POST/PUT/DELETE operation (configurable via `mutation.methods`) plus
|
|
530
|
+
* the matching `fooMutationKey` / `fooMutationOptions` helpers.
|
|
531
|
+
*/
|
|
509
532
|
const mutationGenerator = defineGenerator({
|
|
510
533
|
name: "react-query-mutation",
|
|
511
534
|
renderer: jsxRendererSync,
|
|
512
535
|
operation(node, ctx) {
|
|
513
|
-
const { config, driver, resolver, root
|
|
536
|
+
const { config, driver, resolver, root } = ctx;
|
|
514
537
|
const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options;
|
|
515
538
|
const pluginTs = driver.getPlugin(pluginTsName);
|
|
516
539
|
if (!pluginTs) return null;
|
|
@@ -532,7 +555,7 @@ const mutationGenerator = defineGenerator({
|
|
|
532
555
|
}, {
|
|
533
556
|
root,
|
|
534
557
|
output,
|
|
535
|
-
group
|
|
558
|
+
group: group ?? void 0
|
|
536
559
|
}),
|
|
537
560
|
fileTs: tsResolver.resolveFile({
|
|
538
561
|
name: node.operationId,
|
|
@@ -542,15 +565,15 @@ const mutationGenerator = defineGenerator({
|
|
|
542
565
|
}, {
|
|
543
566
|
root,
|
|
544
567
|
output: pluginTs.options?.output ?? output,
|
|
545
|
-
group: pluginTs.options?.group
|
|
568
|
+
group: pluginTs.options?.group ?? void 0
|
|
546
569
|
})
|
|
547
570
|
};
|
|
548
571
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
549
572
|
paramsCasing,
|
|
550
573
|
order: "body-response-first"
|
|
551
574
|
});
|
|
552
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) :
|
|
553
|
-
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) :
|
|
575
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) : null;
|
|
576
|
+
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null;
|
|
554
577
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
555
578
|
name: node.operationId,
|
|
556
579
|
extname: ".ts",
|
|
@@ -559,12 +582,12 @@ const mutationGenerator = defineGenerator({
|
|
|
559
582
|
}, {
|
|
560
583
|
root,
|
|
561
584
|
output: pluginZod?.options?.output ?? output,
|
|
562
|
-
group: pluginZod?.options?.group
|
|
563
|
-
}) :
|
|
585
|
+
group: pluginZod?.options?.group ?? void 0
|
|
586
|
+
}) : null;
|
|
564
587
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver);
|
|
565
588
|
const clientPlugin = driver.getPlugin(pluginClientName);
|
|
566
589
|
const shouldUseClientPlugin = clientPlugin?.name === pluginClientName && clientOptions.clientType !== "class";
|
|
567
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) :
|
|
590
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null;
|
|
568
591
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
569
592
|
name: node.operationId,
|
|
570
593
|
extname: ".ts",
|
|
@@ -573,18 +596,18 @@ const mutationGenerator = defineGenerator({
|
|
|
573
596
|
}, {
|
|
574
597
|
root,
|
|
575
598
|
output: clientPlugin?.options?.output ?? output,
|
|
576
|
-
group: clientPlugin?.options?.group
|
|
577
|
-
}) :
|
|
599
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
600
|
+
}) : null;
|
|
578
601
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
579
602
|
return /* @__PURE__ */ jsxs(File, {
|
|
580
603
|
baseName: meta.file.baseName,
|
|
581
604
|
path: meta.file.path,
|
|
582
605
|
meta: meta.file.meta,
|
|
583
|
-
banner: resolver.resolveBanner(
|
|
606
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
584
607
|
output,
|
|
585
608
|
config
|
|
586
609
|
}),
|
|
587
|
-
footer: resolver.resolveFooter(
|
|
610
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
588
611
|
output,
|
|
589
612
|
config
|
|
590
613
|
}),
|
|
@@ -723,11 +746,16 @@ const mutationGenerator = defineGenerator({
|
|
|
723
746
|
});
|
|
724
747
|
//#endregion
|
|
725
748
|
//#region src/generators/queryGenerator.tsx
|
|
749
|
+
/**
|
|
750
|
+
* Built-in generator for `useQuery` hooks. Emits one `useFooQuery` hook per
|
|
751
|
+
* GET operation (configurable via `query.methods`) plus the matching
|
|
752
|
+
* `fooQueryKey` / `fooQueryOptions` helpers.
|
|
753
|
+
*/
|
|
726
754
|
const queryGenerator = defineGenerator({
|
|
727
755
|
name: "react-query",
|
|
728
756
|
renderer: jsxRendererSync,
|
|
729
757
|
operation(node, ctx) {
|
|
730
|
-
const { config, driver, resolver, root
|
|
758
|
+
const { config, driver, resolver, root } = ctx;
|
|
731
759
|
const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options;
|
|
732
760
|
const pluginTs = driver.getPlugin(pluginTsName);
|
|
733
761
|
if (!pluginTs) return null;
|
|
@@ -750,7 +778,7 @@ const queryGenerator = defineGenerator({
|
|
|
750
778
|
}, {
|
|
751
779
|
root,
|
|
752
780
|
output,
|
|
753
|
-
group
|
|
781
|
+
group: group ?? void 0
|
|
754
782
|
}),
|
|
755
783
|
fileTs: tsResolver.resolveFile({
|
|
756
784
|
name: node.operationId,
|
|
@@ -760,7 +788,7 @@ const queryGenerator = defineGenerator({
|
|
|
760
788
|
}, {
|
|
761
789
|
root,
|
|
762
790
|
output: pluginTs.options?.output ?? output,
|
|
763
|
-
group: pluginTs.options?.group
|
|
791
|
+
group: pluginTs.options?.group ?? void 0
|
|
764
792
|
})
|
|
765
793
|
};
|
|
766
794
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
@@ -768,8 +796,8 @@ const queryGenerator = defineGenerator({
|
|
|
768
796
|
exclude: [queryKeyTypeName],
|
|
769
797
|
order: "body-response-first"
|
|
770
798
|
});
|
|
771
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) :
|
|
772
|
-
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) :
|
|
799
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) : null;
|
|
800
|
+
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null;
|
|
773
801
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
774
802
|
name: node.operationId,
|
|
775
803
|
extname: ".ts",
|
|
@@ -778,12 +806,12 @@ const queryGenerator = defineGenerator({
|
|
|
778
806
|
}, {
|
|
779
807
|
root,
|
|
780
808
|
output: pluginZod?.options?.output ?? output,
|
|
781
|
-
group: pluginZod?.options?.group
|
|
782
|
-
}) :
|
|
809
|
+
group: pluginZod?.options?.group ?? void 0
|
|
810
|
+
}) : null;
|
|
783
811
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver);
|
|
784
812
|
const clientPlugin = driver.getPlugin(pluginClientName);
|
|
785
813
|
const shouldUseClientPlugin = clientPlugin?.name === pluginClientName && clientOptions.clientType !== "class";
|
|
786
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) :
|
|
814
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null;
|
|
787
815
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
788
816
|
name: node.operationId,
|
|
789
817
|
extname: ".ts",
|
|
@@ -792,18 +820,18 @@ const queryGenerator = defineGenerator({
|
|
|
792
820
|
}, {
|
|
793
821
|
root,
|
|
794
822
|
output: clientPlugin?.options?.output ?? output,
|
|
795
|
-
group: clientPlugin?.options?.group
|
|
796
|
-
}) :
|
|
823
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
824
|
+
}) : null;
|
|
797
825
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
798
826
|
return /* @__PURE__ */ jsxs(File, {
|
|
799
827
|
baseName: meta.file.baseName,
|
|
800
828
|
path: meta.file.path,
|
|
801
829
|
meta: meta.file.meta,
|
|
802
|
-
banner: resolver.resolveBanner(
|
|
830
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
803
831
|
output,
|
|
804
832
|
config
|
|
805
833
|
}),
|
|
806
|
-
footer: resolver.resolveFooter(
|
|
834
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
807
835
|
output,
|
|
808
836
|
config
|
|
809
837
|
}),
|
|
@@ -946,11 +974,17 @@ const queryGenerator = defineGenerator({
|
|
|
946
974
|
});
|
|
947
975
|
//#endregion
|
|
948
976
|
//#region src/generators/suspenseInfiniteQueryGenerator.tsx
|
|
977
|
+
/**
|
|
978
|
+
* Built-in generator for `useSuspenseInfiniteQuery` hooks. Enabled when both
|
|
979
|
+
* `suspense` and `infinite` are configured. Combines suspense semantics with
|
|
980
|
+
* cursor-based pagination — handlers throw promises while loading and pull
|
|
981
|
+
* additional pages on demand.
|
|
982
|
+
*/
|
|
949
983
|
const suspenseInfiniteQueryGenerator = defineGenerator({
|
|
950
984
|
name: "react-suspense-infinite-query",
|
|
951
985
|
renderer: jsxRendererSync,
|
|
952
986
|
operation(node, ctx) {
|
|
953
|
-
const { config, driver, resolver, root
|
|
987
|
+
const { config, driver, resolver, root } = ctx;
|
|
954
988
|
const { output, query, mutation, infinite, suspense, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options;
|
|
955
989
|
const pluginTs = driver.getPlugin(pluginTsName);
|
|
956
990
|
if (!pluginTs) return null;
|
|
@@ -958,7 +992,7 @@ const suspenseInfiniteQueryGenerator = defineGenerator({
|
|
|
958
992
|
const isQuery = query === false || !!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
959
993
|
const isMutation = mutation !== false && !isQuery && difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
960
994
|
const isSuspense = !!suspense;
|
|
961
|
-
const infiniteOptions = infinite && typeof infinite === "object" ? infinite :
|
|
995
|
+
const infiniteOptions = infinite && typeof infinite === "object" ? infinite : null;
|
|
962
996
|
if (!isQuery || isMutation || !isSuspense || !infiniteOptions) return null;
|
|
963
997
|
const normalizeKey = (key) => key.replace(/\?$/, "");
|
|
964
998
|
const queryParamKeys = getOperationParameters(node).query.map((p) => p.name);
|
|
@@ -980,7 +1014,7 @@ const suspenseInfiniteQueryGenerator = defineGenerator({
|
|
|
980
1014
|
}, {
|
|
981
1015
|
root,
|
|
982
1016
|
output,
|
|
983
|
-
group
|
|
1017
|
+
group: group ?? void 0
|
|
984
1018
|
}),
|
|
985
1019
|
fileTs: tsResolver.resolveFile({
|
|
986
1020
|
name: node.operationId,
|
|
@@ -990,15 +1024,15 @@ const suspenseInfiniteQueryGenerator = defineGenerator({
|
|
|
990
1024
|
}, {
|
|
991
1025
|
root,
|
|
992
1026
|
output: pluginTs.options?.output ?? output,
|
|
993
|
-
group: pluginTs.options?.group
|
|
1027
|
+
group: pluginTs.options?.group ?? void 0
|
|
994
1028
|
})
|
|
995
1029
|
};
|
|
996
1030
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
997
1031
|
paramsCasing,
|
|
998
1032
|
order: "body-response-first"
|
|
999
1033
|
});
|
|
1000
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) :
|
|
1001
|
-
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) :
|
|
1034
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) : null;
|
|
1035
|
+
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null;
|
|
1002
1036
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
1003
1037
|
name: node.operationId,
|
|
1004
1038
|
extname: ".ts",
|
|
@@ -1007,12 +1041,12 @@ const suspenseInfiniteQueryGenerator = defineGenerator({
|
|
|
1007
1041
|
}, {
|
|
1008
1042
|
root,
|
|
1009
1043
|
output: pluginZod?.options?.output ?? output,
|
|
1010
|
-
group: pluginZod?.options?.group
|
|
1011
|
-
}) :
|
|
1044
|
+
group: pluginZod?.options?.group ?? void 0
|
|
1045
|
+
}) : null;
|
|
1012
1046
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver);
|
|
1013
1047
|
const clientPlugin = driver.getPlugin(pluginClientName);
|
|
1014
1048
|
const shouldUseClientPlugin = clientPlugin?.name === pluginClientName && clientOptions.clientType !== "class";
|
|
1015
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) :
|
|
1049
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null;
|
|
1016
1050
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
1017
1051
|
name: node.operationId,
|
|
1018
1052
|
extname: ".ts",
|
|
@@ -1021,18 +1055,18 @@ const suspenseInfiniteQueryGenerator = defineGenerator({
|
|
|
1021
1055
|
}, {
|
|
1022
1056
|
root,
|
|
1023
1057
|
output: clientPlugin?.options?.output ?? output,
|
|
1024
|
-
group: clientPlugin?.options?.group
|
|
1025
|
-
}) :
|
|
1058
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
1059
|
+
}) : null;
|
|
1026
1060
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientBaseName : clientBaseName;
|
|
1027
1061
|
return /* @__PURE__ */ jsxs(File, {
|
|
1028
1062
|
baseName: meta.file.baseName,
|
|
1029
1063
|
path: meta.file.path,
|
|
1030
1064
|
meta: meta.file.meta,
|
|
1031
|
-
banner: resolver.resolveBanner(
|
|
1065
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
1032
1066
|
output,
|
|
1033
1067
|
config
|
|
1034
1068
|
}),
|
|
1035
|
-
footer: resolver.resolveFooter(
|
|
1069
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
1036
1070
|
output,
|
|
1037
1071
|
config
|
|
1038
1072
|
}),
|
|
@@ -1185,11 +1219,17 @@ const suspenseInfiniteQueryGenerator = defineGenerator({
|
|
|
1185
1219
|
});
|
|
1186
1220
|
//#endregion
|
|
1187
1221
|
//#region src/generators/suspenseQueryGenerator.tsx
|
|
1222
|
+
/**
|
|
1223
|
+
* Built-in generator for `useSuspenseQuery` hooks. Enabled when
|
|
1224
|
+
* `pluginReactQuery({ suspense: {} })`. Emits one `useFooSuspenseQuery` hook
|
|
1225
|
+
* per query operation. Suspense queries throw promises while loading and
|
|
1226
|
+
* require a `<Suspense>` boundary in the React tree. TanStack Query v5+ only.
|
|
1227
|
+
*/
|
|
1188
1228
|
const suspenseQueryGenerator = defineGenerator({
|
|
1189
1229
|
name: "react-suspense-query",
|
|
1190
1230
|
renderer: jsxRendererSync,
|
|
1191
1231
|
operation(node, ctx) {
|
|
1192
|
-
const { config, driver, resolver, root
|
|
1232
|
+
const { config, driver, resolver, root } = ctx;
|
|
1193
1233
|
const { output, query, mutation, suspense, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options;
|
|
1194
1234
|
const pluginTs = driver.getPlugin(pluginTsName);
|
|
1195
1235
|
if (!pluginTs) return null;
|
|
@@ -1212,7 +1252,7 @@ const suspenseQueryGenerator = defineGenerator({
|
|
|
1212
1252
|
}, {
|
|
1213
1253
|
root,
|
|
1214
1254
|
output,
|
|
1215
|
-
group
|
|
1255
|
+
group: group ?? void 0
|
|
1216
1256
|
}),
|
|
1217
1257
|
fileTs: tsResolver.resolveFile({
|
|
1218
1258
|
name: node.operationId,
|
|
@@ -1222,7 +1262,7 @@ const suspenseQueryGenerator = defineGenerator({
|
|
|
1222
1262
|
}, {
|
|
1223
1263
|
root,
|
|
1224
1264
|
output: pluginTs.options?.output ?? output,
|
|
1225
|
-
group: pluginTs.options?.group
|
|
1265
|
+
group: pluginTs.options?.group ?? void 0
|
|
1226
1266
|
})
|
|
1227
1267
|
};
|
|
1228
1268
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
@@ -1230,8 +1270,8 @@ const suspenseQueryGenerator = defineGenerator({
|
|
|
1230
1270
|
exclude: [queryKeyTypeName],
|
|
1231
1271
|
order: "body-response-first"
|
|
1232
1272
|
});
|
|
1233
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) :
|
|
1234
|
-
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) :
|
|
1273
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) : null;
|
|
1274
|
+
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null;
|
|
1235
1275
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
1236
1276
|
name: node.operationId,
|
|
1237
1277
|
extname: ".ts",
|
|
@@ -1240,12 +1280,12 @@ const suspenseQueryGenerator = defineGenerator({
|
|
|
1240
1280
|
}, {
|
|
1241
1281
|
root,
|
|
1242
1282
|
output: pluginZod?.options?.output ?? output,
|
|
1243
|
-
group: pluginZod?.options?.group
|
|
1244
|
-
}) :
|
|
1283
|
+
group: pluginZod?.options?.group ?? void 0
|
|
1284
|
+
}) : null;
|
|
1245
1285
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver);
|
|
1246
1286
|
const clientPlugin = driver.getPlugin(pluginClientName);
|
|
1247
1287
|
const shouldUseClientPlugin = clientPlugin?.name === pluginClientName && clientOptions.clientType !== "class";
|
|
1248
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) :
|
|
1288
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null;
|
|
1249
1289
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
1250
1290
|
name: node.operationId,
|
|
1251
1291
|
extname: ".ts",
|
|
@@ -1254,18 +1294,18 @@ const suspenseQueryGenerator = defineGenerator({
|
|
|
1254
1294
|
}, {
|
|
1255
1295
|
root,
|
|
1256
1296
|
output: clientPlugin?.options?.output ?? output,
|
|
1257
|
-
group: clientPlugin?.options?.group
|
|
1258
|
-
}) :
|
|
1297
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
1298
|
+
}) : null;
|
|
1259
1299
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
1260
1300
|
return /* @__PURE__ */ jsxs(File, {
|
|
1261
1301
|
baseName: meta.file.baseName,
|
|
1262
1302
|
path: meta.file.path,
|
|
1263
1303
|
meta: meta.file.meta,
|
|
1264
|
-
banner: resolver.resolveBanner(
|
|
1304
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
1265
1305
|
output,
|
|
1266
1306
|
config
|
|
1267
1307
|
}),
|
|
1268
|
-
footer: resolver.resolveFooter(
|
|
1308
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
1269
1309
|
output,
|
|
1270
1310
|
config
|
|
1271
1311
|
}),
|
|
@@ -1409,4 +1449,4 @@ const suspenseQueryGenerator = defineGenerator({
|
|
|
1409
1449
|
//#endregion
|
|
1410
1450
|
export { infiniteQueryGenerator as a, mutationGenerator as i, suspenseInfiniteQueryGenerator as n, hookOptionsGenerator as o, queryGenerator as r, customHookOptionsFileGenerator as s, suspenseQueryGenerator as t };
|
|
1411
1451
|
|
|
1412
|
-
//# sourceMappingURL=generators-
|
|
1452
|
+
//# sourceMappingURL=generators-9srJC_zb.js.map
|