@kubb/plugin-vue-query 5.0.0-beta.4 → 5.0.0-beta.56
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-D1UhYFgY.js → components-B79Gljyl.js} +483 -565
- package/dist/components-B79Gljyl.js.map +1 -0
- package/dist/{components-qfOFRSoM.cjs → components-D3xIZ9FA.cjs} +513 -565
- package/dist/components-D3xIZ9FA.cjs.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-BTtcGtUY.cjs} +225 -314
- package/dist/generators-BTtcGtUY.cjs.map +1 -0
- package/dist/generators-D95ddIFV.js +620 -0
- package/dist/generators-D95ddIFV.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 +158 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +31 -4
- package/dist/index.js +160 -27
- package/dist/index.js.map +1 -1
- package/dist/types-CwabLiFK.d.ts +266 -0
- package/package.json +18 -27
- package/src/components/InfiniteQuery.tsx +18 -50
- package/src/components/InfiniteQueryOptions.tsx +64 -82
- package/src/components/Mutation.tsx +35 -44
- package/src/components/Query.tsx +18 -51
- package/src/components/QueryKey.tsx +9 -61
- package/src/components/QueryOptions.tsx +22 -99
- package/src/generators/infiniteQueryGenerator.tsx +55 -67
- package/src/generators/mutationGenerator.tsx +53 -65
- package/src/generators/queryGenerator.tsx +52 -65
- package/src/plugin.ts +48 -32
- package/src/resolvers/resolverVueQuery.ts +63 -6
- package/src/types.ts +132 -60
- package/src/utils.ts +45 -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 +0 -709
- package/dist/generators-CbnIVBgY.js.map +0 -1
- package/dist/types-nVDTfuS1.d.ts +0 -194
- package/extension.yaml +0 -793
- /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-D3xIZ9FA.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,155 +7,124 @@ 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
19
|
renderer: _kubb_renderer_jsx.jsxRenderer,
|
|
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 = (0, _kubb_plugin_client.isParserEnabled)(parser) ? 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, parser);
|
|
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
|
-
clientOptions.importPath ? /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
143
|
-
name: [
|
|
144
|
-
"Client",
|
|
145
|
-
"RequestConfig",
|
|
146
|
-
"ResponseErrorConfig"
|
|
147
|
-
],
|
|
148
|
-
root: meta.file.path,
|
|
149
|
-
path: node_path.default.resolve(root, ".kubb/fetch.ts"),
|
|
150
|
-
isTypeOnly: true
|
|
151
|
-
}),
|
|
152
|
-
clientOptions.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
153
|
-
name: ["ResponseConfig"],
|
|
154
|
-
root: meta.file.path,
|
|
155
|
-
path: node_path.default.resolve(root, ".kubb/fetch.ts"),
|
|
156
|
-
isTypeOnly: true
|
|
157
|
-
})
|
|
158
|
-
] }),
|
|
103
|
+
clientOptions.importPath ? /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
104
|
+
name: "client",
|
|
105
|
+
path: clientOptions.importPath
|
|
106
|
+
}), /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
107
|
+
name: [
|
|
108
|
+
"Client",
|
|
109
|
+
"RequestConfig",
|
|
110
|
+
"ResponseErrorConfig"
|
|
111
|
+
],
|
|
112
|
+
path: clientOptions.importPath,
|
|
113
|
+
isTypeOnly: true
|
|
114
|
+
})] }) : /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
115
|
+
name: ["client"],
|
|
116
|
+
root: meta.file.path,
|
|
117
|
+
path: node_path.default.resolve(root, ".kubb/client.ts")
|
|
118
|
+
}), /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
119
|
+
name: [
|
|
120
|
+
"Client",
|
|
121
|
+
"RequestConfig",
|
|
122
|
+
"ResponseErrorConfig"
|
|
123
|
+
],
|
|
124
|
+
root: meta.file.path,
|
|
125
|
+
path: node_path.default.resolve(root, ".kubb/client.ts"),
|
|
126
|
+
isTypeOnly: true
|
|
127
|
+
})] }),
|
|
159
128
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
160
129
|
name: ["toValue"],
|
|
161
130
|
path: "vue"
|
|
@@ -261,145 +230,113 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
261
230
|
});
|
|
262
231
|
//#endregion
|
|
263
232
|
//#region src/generators/mutationGenerator.tsx
|
|
233
|
+
/**
|
|
234
|
+
* Built-in generator for `useMutation` composables. Emits one
|
|
235
|
+
* `useFooMutation` composable per POST/PUT/DELETE operation (configurable
|
|
236
|
+
* via `mutation.methods`) plus the matching `fooMutationKey` helper.
|
|
237
|
+
*/
|
|
264
238
|
const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
265
239
|
name: "vue-query-mutation",
|
|
266
240
|
renderer: _kubb_renderer_jsx.jsxRenderer,
|
|
267
241
|
operation(node, ctx) {
|
|
268
|
-
|
|
269
|
-
const {
|
|
242
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
243
|
+
const { config, driver, resolver, root } = ctx;
|
|
244
|
+
const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options;
|
|
270
245
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
271
246
|
if (!pluginTs) return null;
|
|
272
247
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
273
248
|
const isQuery = query === false || !!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
274
|
-
|
|
249
|
+
const queryMethods = new Set(query ? query.methods : []);
|
|
250
|
+
if (!(mutation !== false && !isQuery && (mutation ? mutation.methods : []).some((method) => !queryMethods.has(method) && node.method.toLowerCase() === method.toLowerCase()))) return null;
|
|
275
251
|
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);
|
|
252
|
+
const mutationHookName = resolver.resolveMutationName(node);
|
|
253
|
+
const mutationTypeName = resolver.resolveMutationTypeName(node);
|
|
254
|
+
const mutationKeyName = resolver.resolveMutationKeyName(node);
|
|
255
|
+
const clientName = resolver.resolveClientName(node);
|
|
282
256
|
const meta = {
|
|
283
|
-
file: resolver.resolveFile({
|
|
284
|
-
name: mutationHookName,
|
|
285
|
-
extname: ".ts",
|
|
286
|
-
tag: node.tags[0] ?? "default",
|
|
287
|
-
path: node.path
|
|
288
|
-
}, {
|
|
257
|
+
file: resolver.resolveFile(require_components.operationFileEntry(node, mutationHookName), {
|
|
289
258
|
root,
|
|
290
259
|
output,
|
|
291
|
-
group
|
|
260
|
+
group: group ?? void 0
|
|
292
261
|
}),
|
|
293
|
-
fileTs: tsResolver.resolveFile({
|
|
294
|
-
name: node.operationId,
|
|
295
|
-
extname: ".ts",
|
|
296
|
-
tag: node.tags[0] ?? "default",
|
|
297
|
-
path: node.path
|
|
298
|
-
}, {
|
|
262
|
+
fileTs: tsResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
299
263
|
root,
|
|
300
264
|
output: pluginTs.options?.output ?? output,
|
|
301
|
-
group: pluginTs.options?.group
|
|
265
|
+
group: pluginTs.options?.group ?? void 0
|
|
302
266
|
})
|
|
303
267
|
};
|
|
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
|
-
}, {
|
|
268
|
+
const importedTypeNames = require_components.resolveOperationTypeNames(node, tsResolver, {
|
|
269
|
+
paramsCasing,
|
|
270
|
+
order: "body-response-first"
|
|
271
|
+
});
|
|
272
|
+
const pluginZod = (0, _kubb_plugin_client.isParserEnabled)(parser) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
273
|
+
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
274
|
+
const fileZod = zodResolver ? zodResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
324
275
|
root,
|
|
325
276
|
output: pluginZod?.options?.output ?? output,
|
|
326
|
-
group: pluginZod?.options?.group
|
|
327
|
-
}) :
|
|
328
|
-
const zodSchemaNames =
|
|
277
|
+
group: pluginZod?.options?.group ?? void 0
|
|
278
|
+
}) : null;
|
|
279
|
+
const zodSchemaNames = require_components.resolveZodSchemaNames(node, zodResolver, parser);
|
|
329
280
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
330
281
|
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
|
-
}, {
|
|
282
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
283
|
+
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
338
284
|
root,
|
|
339
285
|
output: clientPlugin?.options?.output ?? output,
|
|
340
|
-
group: clientPlugin?.options?.group
|
|
341
|
-
}) :
|
|
286
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
287
|
+
}) : null;
|
|
342
288
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
343
289
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
344
290
|
baseName: meta.file.baseName,
|
|
345
291
|
path: meta.file.path,
|
|
346
292
|
meta: meta.file.meta,
|
|
347
|
-
banner: resolver.resolveBanner(
|
|
293
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
348
294
|
output,
|
|
349
|
-
config
|
|
295
|
+
config,
|
|
296
|
+
file: {
|
|
297
|
+
path: meta.file.path,
|
|
298
|
+
baseName: meta.file.baseName
|
|
299
|
+
}
|
|
350
300
|
}),
|
|
351
|
-
footer: resolver.resolveFooter(
|
|
301
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
352
302
|
output,
|
|
353
|
-
config
|
|
303
|
+
config,
|
|
304
|
+
file: {
|
|
305
|
+
path: meta.file.path,
|
|
306
|
+
baseName: meta.file.baseName
|
|
307
|
+
}
|
|
354
308
|
}),
|
|
355
309
|
children: [
|
|
356
|
-
|
|
310
|
+
fileZod && zodSchemaNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
357
311
|
name: zodSchemaNames,
|
|
358
312
|
root: meta.file.path,
|
|
359
313
|
path: fileZod.path
|
|
360
314
|
}),
|
|
361
|
-
clientOptions.importPath ? /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
387
|
-
name: [
|
|
388
|
-
"Client",
|
|
389
|
-
"RequestConfig",
|
|
390
|
-
"ResponseErrorConfig"
|
|
391
|
-
],
|
|
392
|
-
root: meta.file.path,
|
|
393
|
-
path: node_path.default.resolve(root, ".kubb/fetch.ts"),
|
|
394
|
-
isTypeOnly: true
|
|
395
|
-
}),
|
|
396
|
-
clientOptions.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
397
|
-
name: ["ResponseConfig"],
|
|
398
|
-
root: meta.file.path,
|
|
399
|
-
path: node_path.default.resolve(root, ".kubb/fetch.ts"),
|
|
400
|
-
isTypeOnly: true
|
|
401
|
-
})
|
|
402
|
-
] }),
|
|
315
|
+
clientOptions.importPath ? /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
316
|
+
name: "client",
|
|
317
|
+
path: clientOptions.importPath
|
|
318
|
+
}), /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
319
|
+
name: [
|
|
320
|
+
"Client",
|
|
321
|
+
"RequestConfig",
|
|
322
|
+
"ResponseErrorConfig"
|
|
323
|
+
],
|
|
324
|
+
path: clientOptions.importPath,
|
|
325
|
+
isTypeOnly: true
|
|
326
|
+
})] }) : /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
327
|
+
name: ["client"],
|
|
328
|
+
root: meta.file.path,
|
|
329
|
+
path: node_path.default.resolve(root, ".kubb/client.ts")
|
|
330
|
+
}), /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
331
|
+
name: [
|
|
332
|
+
"Client",
|
|
333
|
+
"RequestConfig",
|
|
334
|
+
"ResponseErrorConfig"
|
|
335
|
+
],
|
|
336
|
+
root: meta.file.path,
|
|
337
|
+
path: node_path.default.resolve(root, ".kubb/client.ts"),
|
|
338
|
+
isTypeOnly: true
|
|
339
|
+
})] }),
|
|
403
340
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
404
341
|
name: ["MaybeRefOrGetter"],
|
|
405
342
|
path: "vue",
|
|
@@ -410,11 +347,16 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
410
347
|
root: meta.file.path,
|
|
411
348
|
path: clientFile.path
|
|
412
349
|
}),
|
|
413
|
-
!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
350
|
+
!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
351
|
name: ["buildFormData"],
|
|
415
352
|
root: meta.file.path,
|
|
416
353
|
path: node_path.default.resolve(root, ".kubb/config.ts")
|
|
417
354
|
}),
|
|
355
|
+
!shouldUseClientPlugin && parser === "zod" && zodResolver && node.requestBody?.content?.[0]?.schema && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
356
|
+
name: ["z"],
|
|
357
|
+
path: "zod",
|
|
358
|
+
isTypeOnly: true
|
|
359
|
+
}),
|
|
418
360
|
meta.fileTs && importedTypeNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
419
361
|
name: Array.from(new Set(importedTypeNames)),
|
|
420
362
|
root: meta.file.path,
|
|
@@ -469,147 +411,116 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
469
411
|
});
|
|
470
412
|
//#endregion
|
|
471
413
|
//#region src/generators/queryGenerator.tsx
|
|
414
|
+
/**
|
|
415
|
+
* Built-in generator for `useQuery` composables. Emits one `useFooQuery`
|
|
416
|
+
* composable per GET operation (configurable via `query.methods`) plus the
|
|
417
|
+
* matching `fooQueryKey` / `fooQueryOptions` helpers.
|
|
418
|
+
*/
|
|
472
419
|
const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
473
420
|
name: "vue-query",
|
|
474
421
|
renderer: _kubb_renderer_jsx.jsxRenderer,
|
|
475
422
|
operation(node, ctx) {
|
|
476
|
-
|
|
477
|
-
const {
|
|
423
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
424
|
+
const { config, driver, resolver, root } = ctx;
|
|
425
|
+
const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group } = ctx.options;
|
|
478
426
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
479
427
|
if (!pluginTs) return null;
|
|
480
428
|
const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
|
|
481
429
|
const isQuery = query === false || !!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase());
|
|
482
|
-
const
|
|
430
|
+
const queryMethods = new Set(query ? query.methods : []);
|
|
431
|
+
const isMutation = mutation !== false && !isQuery && (mutation ? mutation.methods : []).some((method) => !queryMethods.has(method) && node.method.toLowerCase() === method.toLowerCase());
|
|
483
432
|
if (!isQuery || isMutation) return null;
|
|
484
433
|
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);
|
|
434
|
+
const queryName = resolver.resolveQueryName(node);
|
|
435
|
+
const queryOptionsName = resolver.resolveQueryOptionsName(node);
|
|
436
|
+
const queryKeyName = resolver.resolveQueryKeyName(node);
|
|
437
|
+
const queryKeyTypeName = resolver.resolveQueryKeyTypeName(node);
|
|
438
|
+
const clientName = resolver.resolveClientName(node);
|
|
492
439
|
const meta = {
|
|
493
|
-
file: resolver.resolveFile({
|
|
494
|
-
name: queryName,
|
|
495
|
-
extname: ".ts",
|
|
496
|
-
tag: node.tags[0] ?? "default",
|
|
497
|
-
path: node.path
|
|
498
|
-
}, {
|
|
440
|
+
file: resolver.resolveFile(require_components.operationFileEntry(node, queryName), {
|
|
499
441
|
root,
|
|
500
442
|
output,
|
|
501
|
-
group
|
|
443
|
+
group: group ?? void 0
|
|
502
444
|
}),
|
|
503
|
-
fileTs: tsResolver.resolveFile({
|
|
504
|
-
name: node.operationId,
|
|
505
|
-
extname: ".ts",
|
|
506
|
-
tag: node.tags[0] ?? "default",
|
|
507
|
-
path: node.path
|
|
508
|
-
}, {
|
|
445
|
+
fileTs: tsResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
509
446
|
root,
|
|
510
447
|
output: pluginTs.options?.output ?? output,
|
|
511
|
-
group: pluginTs.options?.group
|
|
448
|
+
group: pluginTs.options?.group ?? void 0
|
|
512
449
|
})
|
|
513
450
|
};
|
|
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
|
-
}, {
|
|
451
|
+
const importedTypeNames = require_components.resolveOperationTypeNames(node, tsResolver, {
|
|
452
|
+
paramsCasing,
|
|
453
|
+
exclude: [queryKeyTypeName],
|
|
454
|
+
order: "body-response-first"
|
|
455
|
+
});
|
|
456
|
+
const pluginZod = (0, _kubb_plugin_client.isParserEnabled)(parser) ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
457
|
+
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
458
|
+
const fileZod = zodResolver ? zodResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
534
459
|
root,
|
|
535
460
|
output: pluginZod?.options?.output ?? output,
|
|
536
|
-
group: pluginZod?.options?.group
|
|
537
|
-
}) :
|
|
538
|
-
const zodSchemaNames =
|
|
461
|
+
group: pluginZod?.options?.group ?? void 0
|
|
462
|
+
}) : null;
|
|
463
|
+
const zodSchemaNames = require_components.resolveZodSchemaNames(node, zodResolver, parser);
|
|
539
464
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
540
465
|
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
|
-
}, {
|
|
466
|
+
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
467
|
+
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
548
468
|
root,
|
|
549
469
|
output: clientPlugin?.options?.output ?? output,
|
|
550
|
-
group: clientPlugin?.options?.group
|
|
551
|
-
}) :
|
|
470
|
+
group: clientPlugin?.options?.group ?? void 0
|
|
471
|
+
}) : null;
|
|
552
472
|
const resolvedClientName = shouldUseClientPlugin ? clientResolver?.resolveName(node.operationId) ?? clientName : clientName;
|
|
553
473
|
return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
|
|
554
474
|
baseName: meta.file.baseName,
|
|
555
475
|
path: meta.file.path,
|
|
556
476
|
meta: meta.file.meta,
|
|
557
|
-
banner: resolver.resolveBanner(
|
|
477
|
+
banner: resolver.resolveBanner(ctx.meta, {
|
|
558
478
|
output,
|
|
559
|
-
config
|
|
479
|
+
config,
|
|
480
|
+
file: {
|
|
481
|
+
path: meta.file.path,
|
|
482
|
+
baseName: meta.file.baseName
|
|
483
|
+
}
|
|
560
484
|
}),
|
|
561
|
-
footer: resolver.resolveFooter(
|
|
485
|
+
footer: resolver.resolveFooter(ctx.meta, {
|
|
562
486
|
output,
|
|
563
|
-
config
|
|
487
|
+
config,
|
|
488
|
+
file: {
|
|
489
|
+
path: meta.file.path,
|
|
490
|
+
baseName: meta.file.baseName
|
|
491
|
+
}
|
|
564
492
|
}),
|
|
565
493
|
children: [
|
|
566
|
-
|
|
494
|
+
fileZod && zodSchemaNames.length > 0 && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
567
495
|
name: zodSchemaNames,
|
|
568
496
|
root: meta.file.path,
|
|
569
497
|
path: fileZod.path
|
|
570
498
|
}),
|
|
571
|
-
clientOptions.importPath ? /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
597
|
-
name: [
|
|
598
|
-
"Client",
|
|
599
|
-
"RequestConfig",
|
|
600
|
-
"ResponseErrorConfig"
|
|
601
|
-
],
|
|
602
|
-
root: meta.file.path,
|
|
603
|
-
path: node_path.default.resolve(root, ".kubb/fetch.ts"),
|
|
604
|
-
isTypeOnly: true
|
|
605
|
-
}),
|
|
606
|
-
clientOptions.dataReturnType === "full" && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
607
|
-
name: ["ResponseConfig"],
|
|
608
|
-
root: meta.file.path,
|
|
609
|
-
path: node_path.default.resolve(root, ".kubb/fetch.ts"),
|
|
610
|
-
isTypeOnly: true
|
|
611
|
-
})
|
|
612
|
-
] }),
|
|
499
|
+
clientOptions.importPath ? /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
500
|
+
name: "client",
|
|
501
|
+
path: clientOptions.importPath
|
|
502
|
+
}), /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
503
|
+
name: [
|
|
504
|
+
"Client",
|
|
505
|
+
"RequestConfig",
|
|
506
|
+
"ResponseErrorConfig"
|
|
507
|
+
],
|
|
508
|
+
path: clientOptions.importPath,
|
|
509
|
+
isTypeOnly: true
|
|
510
|
+
})] }) : /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [!shouldUseClientPlugin && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
511
|
+
name: ["client"],
|
|
512
|
+
root: meta.file.path,
|
|
513
|
+
path: node_path.default.resolve(root, ".kubb/client.ts")
|
|
514
|
+
}), /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
515
|
+
name: [
|
|
516
|
+
"Client",
|
|
517
|
+
"RequestConfig",
|
|
518
|
+
"ResponseErrorConfig"
|
|
519
|
+
],
|
|
520
|
+
root: meta.file.path,
|
|
521
|
+
path: node_path.default.resolve(root, ".kubb/client.ts"),
|
|
522
|
+
isTypeOnly: true
|
|
523
|
+
})] }),
|
|
613
524
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
614
525
|
name: ["toValue"],
|
|
615
526
|
path: "vue"
|
|
@@ -723,4 +634,4 @@ Object.defineProperty(exports, "queryGenerator", {
|
|
|
723
634
|
}
|
|
724
635
|
});
|
|
725
636
|
|
|
726
|
-
//# sourceMappingURL=generators-
|
|
637
|
+
//# sourceMappingURL=generators-BTtcGtUY.cjs.map
|