@kubb/plugin-vue-query 5.0.0-beta.22 → 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-DycYiYNM.cjs → components-CeZrYaZj.cjs} +35 -35
- package/dist/components-CeZrYaZj.cjs.map +1 -0
- package/dist/{components-CARlYXLX.js → components-CpTXuQiK.js} +35 -35
- package/dist/components-CpTXuQiK.js.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.d.ts +3 -3
- package/dist/components.js +1 -1
- package/dist/{generators-DX8VWz4a.cjs → generators-BSMwPpbh.cjs} +46 -30
- package/dist/generators-BSMwPpbh.cjs.map +1 -0
- package/dist/{generators-BuDRi6qN.js → generators-Cb5_nhMY.js} +46 -30
- package/dist/generators-Cb5_nhMY.js.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.ts +17 -1
- package/dist/generators.js +1 -1
- package/dist/index.cjs +47 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +29 -1
- package/dist/index.js +47 -8
- package/dist/index.js.map +1 -1
- package/dist/{types-Bkm7bWT3.d.ts → types-D-LjzI_Q.d.ts} +73 -46
- package/extension.yaml +779 -255
- package/package.json +7 -7
- package/src/components/InfiniteQuery.tsx +1 -1
- package/src/components/InfiniteQueryOptions.tsx +8 -8
- package/src/components/Mutation.tsx +2 -2
- package/src/components/Query.tsx +1 -1
- package/src/components/QueryKey.tsx +3 -3
- package/src/components/QueryOptions.tsx +1 -1
- package/src/generators/infiniteQueryGenerator.tsx +19 -10
- package/src/generators/mutationGenerator.tsx +17 -9
- package/src/generators/queryGenerator.tsx +17 -9
- package/src/plugin.ts +32 -4
- package/src/resolvers/resolverVueQuery.ts +13 -2
- package/src/types.ts +72 -45
- package/dist/components-CARlYXLX.js.map +0 -1
- package/dist/components-DycYiYNM.cjs.map +0 -1
- package/dist/generators-BuDRi6qN.js.map +0 -1
- package/dist/generators-DX8VWz4a.cjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_components = require("./components-
|
|
1
|
+
const require_components = require("./components-CeZrYaZj.cjs");
|
|
2
2
|
let node_path = require("node:path");
|
|
3
3
|
node_path = require_components.__toESM(node_path);
|
|
4
4
|
let _kubb_core = require("@kubb/core");
|
|
@@ -9,6 +9,12 @@ let _kubb_renderer_jsx = require("@kubb/renderer-jsx");
|
|
|
9
9
|
let _kubb_renderer_jsx_jsx_runtime = require("@kubb/renderer-jsx/jsx-runtime");
|
|
10
10
|
let remeda = require("remeda");
|
|
11
11
|
//#region src/generators/infiniteQueryGenerator.tsx
|
|
12
|
+
/**
|
|
13
|
+
* Built-in generator for `useInfiniteQuery` composables. Enabled when
|
|
14
|
+
* `pluginVueQuery({ infinite: { ... } })`. Emits one `useFooInfiniteQuery`
|
|
15
|
+
* composable per query operation, wiring the configured cursor path into
|
|
16
|
+
* TanStack Query's cursor-based pagination.
|
|
17
|
+
*/
|
|
12
18
|
const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
13
19
|
name: "vue-query-infinite",
|
|
14
20
|
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
@@ -20,7 +26,7 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
20
26
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
21
27
|
const isQuery = query === false || !!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
22
28
|
const isMutation = mutation !== false && !isQuery && (0, remeda.difference)(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
23
|
-
const infiniteOptions = infinite && typeof infinite === "object" ? infinite :
|
|
29
|
+
const infiniteOptions = infinite && typeof infinite === "object" ? infinite : null;
|
|
24
30
|
if (!isQuery || isMutation || !infiniteOptions) return null;
|
|
25
31
|
const normalizeKey = (key) => key.replace(/\?$/, "");
|
|
26
32
|
const queryParamKeys = require_components.getOperationParameters(node).query.map((p) => p.name);
|
|
@@ -42,7 +48,7 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
42
48
|
}, {
|
|
43
49
|
root,
|
|
44
50
|
output,
|
|
45
|
-
group
|
|
51
|
+
group: group ?? void 0
|
|
46
52
|
}),
|
|
47
53
|
fileTs: tsResolver.resolveFile({
|
|
48
54
|
name: node.operationId,
|
|
@@ -52,7 +58,7 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
52
58
|
}, {
|
|
53
59
|
root,
|
|
54
60
|
output: pluginTs.options?.output ?? output,
|
|
55
|
-
group: pluginTs.options?.group
|
|
61
|
+
group: pluginTs.options?.group ?? void 0
|
|
56
62
|
})
|
|
57
63
|
};
|
|
58
64
|
const importedTypeNames = require_components.resolveOperationTypeNames(node, tsResolver, {
|
|
@@ -60,8 +66,8 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
60
66
|
exclude: [queryKeyTypeName],
|
|
61
67
|
order: "body-response-first"
|
|
62
68
|
});
|
|
63
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) :
|
|
64
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) :
|
|
69
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
70
|
+
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
65
71
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
66
72
|
name: node.operationId,
|
|
67
73
|
extname: ".ts",
|
|
@@ -70,12 +76,12 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
70
76
|
}, {
|
|
71
77
|
root,
|
|
72
78
|
output: pluginZod?.options?.output ?? output,
|
|
73
|
-
group: pluginZod?.options?.group
|
|
74
|
-
}) :
|
|
79
|
+
group: pluginZod?.options?.group ?? void 0
|
|
80
|
+
}) : null;
|
|
75
81
|
const zodSchemaNames = require_components.resolveZodSchemaNames(node, zodResolver);
|
|
76
82
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
77
83
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
78
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) :
|
|
84
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
79
85
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
80
86
|
name: node.operationId,
|
|
81
87
|
extname: ".ts",
|
|
@@ -84,8 +90,8 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
84
90
|
}, {
|
|
85
91
|
root,
|
|
86
92
|
output: clientPlugin?.options?.output ?? output,
|
|
87
|
-
group: clientPlugin?.options?.group
|
|
88
|
-
}) :
|
|
93
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
94
|
+
}) : null;
|
|
89
95
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientBaseName : clientBaseName;
|
|
90
96
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
91
97
|
baseName: meta.file.baseName,
|
|
@@ -252,6 +258,11 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
252
258
|
});
|
|
253
259
|
//#endregion
|
|
254
260
|
//#region src/generators/mutationGenerator.tsx
|
|
261
|
+
/**
|
|
262
|
+
* Built-in generator for `useMutation` composables. Emits one
|
|
263
|
+
* `useFooMutation` composable per POST/PUT/DELETE operation (configurable
|
|
264
|
+
* via `mutation.methods`) plus the matching `fooMutationKey` helper.
|
|
265
|
+
*/
|
|
255
266
|
const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
256
267
|
name: "vue-query-mutation",
|
|
257
268
|
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
@@ -277,7 +288,7 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
277
288
|
}, {
|
|
278
289
|
root,
|
|
279
290
|
output,
|
|
280
|
-
group
|
|
291
|
+
group: group ?? void 0
|
|
281
292
|
}),
|
|
282
293
|
fileTs: tsResolver.resolveFile({
|
|
283
294
|
name: node.operationId,
|
|
@@ -287,15 +298,15 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
287
298
|
}, {
|
|
288
299
|
root,
|
|
289
300
|
output: pluginTs.options?.output ?? output,
|
|
290
|
-
group: pluginTs.options?.group
|
|
301
|
+
group: pluginTs.options?.group ?? void 0
|
|
291
302
|
})
|
|
292
303
|
};
|
|
293
304
|
const importedTypeNames = require_components.resolveOperationTypeNames(node, tsResolver, {
|
|
294
305
|
paramsCasing,
|
|
295
306
|
order: "body-response-first"
|
|
296
307
|
});
|
|
297
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) :
|
|
298
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) :
|
|
308
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
309
|
+
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
299
310
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
300
311
|
name: node.operationId,
|
|
301
312
|
extname: ".ts",
|
|
@@ -304,12 +315,12 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
304
315
|
}, {
|
|
305
316
|
root,
|
|
306
317
|
output: pluginZod?.options?.output ?? output,
|
|
307
|
-
group: pluginZod?.options?.group
|
|
308
|
-
}) :
|
|
318
|
+
group: pluginZod?.options?.group ?? void 0
|
|
319
|
+
}) : null;
|
|
309
320
|
const zodSchemaNames = require_components.resolveZodSchemaNames(node, zodResolver);
|
|
310
321
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
311
322
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
312
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) :
|
|
323
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
313
324
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
314
325
|
name: node.operationId,
|
|
315
326
|
extname: ".ts",
|
|
@@ -318,8 +329,8 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
318
329
|
}, {
|
|
319
330
|
root,
|
|
320
331
|
output: clientPlugin?.options?.output ?? output,
|
|
321
|
-
group: clientPlugin?.options?.group
|
|
322
|
-
}) :
|
|
332
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
333
|
+
}) : null;
|
|
323
334
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
324
335
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
325
336
|
baseName: meta.file.baseName,
|
|
@@ -450,6 +461,11 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
450
461
|
});
|
|
451
462
|
//#endregion
|
|
452
463
|
//#region src/generators/queryGenerator.tsx
|
|
464
|
+
/**
|
|
465
|
+
* Built-in generator for `useQuery` composables. Emits one `useFooQuery`
|
|
466
|
+
* composable per GET operation (configurable via `query.methods`) plus the
|
|
467
|
+
* matching `fooQueryKey` / `fooQueryOptions` helpers.
|
|
468
|
+
*/
|
|
453
469
|
const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
454
470
|
name: "vue-query",
|
|
455
471
|
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
@@ -477,7 +493,7 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
477
493
|
}, {
|
|
478
494
|
root,
|
|
479
495
|
output,
|
|
480
|
-
group
|
|
496
|
+
group: group ?? void 0
|
|
481
497
|
}),
|
|
482
498
|
fileTs: tsResolver.resolveFile({
|
|
483
499
|
name: node.operationId,
|
|
@@ -487,7 +503,7 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
487
503
|
}, {
|
|
488
504
|
root,
|
|
489
505
|
output: pluginTs.options?.output ?? output,
|
|
490
|
-
group: pluginTs.options?.group
|
|
506
|
+
group: pluginTs.options?.group ?? void 0
|
|
491
507
|
})
|
|
492
508
|
};
|
|
493
509
|
const importedTypeNames = require_components.resolveOperationTypeNames(node, tsResolver, {
|
|
@@ -495,8 +511,8 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
495
511
|
exclude: [queryKeyTypeName],
|
|
496
512
|
order: "body-response-first"
|
|
497
513
|
});
|
|
498
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) :
|
|
499
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) :
|
|
514
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
515
|
+
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
500
516
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
501
517
|
name: node.operationId,
|
|
502
518
|
extname: ".ts",
|
|
@@ -505,12 +521,12 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
505
521
|
}, {
|
|
506
522
|
root,
|
|
507
523
|
output: pluginZod?.options?.output ?? output,
|
|
508
|
-
group: pluginZod?.options?.group
|
|
509
|
-
}) :
|
|
524
|
+
group: pluginZod?.options?.group ?? void 0
|
|
525
|
+
}) : null;
|
|
510
526
|
const zodSchemaNames = require_components.resolveZodSchemaNames(node, zodResolver);
|
|
511
527
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
512
528
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
513
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) :
|
|
529
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
514
530
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
515
531
|
name: node.operationId,
|
|
516
532
|
extname: ".ts",
|
|
@@ -519,8 +535,8 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
519
535
|
}, {
|
|
520
536
|
root,
|
|
521
537
|
output: clientPlugin?.options?.output ?? output,
|
|
522
|
-
group: clientPlugin?.options?.group
|
|
523
|
-
}) :
|
|
538
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
539
|
+
}) : null;
|
|
524
540
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
525
541
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
526
542
|
baseName: meta.file.baseName,
|
|
@@ -695,4 +711,4 @@ Object.defineProperty(exports, "queryGenerator", {
|
|
|
695
711
|
}
|
|
696
712
|
});
|
|
697
713
|
|
|
698
|
-
//# sourceMappingURL=generators-
|
|
714
|
+
//# sourceMappingURL=generators-BSMwPpbh.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generators-BSMwPpbh.cjs","names":["jsxRendererSync","pluginTsName","getOperationParameters","resolveOperationTypeNames","pluginZodName","resolveZodSchemaNames","pluginClientName","File","path","QueryKey","Client","InfiniteQueryOptions","InfiniteQuery","jsxRendererSync","pluginTsName","resolveOperationTypeNames","pluginZodName","resolveZodSchemaNames","pluginClientName","File","path","MutationKey","Client","Mutation","jsxRendererSync","pluginTsName","resolveOperationTypeNames","pluginZodName","resolveZodSchemaNames","pluginClientName","File","path","QueryKey","Client","QueryOptions","Query"],"sources":["../src/generators/infiniteQueryGenerator.tsx","../src/generators/mutationGenerator.tsx","../src/generators/queryGenerator.tsx"],"sourcesContent":["import path from 'node:path'\nimport { getOperationParameters, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { InfiniteQuery, InfiniteQueryOptions, QueryKey } from '../components'\nimport type { PluginVueQuery } from '../types'\n\n/**\n * Built-in generator for `useInfiniteQuery` composables. Enabled when\n * `pluginVueQuery({ infinite: { ... } })`. Emits one `useFooInfiniteQuery`\n * composable per query operation, wiring the configured cursor path into\n * TanStack Query's cursor-based pagination.\n */\nexport const infiniteQueryGenerator = defineGenerator<PluginVueQuery>({\n name: 'vue-query-infinite',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, infinite, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n const infiniteOptions = infinite && typeof infinite === 'object' ? infinite : null\n\n if (!isQuery || isMutation || !infiniteOptions) return null\n\n // Validate queryParam exists in operation's query parameters\n const normalizeKey = (key: string) => key.replace(/\\?$/, '')\n const queryParamKeys = getOperationParameters(node).query.map((p) => p.name)\n const hasQueryParam = infiniteOptions.queryParam ? queryParamKeys.some((k) => normalizeKey(k) === infiniteOptions.queryParam) : false\n // cursorParam validation against response schema keys is skipped in v5 (complex schema inspection)\n const hasCursorParam = !infiniteOptions.cursorParam || true\n\n if (!hasQueryParam || !hasCursorParam) return null\n\n const importPath = query ? query.importPath : '@tanstack/vue-query'\n\n const queryName = resolver.resolveInfiniteQueryName(node)\n const queryOptionsName = resolver.resolveInfiniteQueryOptionsName(node)\n const queryKeyName = resolver.resolveInfiniteQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveInfiniteQueryKeyTypeName(node)\n const clientBaseName = resolver.resolveInfiniteClientName(node)\n\n const meta = {\n file: resolver.resolveFile(\n { name: queryName, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output, group: group ?? undefined },\n ),\n fileTs: tsResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },\n ),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {\n paramsCasing,\n exclude: [queryKeyTypeName],\n order: 'body-response-first',\n })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginZod?.options?.output ?? output, group: pluginZod?.options?.group ?? undefined },\n )\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n },\n )\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientBaseName) : clientBaseName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config })}\n footer={resolver.resolveFooter(ctx.meta, { output, config })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n <File.Import name={['toValue']} path=\"vue\" />\n <File.Import name={['MaybeRefOrGetter']} path=\"vue\" isTypeOnly />\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n\n <InfiniteQueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n cursorParam={infiniteOptions.cursorParam}\n nextParam={infiniteOptions.nextParam}\n previousParam={infiniteOptions.previousParam}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n\n <File.Import name={['useInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseInfiniteQueryOptions', 'UseInfiniteQueryReturnType']} path={importPath} isTypeOnly />\n\n <InfiniteQuery\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { Mutation, MutationKey } from '../components'\nimport type { PluginVueQuery } from '../types'\n\n/**\n * Built-in generator for `useMutation` composables. Emits one\n * `useFooMutation` composable per POST/PUT/DELETE operation (configurable\n * via `mutation.methods`) plus the matching `fooMutationKey` helper.\n */\nexport const mutationGenerator = defineGenerator<PluginVueQuery>({\n name: 'vue-query-mutation',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n\n if (!isMutation) return null\n\n const importPath = mutation ? mutation.importPath : '@tanstack/vue-query'\n\n const mutationHookName = resolver.resolveMutationName(node)\n const mutationTypeName = resolver.resolveMutationTypeName(node)\n const mutationKeyName = resolver.resolveMutationKeyName(node)\n const clientName = resolver.resolveClientName(node)\n\n const meta = {\n file: resolver.resolveFile(\n { name: mutationHookName, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output, group: group ?? undefined },\n ),\n fileTs: tsResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },\n ),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, { paramsCasing, order: 'body-response-first' })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginZod?.options?.output ?? output, group: pluginZod?.options?.group ?? undefined },\n )\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n },\n )\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config })}\n footer={resolver.resolveFooter(ctx.meta, { output, config })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n <File.Import name={['MaybeRefOrGetter']} path=\"vue\" isTypeOnly />\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && node.requestBody?.content?.some((e) => e.contentType === 'multipart/form-data') && (\n <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />\n )}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <MutationKey name={mutationKeyName} node={node} pathParamsType={pathParamsType} paramsCasing={paramsCasing} transformer={ctx.options.mutationKey} />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n {mutation && (\n <>\n <File.Import name={['useMutation']} path={importPath} />\n <File.Import name={['MutationObserverOptions', 'QueryClient']} path={importPath} isTypeOnly />\n <Mutation\n name={mutationHookName}\n clientName={resolvedClientName}\n typeName={mutationTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n mutationKeyName={mutationKeyName}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { Query, QueryKey, QueryOptions } from '../components'\nimport type { PluginVueQuery } from '../types'\n\n/**\n * Built-in generator for `useQuery` composables. Emits one `useFooQuery`\n * composable per GET operation (configurable via `query.methods`) plus the\n * matching `fooQueryKey` / `fooQueryOptions` helpers.\n */\nexport const queryGenerator = defineGenerator<PluginVueQuery>({\n name: 'vue-query',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n\n if (!isQuery || isMutation) return null\n\n const importPath = query ? query.importPath : '@tanstack/vue-query'\n\n const queryName = resolver.resolveQueryName(node)\n const queryOptionsName = resolver.resolveQueryOptionsName(node)\n const queryKeyName = resolver.resolveQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveQueryKeyTypeName(node)\n const clientName = resolver.resolveClientName(node)\n\n const meta = {\n file: resolver.resolveFile(\n { name: queryName, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output, group: group ?? undefined },\n ),\n fileTs: tsResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },\n ),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {\n paramsCasing,\n exclude: [queryKeyTypeName],\n order: 'body-response-first',\n })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginZod?.options?.output ?? output, group: pluginZod?.options?.group ?? undefined },\n )\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n },\n )\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config })}\n footer={resolver.resolveFooter(ctx.meta, { output, config })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n <File.Import name={['toValue']} path=\"vue\" />\n <File.Import name={['MaybeRefOrGetter']} path=\"vue\" isTypeOnly />\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['queryOptions']} path={importPath} />\n\n <QueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n />\n\n {query && (\n <>\n <File.Import name={['useQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseQueryOptions', 'UseQueryReturnType']} path={importPath} isTypeOnly />\n <Query\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n />\n </>\n )}\n </File>\n )\n },\n})\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./chunk--u3MIqq1.js";
|
|
2
|
-
import { a as QueryOptions, c as resolveZodSchemaNames, d as MutationKey, i as InfiniteQuery, l as getOperationParameters, n as Mutation, o as QueryKey, r as InfiniteQueryOptions, t as Query, u as resolveOperationTypeNames } from "./components-
|
|
2
|
+
import { a as QueryOptions, c as resolveZodSchemaNames, d as MutationKey, i as InfiniteQuery, l as getOperationParameters, n as Mutation, o as QueryKey, r as InfiniteQueryOptions, t as Query, u as resolveOperationTypeNames } from "./components-CpTXuQiK.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { defineGenerator } from "@kubb/core";
|
|
5
5
|
import { Client, pluginClientName } from "@kubb/plugin-client";
|
|
@@ -9,6 +9,12 @@ import { File, jsxRendererSync } from "@kubb/renderer-jsx";
|
|
|
9
9
|
import { Fragment, jsx, jsxs } from "@kubb/renderer-jsx/jsx-runtime";
|
|
10
10
|
import { difference } from "remeda";
|
|
11
11
|
//#region src/generators/infiniteQueryGenerator.tsx
|
|
12
|
+
/**
|
|
13
|
+
* Built-in generator for `useInfiniteQuery` composables. Enabled when
|
|
14
|
+
* `pluginVueQuery({ infinite: { ... } })`. Emits one `useFooInfiniteQuery`
|
|
15
|
+
* composable per query operation, wiring the configured cursor path into
|
|
16
|
+
* TanStack Query's cursor-based pagination.
|
|
17
|
+
*/
|
|
12
18
|
const infiniteQueryGenerator = defineGenerator({
|
|
13
19
|
name: "vue-query-infinite",
|
|
14
20
|
renderer: jsxRendererSync,
|
|
@@ -20,7 +26,7 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
20
26
|
const tsResolver = driver.getResolver(pluginTsName);
|
|
21
27
|
const isQuery = query === false || !!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
22
28
|
const isMutation = mutation !== false && !isQuery && difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
23
|
-
const infiniteOptions = infinite && typeof infinite === "object" ? infinite :
|
|
29
|
+
const infiniteOptions = infinite && typeof infinite === "object" ? infinite : null;
|
|
24
30
|
if (!isQuery || isMutation || !infiniteOptions) return null;
|
|
25
31
|
const normalizeKey = (key) => key.replace(/\?$/, "");
|
|
26
32
|
const queryParamKeys = getOperationParameters(node).query.map((p) => p.name);
|
|
@@ -42,7 +48,7 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
42
48
|
}, {
|
|
43
49
|
root,
|
|
44
50
|
output,
|
|
45
|
-
group
|
|
51
|
+
group: group ?? void 0
|
|
46
52
|
}),
|
|
47
53
|
fileTs: tsResolver.resolveFile({
|
|
48
54
|
name: node.operationId,
|
|
@@ -52,7 +58,7 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
52
58
|
}, {
|
|
53
59
|
root,
|
|
54
60
|
output: pluginTs.options?.output ?? output,
|
|
55
|
-
group: pluginTs.options?.group
|
|
61
|
+
group: pluginTs.options?.group ?? void 0
|
|
56
62
|
})
|
|
57
63
|
};
|
|
58
64
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
@@ -60,8 +66,8 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
60
66
|
exclude: [queryKeyTypeName],
|
|
61
67
|
order: "body-response-first"
|
|
62
68
|
});
|
|
63
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) :
|
|
64
|
-
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) :
|
|
69
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) : null;
|
|
70
|
+
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null;
|
|
65
71
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
66
72
|
name: node.operationId,
|
|
67
73
|
extname: ".ts",
|
|
@@ -70,12 +76,12 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
70
76
|
}, {
|
|
71
77
|
root,
|
|
72
78
|
output: pluginZod?.options?.output ?? output,
|
|
73
|
-
group: pluginZod?.options?.group
|
|
74
|
-
}) :
|
|
79
|
+
group: pluginZod?.options?.group ?? void 0
|
|
80
|
+
}) : null;
|
|
75
81
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver);
|
|
76
82
|
const clientPlugin = driver.getPlugin(pluginClientName);
|
|
77
83
|
const shouldUseClientPlugin = clientPlugin?.name === pluginClientName && clientOptions.clientType !== "class";
|
|
78
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) :
|
|
84
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null;
|
|
79
85
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
80
86
|
name: node.operationId,
|
|
81
87
|
extname: ".ts",
|
|
@@ -84,8 +90,8 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
84
90
|
}, {
|
|
85
91
|
root,
|
|
86
92
|
output: clientPlugin?.options?.output ?? output,
|
|
87
|
-
group: clientPlugin?.options?.group
|
|
88
|
-
}) :
|
|
93
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
94
|
+
}) : null;
|
|
89
95
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientBaseName : clientBaseName;
|
|
90
96
|
return /* @__PURE__ */ jsxs(File, {
|
|
91
97
|
baseName: meta.file.baseName,
|
|
@@ -252,6 +258,11 @@ const infiniteQueryGenerator = defineGenerator({
|
|
|
252
258
|
});
|
|
253
259
|
//#endregion
|
|
254
260
|
//#region src/generators/mutationGenerator.tsx
|
|
261
|
+
/**
|
|
262
|
+
* Built-in generator for `useMutation` composables. Emits one
|
|
263
|
+
* `useFooMutation` composable per POST/PUT/DELETE operation (configurable
|
|
264
|
+
* via `mutation.methods`) plus the matching `fooMutationKey` helper.
|
|
265
|
+
*/
|
|
255
266
|
const mutationGenerator = defineGenerator({
|
|
256
267
|
name: "vue-query-mutation",
|
|
257
268
|
renderer: jsxRendererSync,
|
|
@@ -277,7 +288,7 @@ const mutationGenerator = defineGenerator({
|
|
|
277
288
|
}, {
|
|
278
289
|
root,
|
|
279
290
|
output,
|
|
280
|
-
group
|
|
291
|
+
group: group ?? void 0
|
|
281
292
|
}),
|
|
282
293
|
fileTs: tsResolver.resolveFile({
|
|
283
294
|
name: node.operationId,
|
|
@@ -287,15 +298,15 @@ const mutationGenerator = defineGenerator({
|
|
|
287
298
|
}, {
|
|
288
299
|
root,
|
|
289
300
|
output: pluginTs.options?.output ?? output,
|
|
290
|
-
group: pluginTs.options?.group
|
|
301
|
+
group: pluginTs.options?.group ?? void 0
|
|
291
302
|
})
|
|
292
303
|
};
|
|
293
304
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
294
305
|
paramsCasing,
|
|
295
306
|
order: "body-response-first"
|
|
296
307
|
});
|
|
297
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) :
|
|
298
|
-
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) :
|
|
308
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) : null;
|
|
309
|
+
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null;
|
|
299
310
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
300
311
|
name: node.operationId,
|
|
301
312
|
extname: ".ts",
|
|
@@ -304,12 +315,12 @@ const mutationGenerator = defineGenerator({
|
|
|
304
315
|
}, {
|
|
305
316
|
root,
|
|
306
317
|
output: pluginZod?.options?.output ?? output,
|
|
307
|
-
group: pluginZod?.options?.group
|
|
308
|
-
}) :
|
|
318
|
+
group: pluginZod?.options?.group ?? void 0
|
|
319
|
+
}) : null;
|
|
309
320
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver);
|
|
310
321
|
const clientPlugin = driver.getPlugin(pluginClientName);
|
|
311
322
|
const shouldUseClientPlugin = clientPlugin?.name === pluginClientName && clientOptions.clientType !== "class";
|
|
312
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) :
|
|
323
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null;
|
|
313
324
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
314
325
|
name: node.operationId,
|
|
315
326
|
extname: ".ts",
|
|
@@ -318,8 +329,8 @@ const mutationGenerator = defineGenerator({
|
|
|
318
329
|
}, {
|
|
319
330
|
root,
|
|
320
331
|
output: clientPlugin?.options?.output ?? output,
|
|
321
|
-
group: clientPlugin?.options?.group
|
|
322
|
-
}) :
|
|
332
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
333
|
+
}) : null;
|
|
323
334
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
324
335
|
return /* @__PURE__ */ jsxs(File, {
|
|
325
336
|
baseName: meta.file.baseName,
|
|
@@ -450,6 +461,11 @@ const mutationGenerator = defineGenerator({
|
|
|
450
461
|
});
|
|
451
462
|
//#endregion
|
|
452
463
|
//#region src/generators/queryGenerator.tsx
|
|
464
|
+
/**
|
|
465
|
+
* Built-in generator for `useQuery` composables. Emits one `useFooQuery`
|
|
466
|
+
* composable per GET operation (configurable via `query.methods`) plus the
|
|
467
|
+
* matching `fooQueryKey` / `fooQueryOptions` helpers.
|
|
468
|
+
*/
|
|
453
469
|
const queryGenerator = defineGenerator({
|
|
454
470
|
name: "vue-query",
|
|
455
471
|
renderer: jsxRendererSync,
|
|
@@ -477,7 +493,7 @@ const queryGenerator = defineGenerator({
|
|
|
477
493
|
}, {
|
|
478
494
|
root,
|
|
479
495
|
output,
|
|
480
|
-
group
|
|
496
|
+
group: group ?? void 0
|
|
481
497
|
}),
|
|
482
498
|
fileTs: tsResolver.resolveFile({
|
|
483
499
|
name: node.operationId,
|
|
@@ -487,7 +503,7 @@ const queryGenerator = defineGenerator({
|
|
|
487
503
|
}, {
|
|
488
504
|
root,
|
|
489
505
|
output: pluginTs.options?.output ?? output,
|
|
490
|
-
group: pluginTs.options?.group
|
|
506
|
+
group: pluginTs.options?.group ?? void 0
|
|
491
507
|
})
|
|
492
508
|
};
|
|
493
509
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
@@ -495,8 +511,8 @@ const queryGenerator = defineGenerator({
|
|
|
495
511
|
exclude: [queryKeyTypeName],
|
|
496
512
|
order: "body-response-first"
|
|
497
513
|
});
|
|
498
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) :
|
|
499
|
-
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) :
|
|
514
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(pluginZodName) : null;
|
|
515
|
+
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null;
|
|
500
516
|
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
501
517
|
name: node.operationId,
|
|
502
518
|
extname: ".ts",
|
|
@@ -505,12 +521,12 @@ const queryGenerator = defineGenerator({
|
|
|
505
521
|
}, {
|
|
506
522
|
root,
|
|
507
523
|
output: pluginZod?.options?.output ?? output,
|
|
508
|
-
group: pluginZod?.options?.group
|
|
509
|
-
}) :
|
|
524
|
+
group: pluginZod?.options?.group ?? void 0
|
|
525
|
+
}) : null;
|
|
510
526
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver);
|
|
511
527
|
const clientPlugin = driver.getPlugin(pluginClientName);
|
|
512
528
|
const shouldUseClientPlugin = clientPlugin?.name === pluginClientName && clientOptions.clientType !== "class";
|
|
513
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) :
|
|
529
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null;
|
|
514
530
|
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
515
531
|
name: node.operationId,
|
|
516
532
|
extname: ".ts",
|
|
@@ -519,8 +535,8 @@ const queryGenerator = defineGenerator({
|
|
|
519
535
|
}, {
|
|
520
536
|
root,
|
|
521
537
|
output: clientPlugin?.options?.output ?? output,
|
|
522
|
-
group: clientPlugin?.options?.group
|
|
523
|
-
}) :
|
|
538
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
539
|
+
}) : null;
|
|
524
540
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
525
541
|
return /* @__PURE__ */ jsxs(File, {
|
|
526
542
|
baseName: meta.file.baseName,
|
|
@@ -678,4 +694,4 @@ const queryGenerator = defineGenerator({
|
|
|
678
694
|
//#endregion
|
|
679
695
|
export { mutationGenerator as n, infiniteQueryGenerator as r, queryGenerator as t };
|
|
680
696
|
|
|
681
|
-
//# sourceMappingURL=generators-
|
|
697
|
+
//# sourceMappingURL=generators-Cb5_nhMY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generators-Cb5_nhMY.js","names":[],"sources":["../src/generators/infiniteQueryGenerator.tsx","../src/generators/mutationGenerator.tsx","../src/generators/queryGenerator.tsx"],"sourcesContent":["import path from 'node:path'\nimport { getOperationParameters, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { InfiniteQuery, InfiniteQueryOptions, QueryKey } from '../components'\nimport type { PluginVueQuery } from '../types'\n\n/**\n * Built-in generator for `useInfiniteQuery` composables. Enabled when\n * `pluginVueQuery({ infinite: { ... } })`. Emits one `useFooInfiniteQuery`\n * composable per query operation, wiring the configured cursor path into\n * TanStack Query's cursor-based pagination.\n */\nexport const infiniteQueryGenerator = defineGenerator<PluginVueQuery>({\n name: 'vue-query-infinite',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, infinite, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n const infiniteOptions = infinite && typeof infinite === 'object' ? infinite : null\n\n if (!isQuery || isMutation || !infiniteOptions) return null\n\n // Validate queryParam exists in operation's query parameters\n const normalizeKey = (key: string) => key.replace(/\\?$/, '')\n const queryParamKeys = getOperationParameters(node).query.map((p) => p.name)\n const hasQueryParam = infiniteOptions.queryParam ? queryParamKeys.some((k) => normalizeKey(k) === infiniteOptions.queryParam) : false\n // cursorParam validation against response schema keys is skipped in v5 (complex schema inspection)\n const hasCursorParam = !infiniteOptions.cursorParam || true\n\n if (!hasQueryParam || !hasCursorParam) return null\n\n const importPath = query ? query.importPath : '@tanstack/vue-query'\n\n const queryName = resolver.resolveInfiniteQueryName(node)\n const queryOptionsName = resolver.resolveInfiniteQueryOptionsName(node)\n const queryKeyName = resolver.resolveInfiniteQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveInfiniteQueryKeyTypeName(node)\n const clientBaseName = resolver.resolveInfiniteClientName(node)\n\n const meta = {\n file: resolver.resolveFile(\n { name: queryName, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output, group: group ?? undefined },\n ),\n fileTs: tsResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },\n ),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {\n paramsCasing,\n exclude: [queryKeyTypeName],\n order: 'body-response-first',\n })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginZod?.options?.output ?? output, group: pluginZod?.options?.group ?? undefined },\n )\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n },\n )\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientBaseName) : clientBaseName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config })}\n footer={resolver.resolveFooter(ctx.meta, { output, config })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n <File.Import name={['toValue']} path=\"vue\" />\n <File.Import name={['MaybeRefOrGetter']} path=\"vue\" isTypeOnly />\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n\n <InfiniteQueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n cursorParam={infiniteOptions.cursorParam}\n nextParam={infiniteOptions.nextParam}\n previousParam={infiniteOptions.previousParam}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n\n <File.Import name={['useInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseInfiniteQueryOptions', 'UseInfiniteQueryReturnType']} path={importPath} isTypeOnly />\n\n <InfiniteQuery\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { Mutation, MutationKey } from '../components'\nimport type { PluginVueQuery } from '../types'\n\n/**\n * Built-in generator for `useMutation` composables. Emits one\n * `useFooMutation` composable per POST/PUT/DELETE operation (configurable\n * via `mutation.methods`) plus the matching `fooMutationKey` helper.\n */\nexport const mutationGenerator = defineGenerator<PluginVueQuery>({\n name: 'vue-query-mutation',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n\n if (!isMutation) return null\n\n const importPath = mutation ? mutation.importPath : '@tanstack/vue-query'\n\n const mutationHookName = resolver.resolveMutationName(node)\n const mutationTypeName = resolver.resolveMutationTypeName(node)\n const mutationKeyName = resolver.resolveMutationKeyName(node)\n const clientName = resolver.resolveClientName(node)\n\n const meta = {\n file: resolver.resolveFile(\n { name: mutationHookName, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output, group: group ?? undefined },\n ),\n fileTs: tsResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },\n ),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, { paramsCasing, order: 'body-response-first' })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginZod?.options?.output ?? output, group: pluginZod?.options?.group ?? undefined },\n )\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n },\n )\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config })}\n footer={resolver.resolveFooter(ctx.meta, { output, config })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n <File.Import name={['MaybeRefOrGetter']} path=\"vue\" isTypeOnly />\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && node.requestBody?.content?.some((e) => e.contentType === 'multipart/form-data') && (\n <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />\n )}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <MutationKey name={mutationKeyName} node={node} pathParamsType={pathParamsType} paramsCasing={paramsCasing} transformer={ctx.options.mutationKey} />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n {mutation && (\n <>\n <File.Import name={['useMutation']} path={importPath} />\n <File.Import name={['MutationObserverOptions', 'QueryClient']} path={importPath} isTypeOnly />\n <Mutation\n name={mutationHookName}\n clientName={resolvedClientName}\n typeName={mutationTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n mutationKeyName={mutationKeyName}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { Query, QueryKey, QueryOptions } from '../components'\nimport type { PluginVueQuery } from '../types'\n\n/**\n * Built-in generator for `useQuery` composables. Emits one `useFooQuery`\n * composable per GET operation (configurable via `query.methods`) plus the\n * matching `fooQueryKey` / `fooQueryOptions` helpers.\n */\nexport const queryGenerator = defineGenerator<PluginVueQuery>({\n name: 'vue-query',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n\n if (!isQuery || isMutation) return null\n\n const importPath = query ? query.importPath : '@tanstack/vue-query'\n\n const queryName = resolver.resolveQueryName(node)\n const queryOptionsName = resolver.resolveQueryOptionsName(node)\n const queryKeyName = resolver.resolveQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveQueryKeyTypeName(node)\n const clientName = resolver.resolveClientName(node)\n\n const meta = {\n file: resolver.resolveFile(\n { name: queryName, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output, group: group ?? undefined },\n ),\n fileTs: tsResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },\n ),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {\n paramsCasing,\n exclude: [queryKeyTypeName],\n order: 'body-response-first',\n })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n { root, output: pluginZod?.options?.output ?? output, group: pluginZod?.options?.group ?? undefined },\n )\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(\n { name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },\n {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n },\n )\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config })}\n footer={resolver.resolveFooter(ctx.meta, { output, config })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'fetch'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['fetch']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n <File.Import name={['toValue']} path=\"vue\" />\n <File.Import name={['MaybeRefOrGetter']} path=\"vue\" isTypeOnly />\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['queryOptions']} path={importPath} />\n\n <QueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n />\n\n {query && (\n <>\n <File.Import name={['useQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseQueryOptions', 'UseQueryReturnType']} path={importPath} isTypeOnly />\n <Query\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n />\n </>\n )}\n </File>\n )\n },\n})\n"],"mappings":"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"}
|