@kubb/plugin-vue-query 5.0.0-beta.4 → 5.0.0-beta.42
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/README.md +39 -22
- package/dist/{components-qfOFRSoM.cjs → components-BwFPMwK7.cjs} +367 -381
- package/dist/components-BwFPMwK7.cjs.map +1 -0
- package/dist/{components-D1UhYFgY.js → components-Bxe1EuWf.js} +337 -381
- package/dist/components-Bxe1EuWf.js.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.d.ts +4 -68
- package/dist/components.js +1 -1
- package/dist/{generators-C4gs_P1i.cjs → generators-BSN6A0ED.cjs} +163 -206
- package/dist/generators-BSN6A0ED.cjs.map +1 -0
- package/dist/{generators-CbnIVBgY.js → generators-D9TUvYRN.js} +165 -208
- package/dist/generators-D9TUvYRN.js.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.ts +21 -6
- package/dist/generators.js +1 -1
- package/dist/index.cjs +133 -23
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +31 -4
- package/dist/index.js +134 -24
- package/dist/index.js.map +1 -1
- package/dist/types-HHnnlEhK.d.ts +270 -0
- package/extension.yaml +782 -327
- package/package.json +15 -17
- package/src/components/InfiniteQuery.tsx +16 -48
- package/src/components/InfiniteQueryOptions.tsx +43 -58
- package/src/components/Mutation.tsx +33 -42
- package/src/components/Query.tsx +16 -49
- package/src/components/QueryKey.tsx +9 -61
- package/src/components/QueryOptions.tsx +20 -76
- package/src/generators/infiniteQueryGenerator.tsx +57 -65
- package/src/generators/mutationGenerator.tsx +52 -63
- package/src/generators/queryGenerator.tsx +54 -63
- package/src/plugin.ts +46 -30
- package/src/resolvers/resolverVueQuery.ts +61 -4
- package/src/types.ts +129 -53
- package/src/utils.ts +44 -25
- package/dist/components-D1UhYFgY.js.map +0 -1
- package/dist/components-qfOFRSoM.cjs.map +0 -1
- package/dist/generators-C4gs_P1i.cjs.map +0 -1
- package/dist/generators-CbnIVBgY.js.map +0 -1
- package/dist/types-nVDTfuS1.d.ts +0 -194
- /package/dist/{chunk--u3MIqq1.js → chunk-C0LytTxp.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_components = require("./components-
|
|
1
|
+
const require_components = require("./components-BwFPMwK7.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");
|
|
@@ -7,116 +7,102 @@ let _kubb_plugin_ts = require("@kubb/plugin-ts");
|
|
|
7
7
|
let _kubb_plugin_zod = require("@kubb/plugin-zod");
|
|
8
8
|
let _kubb_renderer_jsx = require("@kubb/renderer-jsx");
|
|
9
9
|
let _kubb_renderer_jsx_jsx_runtime = require("@kubb/renderer-jsx/jsx-runtime");
|
|
10
|
-
let remeda = require("remeda");
|
|
11
10
|
//#region src/generators/infiniteQueryGenerator.tsx
|
|
11
|
+
/**
|
|
12
|
+
* Built-in generator for `useInfiniteQuery` composables. Enabled when
|
|
13
|
+
* `pluginVueQuery({ infinite: { ... } })`. Emits one `useFooInfiniteQuery`
|
|
14
|
+
* composable per query operation, wiring the configured cursor path into
|
|
15
|
+
* TanStack Query's cursor-based pagination.
|
|
16
|
+
*/
|
|
12
17
|
const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
13
18
|
name: "vue-query-infinite",
|
|
14
|
-
renderer: _kubb_renderer_jsx.
|
|
19
|
+
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
15
20
|
operation(node, ctx) {
|
|
16
|
-
|
|
17
|
-
const {
|
|
21
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
22
|
+
const { config, driver, resolver, root } = ctx;
|
|
23
|
+
const { output, query, mutation, infinite, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options;
|
|
18
24
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
19
25
|
if (!pluginTs) return null;
|
|
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
|
-
const
|
|
23
|
-
const
|
|
28
|
+
const queryMethods = new Set(query ? query.methods : []);
|
|
29
|
+
const isMutation = mutation !== false && !isQuery && (mutation ? mutation.methods : []).some((method) => !queryMethods.has(method) && node.method.toLowerCase() === method.toLowerCase());
|
|
30
|
+
const infiniteOptions = infinite && typeof infinite === "object" ? infinite : null;
|
|
24
31
|
if (!isQuery || isMutation || !infiniteOptions) return null;
|
|
25
32
|
const normalizeKey = (key) => key.replace(/\?$/, "");
|
|
26
|
-
const queryParamKeys =
|
|
33
|
+
const queryParamKeys = require_components.getOperationParameters(node).query.map((p) => p.name);
|
|
27
34
|
const hasQueryParam = infiniteOptions.queryParam ? queryParamKeys.some((k) => normalizeKey(k) === infiniteOptions.queryParam) : false;
|
|
28
35
|
const hasCursorParam = !infiniteOptions.cursorParam || true;
|
|
29
36
|
if (!hasQueryParam || !hasCursorParam) return null;
|
|
30
37
|
const importPath = query ? query.importPath : "@tanstack/vue-query";
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
const queryKeyTypeName = require_components.transformName(`${capitalize(baseName)}InfiniteQueryKey`, "type", transformers);
|
|
37
|
-
const clientBaseName = require_components.transformName(`${baseName}Infinite`, "function", transformers);
|
|
38
|
+
const queryName = resolver.resolveInfiniteQueryName(node);
|
|
39
|
+
const queryOptionsName = resolver.resolveInfiniteQueryOptionsName(node);
|
|
40
|
+
const queryKeyName = resolver.resolveInfiniteQueryKeyName(node);
|
|
41
|
+
const queryKeyTypeName = resolver.resolveInfiniteQueryKeyTypeName(node);
|
|
42
|
+
const clientBaseName = resolver.resolveInfiniteClientName(node);
|
|
38
43
|
const meta = {
|
|
39
|
-
file: resolver.resolveFile({
|
|
40
|
-
name: queryName,
|
|
41
|
-
extname: ".ts",
|
|
42
|
-
tag: node.tags[0] ?? "default",
|
|
43
|
-
path: node.path
|
|
44
|
-
}, {
|
|
44
|
+
file: resolver.resolveFile(require_components.operationFileEntry(node, queryName), {
|
|
45
45
|
root,
|
|
46
46
|
output,
|
|
47
|
-
group
|
|
47
|
+
group: group ?? void 0
|
|
48
48
|
}),
|
|
49
|
-
fileTs: tsResolver.resolveFile({
|
|
50
|
-
name: node.operationId,
|
|
51
|
-
extname: ".ts",
|
|
52
|
-
tag: node.tags[0] ?? "default",
|
|
53
|
-
path: node.path
|
|
54
|
-
}, {
|
|
49
|
+
fileTs: tsResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
55
50
|
root,
|
|
56
51
|
output: pluginTs.options?.output ?? output,
|
|
57
|
-
group: pluginTs.options?.group
|
|
52
|
+
group: pluginTs.options?.group ?? void 0
|
|
58
53
|
})
|
|
59
54
|
};
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
...queryParams.map((p) => tsResolver.resolveQueryParamsName(node, p)),
|
|
69
|
-
...headerParams.map((p) => tsResolver.resolveHeaderParamsName(node, p)),
|
|
70
|
-
...node.responses.map((res) => tsResolver.resolveResponseStatusName(node, res.statusCode))
|
|
71
|
-
].filter((name) => !!name && name !== queryKeyTypeName);
|
|
72
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : void 0;
|
|
73
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : void 0;
|
|
74
|
-
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
75
|
-
name: node.operationId,
|
|
76
|
-
extname: ".ts",
|
|
77
|
-
tag: node.tags[0] ?? "default",
|
|
78
|
-
path: node.path
|
|
79
|
-
}, {
|
|
55
|
+
const importedTypeNames = require_components.resolveOperationTypeNames(node, tsResolver, {
|
|
56
|
+
paramsCasing,
|
|
57
|
+
exclude: [queryKeyTypeName],
|
|
58
|
+
order: "body-response-first"
|
|
59
|
+
});
|
|
60
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
61
|
+
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
62
|
+
const fileZod = zodResolver ? zodResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
80
63
|
root,
|
|
81
64
|
output: pluginZod?.options?.output ?? output,
|
|
82
|
-
group: pluginZod?.options?.group
|
|
83
|
-
}) :
|
|
84
|
-
const zodSchemaNames =
|
|
65
|
+
group: pluginZod?.options?.group ?? void 0
|
|
66
|
+
}) : null;
|
|
67
|
+
const zodSchemaNames = require_components.resolveZodSchemaNames(node, zodResolver);
|
|
85
68
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
86
69
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
87
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) :
|
|
88
|
-
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
89
|
-
name: node.operationId,
|
|
90
|
-
extname: ".ts",
|
|
91
|
-
tag: node.tags[0] ?? "default",
|
|
92
|
-
path: node.path
|
|
93
|
-
}, {
|
|
70
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
71
|
+
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
94
72
|
root,
|
|
95
73
|
output: clientPlugin?.options?.output ?? output,
|
|
96
|
-
group: clientPlugin?.options?.group
|
|
97
|
-
}) :
|
|
74
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
75
|
+
}) : null;
|
|
98
76
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientBaseName : clientBaseName;
|
|
99
77
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
100
78
|
baseName: meta.file.baseName,
|
|
101
79
|
path: meta.file.path,
|
|
102
80
|
meta: meta.file.meta,
|
|
103
|
-
banner: resolver.resolveBanner(
|
|
81
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
104
82
|
output,
|
|
105
|
-
config
|
|
83
|
+
config,
|
|
84
|
+
file: {
|
|
85
|
+
path: meta.file.path,
|
|
86
|
+
baseName: meta.file.baseName
|
|
87
|
+
}
|
|
106
88
|
}),
|
|
107
|
-
footer: resolver.resolveFooter(
|
|
89
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
108
90
|
output,
|
|
109
|
-
config
|
|
91
|
+
config,
|
|
92
|
+
file: {
|
|
93
|
+
path: meta.file.path,
|
|
94
|
+
baseName: meta.file.baseName
|
|
95
|
+
}
|
|
110
96
|
}),
|
|
111
97
|
children: [
|
|
112
|
-
|
|
98
|
+
fileZod && zodSchemaNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
113
99
|
name: zodSchemaNames,
|
|
114
100
|
root: meta.file.path,
|
|
115
101
|
path: fileZod.path
|
|
116
102
|
}),
|
|
117
103
|
clientOptions.importPath ? /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
118
104
|
!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
119
|
-
name: "
|
|
105
|
+
name: "client",
|
|
120
106
|
path: clientOptions.importPath
|
|
121
107
|
}),
|
|
122
108
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
@@ -135,9 +121,9 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
135
121
|
})
|
|
136
122
|
] }) : /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
137
123
|
!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
138
|
-
name: ["
|
|
124
|
+
name: ["client"],
|
|
139
125
|
root: meta.file.path,
|
|
140
|
-
path: node_path.default.resolve(root, ".kubb/
|
|
126
|
+
path: node_path.default.resolve(root, ".kubb/client.ts")
|
|
141
127
|
}),
|
|
142
128
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
143
129
|
name: [
|
|
@@ -146,13 +132,13 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
146
132
|
"ResponseErrorConfig"
|
|
147
133
|
],
|
|
148
134
|
root: meta.file.path,
|
|
149
|
-
path: node_path.default.resolve(root, ".kubb/
|
|
135
|
+
path: node_path.default.resolve(root, ".kubb/client.ts"),
|
|
150
136
|
isTypeOnly: true
|
|
151
137
|
}),
|
|
152
138
|
clientOptions.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
153
139
|
name: ["ResponseConfig"],
|
|
154
140
|
root: meta.file.path,
|
|
155
|
-
path: node_path.default.resolve(root, ".kubb/
|
|
141
|
+
path: node_path.default.resolve(root, ".kubb/client.ts"),
|
|
156
142
|
isTypeOnly: true
|
|
157
143
|
})
|
|
158
144
|
] }),
|
|
@@ -261,106 +247,91 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
261
247
|
});
|
|
262
248
|
//#endregion
|
|
263
249
|
//#region src/generators/mutationGenerator.tsx
|
|
250
|
+
/**
|
|
251
|
+
* Built-in generator for `useMutation` composables. Emits one
|
|
252
|
+
* `useFooMutation` composable per POST/PUT/DELETE operation (configurable
|
|
253
|
+
* via `mutation.methods`) plus the matching `fooMutationKey` helper.
|
|
254
|
+
*/
|
|
264
255
|
const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
265
256
|
name: "vue-query-mutation",
|
|
266
|
-
renderer: _kubb_renderer_jsx.
|
|
257
|
+
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
267
258
|
operation(node, ctx) {
|
|
268
|
-
|
|
269
|
-
const {
|
|
259
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
260
|
+
const { config, driver, resolver, root } = ctx;
|
|
261
|
+
const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options;
|
|
270
262
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
271
263
|
if (!pluginTs) return null;
|
|
272
264
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
273
265
|
const isQuery = query === false || !!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
274
|
-
|
|
266
|
+
const queryMethods = new Set(query ? query.methods : []);
|
|
267
|
+
if (!(mutation !== false && !isQuery && (mutation ? mutation.methods : []).some((method) => !queryMethods.has(method) && node.method.toLowerCase() === method.toLowerCase()))) return null;
|
|
275
268
|
const importPath = mutation ? mutation.importPath : "@tanstack/vue-query";
|
|
276
|
-
const
|
|
277
|
-
const
|
|
278
|
-
const
|
|
279
|
-
const
|
|
280
|
-
const mutationKeyName = require_components.transformName(`${baseName}MutationKey`, "const", transformers);
|
|
281
|
-
const clientName = require_components.transformName(baseName, "function", transformers);
|
|
269
|
+
const mutationHookName = resolver.resolveMutationName(node);
|
|
270
|
+
const mutationTypeName = resolver.resolveMutationTypeName(node);
|
|
271
|
+
const mutationKeyName = resolver.resolveMutationKeyName(node);
|
|
272
|
+
const clientName = resolver.resolveClientName(node);
|
|
282
273
|
const meta = {
|
|
283
|
-
file: resolver.resolveFile({
|
|
284
|
-
name: mutationHookName,
|
|
285
|
-
extname: ".ts",
|
|
286
|
-
tag: node.tags[0] ?? "default",
|
|
287
|
-
path: node.path
|
|
288
|
-
}, {
|
|
274
|
+
file: resolver.resolveFile(require_components.operationFileEntry(node, mutationHookName), {
|
|
289
275
|
root,
|
|
290
276
|
output,
|
|
291
|
-
group
|
|
277
|
+
group: group ?? void 0
|
|
292
278
|
}),
|
|
293
|
-
fileTs: tsResolver.resolveFile({
|
|
294
|
-
name: node.operationId,
|
|
295
|
-
extname: ".ts",
|
|
296
|
-
tag: node.tags[0] ?? "default",
|
|
297
|
-
path: node.path
|
|
298
|
-
}, {
|
|
279
|
+
fileTs: tsResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
299
280
|
root,
|
|
300
281
|
output: pluginTs.options?.output ?? output,
|
|
301
|
-
group: pluginTs.options?.group
|
|
282
|
+
group: pluginTs.options?.group ?? void 0
|
|
302
283
|
})
|
|
303
284
|
};
|
|
304
|
-
const
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
...pathParams.map((p) => tsResolver.resolvePathParamsName(node, p)),
|
|
312
|
-
...queryParams.map((p) => tsResolver.resolveQueryParamsName(node, p)),
|
|
313
|
-
...headerParams.map((p) => tsResolver.resolveHeaderParamsName(node, p)),
|
|
314
|
-
...node.responses.map((res) => tsResolver.resolveResponseStatusName(node, res.statusCode))
|
|
315
|
-
].filter((name) => !!name);
|
|
316
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : void 0;
|
|
317
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : void 0;
|
|
318
|
-
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
319
|
-
name: node.operationId,
|
|
320
|
-
extname: ".ts",
|
|
321
|
-
tag: node.tags[0] ?? "default",
|
|
322
|
-
path: node.path
|
|
323
|
-
}, {
|
|
285
|
+
const importedTypeNames = require_components.resolveOperationTypeNames(node, tsResolver, {
|
|
286
|
+
paramsCasing,
|
|
287
|
+
order: "body-response-first"
|
|
288
|
+
});
|
|
289
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
290
|
+
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
291
|
+
const fileZod = zodResolver ? zodResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
324
292
|
root,
|
|
325
293
|
output: pluginZod?.options?.output ?? output,
|
|
326
|
-
group: pluginZod?.options?.group
|
|
327
|
-
}) :
|
|
328
|
-
const zodSchemaNames =
|
|
294
|
+
group: pluginZod?.options?.group ?? void 0
|
|
295
|
+
}) : null;
|
|
296
|
+
const zodSchemaNames = require_components.resolveZodSchemaNames(node, zodResolver);
|
|
329
297
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
330
298
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
331
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) :
|
|
332
|
-
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
333
|
-
name: node.operationId,
|
|
334
|
-
extname: ".ts",
|
|
335
|
-
tag: node.tags[0] ?? "default",
|
|
336
|
-
path: node.path
|
|
337
|
-
}, {
|
|
299
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
300
|
+
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
338
301
|
root,
|
|
339
302
|
output: clientPlugin?.options?.output ?? output,
|
|
340
|
-
group: clientPlugin?.options?.group
|
|
341
|
-
}) :
|
|
303
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
304
|
+
}) : null;
|
|
342
305
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
343
306
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
344
307
|
baseName: meta.file.baseName,
|
|
345
308
|
path: meta.file.path,
|
|
346
309
|
meta: meta.file.meta,
|
|
347
|
-
banner: resolver.resolveBanner(
|
|
310
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
348
311
|
output,
|
|
349
|
-
config
|
|
312
|
+
config,
|
|
313
|
+
file: {
|
|
314
|
+
path: meta.file.path,
|
|
315
|
+
baseName: meta.file.baseName
|
|
316
|
+
}
|
|
350
317
|
}),
|
|
351
|
-
footer: resolver.resolveFooter(
|
|
318
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
352
319
|
output,
|
|
353
|
-
config
|
|
320
|
+
config,
|
|
321
|
+
file: {
|
|
322
|
+
path: meta.file.path,
|
|
323
|
+
baseName: meta.file.baseName
|
|
324
|
+
}
|
|
354
325
|
}),
|
|
355
326
|
children: [
|
|
356
|
-
|
|
327
|
+
fileZod && zodSchemaNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
357
328
|
name: zodSchemaNames,
|
|
358
329
|
root: meta.file.path,
|
|
359
330
|
path: fileZod.path
|
|
360
331
|
}),
|
|
361
332
|
clientOptions.importPath ? /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
362
333
|
!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
363
|
-
name: "
|
|
334
|
+
name: "client",
|
|
364
335
|
path: clientOptions.importPath
|
|
365
336
|
}),
|
|
366
337
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
@@ -379,9 +350,9 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
379
350
|
})
|
|
380
351
|
] }) : /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
381
352
|
!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
382
|
-
name: ["
|
|
353
|
+
name: ["client"],
|
|
383
354
|
root: meta.file.path,
|
|
384
|
-
path: node_path.default.resolve(root, ".kubb/
|
|
355
|
+
path: node_path.default.resolve(root, ".kubb/client.ts")
|
|
385
356
|
}),
|
|
386
357
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
387
358
|
name: [
|
|
@@ -390,13 +361,13 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
390
361
|
"ResponseErrorConfig"
|
|
391
362
|
],
|
|
392
363
|
root: meta.file.path,
|
|
393
|
-
path: node_path.default.resolve(root, ".kubb/
|
|
364
|
+
path: node_path.default.resolve(root, ".kubb/client.ts"),
|
|
394
365
|
isTypeOnly: true
|
|
395
366
|
}),
|
|
396
367
|
clientOptions.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
397
368
|
name: ["ResponseConfig"],
|
|
398
369
|
root: meta.file.path,
|
|
399
|
-
path: node_path.default.resolve(root, ".kubb/
|
|
370
|
+
path: node_path.default.resolve(root, ".kubb/client.ts"),
|
|
400
371
|
isTypeOnly: true
|
|
401
372
|
})
|
|
402
373
|
] }),
|
|
@@ -410,7 +381,7 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
410
381
|
root: meta.file.path,
|
|
411
382
|
path: clientFile.path
|
|
412
383
|
}),
|
|
413
|
-
!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
384
|
+
!shouldUseClientPlugin && node.requestBody?.content?.some((e) => e.contentType === "multipart/form-data") && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
414
385
|
name: ["buildFormData"],
|
|
415
386
|
root: meta.file.path,
|
|
416
387
|
path: node_path.default.resolve(root, ".kubb/config.ts")
|
|
@@ -469,108 +440,94 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
469
440
|
});
|
|
470
441
|
//#endregion
|
|
471
442
|
//#region src/generators/queryGenerator.tsx
|
|
443
|
+
/**
|
|
444
|
+
* Built-in generator for `useQuery` composables. Emits one `useFooQuery`
|
|
445
|
+
* composable per GET operation (configurable via `query.methods`) plus the
|
|
446
|
+
* matching `fooQueryKey` / `fooQueryOptions` helpers.
|
|
447
|
+
*/
|
|
472
448
|
const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
473
449
|
name: "vue-query",
|
|
474
|
-
renderer: _kubb_renderer_jsx.
|
|
450
|
+
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
475
451
|
operation(node, ctx) {
|
|
476
|
-
|
|
477
|
-
const {
|
|
452
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
453
|
+
const { config, driver, resolver, root } = ctx;
|
|
454
|
+
const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options;
|
|
478
455
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
479
456
|
if (!pluginTs) return null;
|
|
480
457
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
481
458
|
const isQuery = query === false || !!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
482
|
-
const
|
|
459
|
+
const queryMethods = new Set(query ? query.methods : []);
|
|
460
|
+
const isMutation = mutation !== false && !isQuery && (mutation ? mutation.methods : []).some((method) => !queryMethods.has(method) && node.method.toLowerCase() === method.toLowerCase());
|
|
483
461
|
if (!isQuery || isMutation) return null;
|
|
484
462
|
const importPath = query ? query.importPath : "@tanstack/vue-query";
|
|
485
|
-
const
|
|
486
|
-
const
|
|
487
|
-
const
|
|
488
|
-
const
|
|
489
|
-
const
|
|
490
|
-
const queryKeyTypeName = require_components.transformName(`${capitalize(baseName)}QueryKey`, "type", transformers);
|
|
491
|
-
const clientName = require_components.transformName(baseName, "function", transformers);
|
|
463
|
+
const queryName = resolver.resolveQueryName(node);
|
|
464
|
+
const queryOptionsName = resolver.resolveQueryOptionsName(node);
|
|
465
|
+
const queryKeyName = resolver.resolveQueryKeyName(node);
|
|
466
|
+
const queryKeyTypeName = resolver.resolveQueryKeyTypeName(node);
|
|
467
|
+
const clientName = resolver.resolveClientName(node);
|
|
492
468
|
const meta = {
|
|
493
|
-
file: resolver.resolveFile({
|
|
494
|
-
name: queryName,
|
|
495
|
-
extname: ".ts",
|
|
496
|
-
tag: node.tags[0] ?? "default",
|
|
497
|
-
path: node.path
|
|
498
|
-
}, {
|
|
469
|
+
file: resolver.resolveFile(require_components.operationFileEntry(node, queryName), {
|
|
499
470
|
root,
|
|
500
471
|
output,
|
|
501
|
-
group
|
|
472
|
+
group: group ?? void 0
|
|
502
473
|
}),
|
|
503
|
-
fileTs: tsResolver.resolveFile({
|
|
504
|
-
name: node.operationId,
|
|
505
|
-
extname: ".ts",
|
|
506
|
-
tag: node.tags[0] ?? "default",
|
|
507
|
-
path: node.path
|
|
508
|
-
}, {
|
|
474
|
+
fileTs: tsResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
509
475
|
root,
|
|
510
476
|
output: pluginTs.options?.output ?? output,
|
|
511
|
-
group: pluginTs.options?.group
|
|
477
|
+
group: pluginTs.options?.group ?? void 0
|
|
512
478
|
})
|
|
513
479
|
};
|
|
514
|
-
const
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
...queryParams.map((p) => tsResolver.resolveQueryParamsName(node, p)),
|
|
523
|
-
...headerParams.map((p) => tsResolver.resolveHeaderParamsName(node, p)),
|
|
524
|
-
...node.responses.map((res) => tsResolver.resolveResponseStatusName(node, res.statusCode))
|
|
525
|
-
].filter((name) => !!name && name !== queryKeyTypeName);
|
|
526
|
-
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : void 0;
|
|
527
|
-
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : void 0;
|
|
528
|
-
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
529
|
-
name: node.operationId,
|
|
530
|
-
extname: ".ts",
|
|
531
|
-
tag: node.tags[0] ?? "default",
|
|
532
|
-
path: node.path
|
|
533
|
-
}, {
|
|
480
|
+
const importedTypeNames = require_components.resolveOperationTypeNames(node, tsResolver, {
|
|
481
|
+
paramsCasing,
|
|
482
|
+
exclude: [queryKeyTypeName],
|
|
483
|
+
order: "body-response-first"
|
|
484
|
+
});
|
|
485
|
+
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
486
|
+
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
487
|
+
const fileZod = zodResolver ? zodResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
534
488
|
root,
|
|
535
489
|
output: pluginZod?.options?.output ?? output,
|
|
536
|
-
group: pluginZod?.options?.group
|
|
537
|
-
}) :
|
|
538
|
-
const zodSchemaNames =
|
|
490
|
+
group: pluginZod?.options?.group ?? void 0
|
|
491
|
+
}) : null;
|
|
492
|
+
const zodSchemaNames = require_components.resolveZodSchemaNames(node, zodResolver);
|
|
539
493
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
540
494
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
541
|
-
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) :
|
|
542
|
-
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
543
|
-
name: node.operationId,
|
|
544
|
-
extname: ".ts",
|
|
545
|
-
tag: node.tags[0] ?? "default",
|
|
546
|
-
path: node.path
|
|
547
|
-
}, {
|
|
495
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
496
|
+
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
548
497
|
root,
|
|
549
498
|
output: clientPlugin?.options?.output ?? output,
|
|
550
|
-
group: clientPlugin?.options?.group
|
|
551
|
-
}) :
|
|
499
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
500
|
+
}) : null;
|
|
552
501
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
553
502
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
554
503
|
baseName: meta.file.baseName,
|
|
555
504
|
path: meta.file.path,
|
|
556
505
|
meta: meta.file.meta,
|
|
557
|
-
banner: resolver.resolveBanner(
|
|
506
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
558
507
|
output,
|
|
559
|
-
config
|
|
508
|
+
config,
|
|
509
|
+
file: {
|
|
510
|
+
path: meta.file.path,
|
|
511
|
+
baseName: meta.file.baseName
|
|
512
|
+
}
|
|
560
513
|
}),
|
|
561
|
-
footer: resolver.resolveFooter(
|
|
514
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
562
515
|
output,
|
|
563
|
-
config
|
|
516
|
+
config,
|
|
517
|
+
file: {
|
|
518
|
+
path: meta.file.path,
|
|
519
|
+
baseName: meta.file.baseName
|
|
520
|
+
}
|
|
564
521
|
}),
|
|
565
522
|
children: [
|
|
566
|
-
|
|
523
|
+
fileZod && zodSchemaNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
567
524
|
name: zodSchemaNames,
|
|
568
525
|
root: meta.file.path,
|
|
569
526
|
path: fileZod.path
|
|
570
527
|
}),
|
|
571
528
|
clientOptions.importPath ? /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
572
529
|
!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
573
|
-
name: "
|
|
530
|
+
name: "client",
|
|
574
531
|
path: clientOptions.importPath
|
|
575
532
|
}),
|
|
576
533
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
@@ -589,9 +546,9 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
589
546
|
})
|
|
590
547
|
] }) : /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
591
548
|
!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
592
|
-
name: ["
|
|
549
|
+
name: ["client"],
|
|
593
550
|
root: meta.file.path,
|
|
594
|
-
path: node_path.default.resolve(root, ".kubb/
|
|
551
|
+
path: node_path.default.resolve(root, ".kubb/client.ts")
|
|
595
552
|
}),
|
|
596
553
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
597
554
|
name: [
|
|
@@ -600,13 +557,13 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
600
557
|
"ResponseErrorConfig"
|
|
601
558
|
],
|
|
602
559
|
root: meta.file.path,
|
|
603
|
-
path: node_path.default.resolve(root, ".kubb/
|
|
560
|
+
path: node_path.default.resolve(root, ".kubb/client.ts"),
|
|
604
561
|
isTypeOnly: true
|
|
605
562
|
}),
|
|
606
563
|
clientOptions.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
607
564
|
name: ["ResponseConfig"],
|
|
608
565
|
root: meta.file.path,
|
|
609
|
-
path: node_path.default.resolve(root, ".kubb/
|
|
566
|
+
path: node_path.default.resolve(root, ".kubb/client.ts"),
|
|
610
567
|
isTypeOnly: true
|
|
611
568
|
})
|
|
612
569
|
] }),
|
|
@@ -723,4 +680,4 @@ Object.defineProperty(exports, "queryGenerator", {
|
|
|
723
680
|
}
|
|
724
681
|
});
|
|
725
682
|
|
|
726
|
-
//# sourceMappingURL=generators-
|
|
683
|
+
//# sourceMappingURL=generators-BSN6A0ED.cjs.map
|