@kubb/plugin-swr 3.16.1 → 3.16.3

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.
Files changed (39) hide show
  1. package/dist/components-BQIcQmn3.js +435 -0
  2. package/dist/components-BQIcQmn3.js.map +1 -0
  3. package/dist/components-Zv6v8ZAm.cjs +493 -0
  4. package/dist/components-Zv6v8ZAm.cjs.map +1 -0
  5. package/dist/components.cjs +6 -27
  6. package/dist/components.d.cts +177 -78
  7. package/dist/components.d.ts +177 -78
  8. package/dist/components.js +3 -3
  9. package/dist/generators-B-fWjDXL.js +328 -0
  10. package/dist/generators-B-fWjDXL.js.map +1 -0
  11. package/dist/generators-ByyKDjyt.cjs +339 -0
  12. package/dist/generators-ByyKDjyt.cjs.map +1 -0
  13. package/dist/generators.cjs +4 -16
  14. package/dist/generators.d.cts +8 -9
  15. package/dist/generators.d.ts +8 -9
  16. package/dist/generators.js +4 -4
  17. package/dist/index.cjs +107 -136
  18. package/dist/index.cjs.map +1 -1
  19. package/dist/index.d.cts +6 -8
  20. package/dist/index.d.ts +6 -8
  21. package/dist/index.js +107 -130
  22. package/dist/index.js.map +1 -1
  23. package/dist/types-CSnGy9Uj.d.ts +1355 -0
  24. package/dist/types-CjDGkyWH.d.cts +1355 -0
  25. package/package.json +25 -30
  26. package/dist/chunk-2N4Q32XH.cjs +0 -285
  27. package/dist/chunk-2N4Q32XH.cjs.map +0 -1
  28. package/dist/chunk-GWLPXHRE.js +0 -282
  29. package/dist/chunk-GWLPXHRE.js.map +0 -1
  30. package/dist/chunk-MNOTKHSE.cjs +0 -367
  31. package/dist/chunk-MNOTKHSE.cjs.map +0 -1
  32. package/dist/chunk-RZTUH4QW.js +0 -361
  33. package/dist/chunk-RZTUH4QW.js.map +0 -1
  34. package/dist/components.cjs.map +0 -1
  35. package/dist/components.js.map +0 -1
  36. package/dist/generators.cjs.map +0 -1
  37. package/dist/generators.js.map +0 -1
  38. package/dist/types-DVQ2siUx.d.cts +0 -134
  39. package/dist/types-DVQ2siUx.d.ts +0 -134
@@ -0,0 +1,435 @@
1
+ import { File, Function, FunctionParams, Type } from "@kubb/react";
2
+ import { isOptional } from "@kubb/oas";
3
+ import { Client } from "@kubb/plugin-client/components";
4
+ import { getComments, getPathParams } from "@kubb/plugin-oas/utils";
5
+ import { URLPath } from "@kubb/core/utils";
6
+ import { Fragment, jsx, jsxs } from "@kubb/react/jsx-runtime";
7
+
8
+ //#region src/components/MutationKey.tsx
9
+ function getParams$4({}) {
10
+ return FunctionParams.factory({});
11
+ }
12
+ const getTransformer$1 = ({ operation, casing }) => {
13
+ const path = new URLPath(operation.path, { casing });
14
+ return [JSON.stringify({ url: path.path })].filter(Boolean);
15
+ };
16
+ function MutationKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer$1 }) {
17
+ const params = getParams$4({
18
+ pathParamsType,
19
+ typeSchemas
20
+ });
21
+ const keys = transformer({
22
+ operation,
23
+ schemas: typeSchemas,
24
+ casing: paramsCasing
25
+ });
26
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(File.Source, {
27
+ name,
28
+ isExportable: true,
29
+ isIndexable: true,
30
+ children: /* @__PURE__ */ jsx(Function.Arrow, {
31
+ name,
32
+ export: true,
33
+ params: params.toConstructor(),
34
+ singleLine: true,
35
+ children: `[${keys.join(", ")}] as const`
36
+ })
37
+ }), /* @__PURE__ */ jsx(File.Source, {
38
+ name: typeName,
39
+ isExportable: true,
40
+ isIndexable: true,
41
+ isTypeOnly: true,
42
+ children: /* @__PURE__ */ jsx(Type, {
43
+ name: typeName,
44
+ export: true,
45
+ children: `ReturnType<typeof ${name}>`
46
+ })
47
+ })] });
48
+ }
49
+ MutationKey.getParams = getParams$4;
50
+ MutationKey.getTransformer = getTransformer$1;
51
+
52
+ //#endregion
53
+ //#region src/components/Mutation.tsx
54
+ function getParams$3({ pathParamsType, paramsCasing, dataReturnType, typeSchemas, mutationKeyTypeName }) {
55
+ const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
56
+ const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
57
+ return FunctionParams.factory({
58
+ pathParams: {
59
+ mode: pathParamsType === "object" ? "object" : "inlineSpread",
60
+ children: getPathParams(typeSchemas.pathParams, {
61
+ typed: true,
62
+ casing: paramsCasing
63
+ })
64
+ },
65
+ params: typeSchemas.queryParams?.name ? {
66
+ type: typeSchemas.queryParams?.name,
67
+ optional: isOptional(typeSchemas.queryParams?.schema)
68
+ } : void 0,
69
+ headers: typeSchemas.headerParams?.name ? {
70
+ type: typeSchemas.headerParams?.name,
71
+ optional: isOptional(typeSchemas.headerParams?.schema)
72
+ } : void 0,
73
+ options: {
74
+ type: `
75
+ {
76
+ mutation?: Parameters<typeof useSWRMutation<${[
77
+ TData,
78
+ TError,
79
+ mutationKeyTypeName,
80
+ typeSchemas.request?.name
81
+ ].join(", ")}>>[2],
82
+ client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }"},
83
+ shouldFetch?: boolean,
84
+ }
85
+ `,
86
+ default: "{}"
87
+ }
88
+ });
89
+ }
90
+ function Mutation({ name, clientName, mutationKeyName, mutationKeyTypeName, paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas, operation }) {
91
+ const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
92
+ const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
93
+ const generics = [
94
+ TData,
95
+ TError,
96
+ `${mutationKeyTypeName} | null`,
97
+ typeSchemas.request?.name
98
+ ].filter(Boolean);
99
+ const mutationKeyParams = MutationKey.getParams({
100
+ pathParamsType,
101
+ typeSchemas
102
+ });
103
+ const params = getParams$3({
104
+ paramsCasing,
105
+ pathParamsType,
106
+ dataReturnType,
107
+ typeSchemas,
108
+ mutationKeyTypeName
109
+ });
110
+ const clientParams = Client.getParams({
111
+ paramsCasing,
112
+ paramsType,
113
+ typeSchemas,
114
+ pathParamsType,
115
+ isConfigurable: true
116
+ });
117
+ return /* @__PURE__ */ jsx(File.Source, {
118
+ name,
119
+ isExportable: true,
120
+ isIndexable: true,
121
+ children: /* @__PURE__ */ jsx(Function, {
122
+ name,
123
+ export: true,
124
+ params: params.toConstructor(),
125
+ JSDoc: { comments: getComments(operation) },
126
+ children: `
127
+ const { mutation: mutationOptions, client: config = {}, shouldFetch = true } = options ?? {}
128
+ const mutationKey = ${mutationKeyName}(${mutationKeyParams.toCall()})
129
+
130
+ return useSWRMutation<${generics}>(
131
+ shouldFetch ? mutationKey : null,
132
+ async (_url${typeSchemas.request?.name ? ", { arg: data }" : ""}) => {
133
+ return ${clientName}(${clientParams.toCall()})
134
+ },
135
+ mutationOptions
136
+ )
137
+ `
138
+ })
139
+ });
140
+ }
141
+
142
+ //#endregion
143
+ //#region src/components/QueryKey.tsx
144
+ function getParams$2({ pathParamsType, paramsCasing, typeSchemas }) {
145
+ return FunctionParams.factory({
146
+ pathParams: {
147
+ mode: pathParamsType === "object" ? "object" : "inlineSpread",
148
+ children: getPathParams(typeSchemas.pathParams, {
149
+ typed: true,
150
+ casing: paramsCasing
151
+ })
152
+ },
153
+ data: typeSchemas.request?.name ? {
154
+ type: typeSchemas.request?.name,
155
+ optional: isOptional(typeSchemas.request?.schema)
156
+ } : void 0,
157
+ params: typeSchemas.queryParams?.name ? {
158
+ type: typeSchemas.queryParams?.name,
159
+ optional: isOptional(typeSchemas.queryParams?.schema)
160
+ } : void 0
161
+ });
162
+ }
163
+ const getTransformer = ({ operation, schemas, casing }) => {
164
+ const path = new URLPath(operation.path, { casing });
165
+ const keys = [
166
+ path.toObject({
167
+ type: "path",
168
+ stringify: true
169
+ }),
170
+ schemas.queryParams?.name ? "...(params ? [params] : [])" : void 0,
171
+ schemas.request?.name ? "...(data ? [data] : [])" : void 0
172
+ ].filter(Boolean);
173
+ return keys;
174
+ };
175
+ function QueryKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer }) {
176
+ const params = getParams$2({
177
+ pathParamsType,
178
+ paramsCasing,
179
+ typeSchemas
180
+ });
181
+ const keys = transformer({
182
+ operation,
183
+ schemas: typeSchemas,
184
+ casing: paramsCasing
185
+ });
186
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(File.Source, {
187
+ name,
188
+ isExportable: true,
189
+ isIndexable: true,
190
+ children: /* @__PURE__ */ jsx(Function.Arrow, {
191
+ name,
192
+ export: true,
193
+ params: params.toConstructor(),
194
+ singleLine: true,
195
+ children: `[${keys.join(", ")}] as const`
196
+ })
197
+ }), /* @__PURE__ */ jsx(File.Source, {
198
+ name: typeName,
199
+ isExportable: true,
200
+ isIndexable: true,
201
+ isTypeOnly: true,
202
+ children: /* @__PURE__ */ jsx(Type, {
203
+ name: typeName,
204
+ export: true,
205
+ children: `ReturnType<typeof ${name}>`
206
+ })
207
+ })] });
208
+ }
209
+ QueryKey.getParams = getParams$2;
210
+ QueryKey.getTransformer = getTransformer;
211
+
212
+ //#endregion
213
+ //#region src/components/QueryOptions.tsx
214
+ function getParams$1({ paramsType, paramsCasing, pathParamsType, typeSchemas }) {
215
+ if (paramsType === "object") return FunctionParams.factory({
216
+ data: {
217
+ mode: "object",
218
+ children: {
219
+ ...getPathParams(typeSchemas.pathParams, {
220
+ typed: true,
221
+ casing: paramsCasing
222
+ }),
223
+ data: typeSchemas.request?.name ? {
224
+ type: typeSchemas.request?.name,
225
+ optional: isOptional(typeSchemas.request?.schema)
226
+ } : void 0,
227
+ params: typeSchemas.queryParams?.name ? {
228
+ type: typeSchemas.queryParams?.name,
229
+ optional: isOptional(typeSchemas.queryParams?.schema)
230
+ } : void 0,
231
+ headers: typeSchemas.headerParams?.name ? {
232
+ type: typeSchemas.headerParams?.name,
233
+ optional: isOptional(typeSchemas.headerParams?.schema)
234
+ } : void 0
235
+ }
236
+ },
237
+ config: {
238
+ type: typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }",
239
+ default: "{}"
240
+ }
241
+ });
242
+ return FunctionParams.factory({
243
+ pathParams: typeSchemas.pathParams?.name ? {
244
+ mode: pathParamsType === "object" ? "object" : "inlineSpread",
245
+ children: getPathParams(typeSchemas.pathParams, {
246
+ typed: true,
247
+ casing: paramsCasing
248
+ }),
249
+ optional: isOptional(typeSchemas.pathParams?.schema)
250
+ } : void 0,
251
+ data: typeSchemas.request?.name ? {
252
+ type: typeSchemas.request?.name,
253
+ optional: isOptional(typeSchemas.request?.schema)
254
+ } : void 0,
255
+ params: typeSchemas.queryParams?.name ? {
256
+ type: typeSchemas.queryParams?.name,
257
+ optional: isOptional(typeSchemas.queryParams?.schema)
258
+ } : void 0,
259
+ headers: typeSchemas.headerParams?.name ? {
260
+ type: typeSchemas.headerParams?.name,
261
+ optional: isOptional(typeSchemas.headerParams?.schema)
262
+ } : void 0,
263
+ config: {
264
+ type: typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }",
265
+ default: "{}"
266
+ }
267
+ });
268
+ }
269
+ function QueryOptions({ name, clientName, typeSchemas, paramsCasing, paramsType, pathParamsType }) {
270
+ const params = getParams$1({
271
+ paramsType,
272
+ paramsCasing,
273
+ pathParamsType,
274
+ typeSchemas
275
+ });
276
+ const clientParams = Client.getParams({
277
+ paramsCasing,
278
+ paramsType,
279
+ typeSchemas,
280
+ pathParamsType,
281
+ isConfigurable: true
282
+ });
283
+ return /* @__PURE__ */ jsx(File.Source, {
284
+ name,
285
+ isExportable: true,
286
+ isIndexable: true,
287
+ children: /* @__PURE__ */ jsx(Function, {
288
+ name,
289
+ export: true,
290
+ params: params.toConstructor(),
291
+ children: `
292
+ return {
293
+ fetcher: async () => {
294
+ return ${clientName}(${clientParams.toCall()})
295
+ },
296
+ }
297
+ `
298
+ })
299
+ });
300
+ }
301
+ QueryOptions.getParams = getParams$1;
302
+
303
+ //#endregion
304
+ //#region src/components/Query.tsx
305
+ function getParams({ paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas }) {
306
+ const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
307
+ const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
308
+ if (paramsType === "object") return FunctionParams.factory({
309
+ data: {
310
+ mode: "object",
311
+ children: {
312
+ ...getPathParams(typeSchemas.pathParams, {
313
+ typed: true,
314
+ casing: paramsCasing
315
+ }),
316
+ data: typeSchemas.request?.name ? {
317
+ type: typeSchemas.request?.name,
318
+ optional: isOptional(typeSchemas.request?.schema)
319
+ } : void 0,
320
+ params: typeSchemas.queryParams?.name ? {
321
+ type: typeSchemas.queryParams?.name,
322
+ optional: isOptional(typeSchemas.queryParams?.schema)
323
+ } : void 0,
324
+ headers: typeSchemas.headerParams?.name ? {
325
+ type: typeSchemas.headerParams?.name,
326
+ optional: isOptional(typeSchemas.headerParams?.schema)
327
+ } : void 0
328
+ }
329
+ },
330
+ options: {
331
+ type: `
332
+ {
333
+ query?: Parameters<typeof useSWR<${[TData, TError].join(", ")}>>[2],
334
+ client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }"},
335
+ shouldFetch?: boolean,
336
+ immutable?: boolean
337
+ }
338
+ `,
339
+ default: "{}"
340
+ }
341
+ });
342
+ return FunctionParams.factory({
343
+ pathParams: typeSchemas.pathParams?.name ? {
344
+ mode: pathParamsType === "object" ? "object" : "inlineSpread",
345
+ children: getPathParams(typeSchemas.pathParams, {
346
+ typed: true,
347
+ casing: paramsCasing
348
+ }),
349
+ optional: isOptional(typeSchemas.pathParams?.schema)
350
+ } : void 0,
351
+ data: typeSchemas.request?.name ? {
352
+ type: typeSchemas.request?.name,
353
+ optional: isOptional(typeSchemas.request?.schema)
354
+ } : void 0,
355
+ params: typeSchemas.queryParams?.name ? {
356
+ type: typeSchemas.queryParams?.name,
357
+ optional: isOptional(typeSchemas.queryParams?.schema)
358
+ } : void 0,
359
+ headers: typeSchemas.headerParams?.name ? {
360
+ type: typeSchemas.headerParams?.name,
361
+ optional: isOptional(typeSchemas.headerParams?.schema)
362
+ } : void 0,
363
+ options: {
364
+ type: `
365
+ {
366
+ query?: Parameters<typeof useSWR<${[TData, TError].join(", ")}>>[2],
367
+ client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }"},
368
+ shouldFetch?: boolean,
369
+ immutable?: boolean
370
+ }
371
+ `,
372
+ default: "{}"
373
+ }
374
+ });
375
+ }
376
+ function Query({ name, typeSchemas, queryKeyName, queryKeyTypeName, queryOptionsName, operation, dataReturnType, paramsType, paramsCasing, pathParamsType }) {
377
+ const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
378
+ const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
379
+ const generics = [
380
+ TData,
381
+ TError,
382
+ `${queryKeyTypeName} | null`
383
+ ];
384
+ const queryKeyParams = QueryKey.getParams({
385
+ pathParamsType,
386
+ typeSchemas,
387
+ paramsCasing
388
+ });
389
+ const params = getParams({
390
+ paramsCasing,
391
+ paramsType,
392
+ pathParamsType,
393
+ dataReturnType,
394
+ typeSchemas
395
+ });
396
+ const queryOptionsParams = QueryOptions.getParams({
397
+ paramsCasing,
398
+ paramsType,
399
+ pathParamsType,
400
+ typeSchemas
401
+ });
402
+ return /* @__PURE__ */ jsx(File.Source, {
403
+ name,
404
+ isExportable: true,
405
+ isIndexable: true,
406
+ children: /* @__PURE__ */ jsx(Function, {
407
+ name,
408
+ export: true,
409
+ params: params.toConstructor(),
410
+ JSDoc: { comments: getComments(operation) },
411
+ children: `
412
+ const { query: queryOptions, client: config = {}, shouldFetch = true, immutable } = options ?? {}
413
+
414
+ const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})
415
+
416
+ return useSWR<${generics.join(", ")}>(
417
+ shouldFetch ? queryKey : null,
418
+ {
419
+ ...${queryOptionsName}(${queryOptionsParams.toCall()}),
420
+ ...(immutable ? {
421
+ revalidateIfStale: false,
422
+ revalidateOnFocus: false,
423
+ revalidateOnReconnect: false
424
+ } : { }),
425
+ ...queryOptions
426
+ }
427
+ )
428
+ `
429
+ })
430
+ });
431
+ }
432
+
433
+ //#endregion
434
+ export { Mutation, MutationKey, Query, QueryKey, QueryOptions };
435
+ //# sourceMappingURL=components-BQIcQmn3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-BQIcQmn3.js","names":["getParams","getTransformer: Transformer","getTransformer","getParams","getParams","getTransformer: Transformer","getParams"],"sources":["../src/components/MutationKey.tsx","../src/components/Mutation.tsx","../src/components/QueryKey.tsx","../src/components/QueryOptions.tsx","../src/components/Query.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { File, Function, FunctionParams, Type } from '@kubb/react'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport type { ReactNode } from 'react'\nimport type { PluginSwr, Transformer } from '../types'\n\ntype Props = {\n name: string\n typeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({}: GetParamsProps) {\n return FunctionParams.factory({})\n}\n\nconst getTransformer: Transformer = ({ operation, casing }) => {\n const path = new URLPath(operation.path, { casing })\n\n return [JSON.stringify({ url: path.path })].filter(Boolean)\n}\n\nexport function MutationKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer }: Props): ReactNode {\n const params = getParams({ pathParamsType, typeSchemas })\n const keys = transformer({ operation, schemas: typeSchemas, casing: paramsCasing })\n\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n {`[${keys.join(', ')}] as const`}\n </Function.Arrow>\n </File.Source>\n <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n <Type name={typeName} export>\n {`ReturnType<typeof ${name}>`}\n </Type>\n </File.Source>\n </>\n )\n}\n\nMutationKey.getParams = getParams\nMutationKey.getTransformer = getTransformer\n","import { File, Function, FunctionParams } from '@kubb/react'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport type { ReactNode } from 'react'\nimport type { PluginSwr } from '../types.ts'\nimport { MutationKey } from './MutationKey.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n typeName: string\n clientName: string\n mutationKeyName: string\n mutationKeyTypeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n paramsType: PluginSwr['resolvedOptions']['paramsType']\n dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n typeSchemas: OperationSchemas\n mutationKeyTypeName: string\n}\n// TODO add same logic as being done for react-query mutations\nfunction getParams({ pathParamsType, paramsCasing, dataReturnType, typeSchemas, mutationKeyTypeName }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n return FunctionParams.factory({\n pathParams: {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n },\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n mutation?: Parameters<typeof useSWRMutation<${[TData, TError, mutationKeyTypeName, typeSchemas.request?.name].join(', ')}>>[2],\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : 'Partial<RequestConfig> & { client?: typeof fetch }'},\n shouldFetch?: boolean,\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function Mutation({\n name,\n clientName,\n mutationKeyName,\n mutationKeyTypeName,\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n}: Props): ReactNode {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n const generics = [\n TData,\n TError,\n `${mutationKeyTypeName} | null`,\n typeSchemas.request?.name, //arg: data\n ].filter(Boolean)\n\n const mutationKeyParams = MutationKey.getParams({\n pathParamsType,\n typeSchemas,\n })\n\n const params = getParams({\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n mutationKeyTypeName,\n })\n\n const clientParams = Client.getParams({\n paramsCasing,\n paramsType,\n typeSchemas,\n pathParamsType,\n isConfigurable: true,\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { mutation: mutationOptions, client: config = {}, shouldFetch = true } = options ?? {}\n const mutationKey = ${mutationKeyName}(${mutationKeyParams.toCall()})\n\n return useSWRMutation<${generics}>(\n shouldFetch ? mutationKey : null,\n async (_url${typeSchemas.request?.name ? ', { arg: data }' : ''}) => {\n return ${clientName}(${clientParams.toCall()})\n },\n mutationOptions\n )\n `}\n </Function>\n </File.Source>\n )\n}\n","import { URLPath } from '@kubb/core/utils'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams, Type } from '@kubb/react'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport type { ReactNode } from 'react'\nimport type { PluginSwr, Transformer } from '../types'\n\ntype Props = {\n name: string\n typeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ pathParamsType, paramsCasing, typeSchemas }: GetParamsProps) {\n return FunctionParams.factory({\n pathParams: {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n },\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n })\n}\n\nconst getTransformer: Transformer = ({ operation, schemas, casing }) => {\n const path = new URLPath(operation.path, { casing })\n const keys = [\n path.toObject({\n type: 'path',\n stringify: true,\n }),\n schemas.queryParams?.name ? '...(params ? [params] : [])' : undefined,\n schemas.request?.name ? '...(data ? [data] : [])' : undefined,\n ].filter(Boolean)\n\n return keys\n}\n\nexport function QueryKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer }: Props): ReactNode {\n const params = getParams({ pathParamsType, paramsCasing, typeSchemas })\n const keys = transformer({\n operation,\n schemas: typeSchemas,\n casing: paramsCasing,\n })\n\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n {`[${keys.join(', ')}] as const`}\n </Function.Arrow>\n </File.Source>\n <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n <Type name={typeName} export>\n {`ReturnType<typeof ${name}>`}\n </Type>\n </File.Source>\n </>\n )\n}\n\nQueryKey.getParams = getParams\nQueryKey.getTransformer = getTransformer\n","import { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react'\n\nimport type { ReactNode } from 'react'\nimport type { PluginSwr } from '../types.ts'\n\nimport { isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\n\ntype Props = {\n name: string\n clientName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n paramsType: PluginSwr['resolvedOptions']['paramsType']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n}\n\ntype GetParamsProps = {\n paramsType: PluginSwr['resolvedOptions']['paramsType']\n paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n },\n },\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }`\n : 'Partial<RequestConfig> & { client?: typeof fetch }',\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n optional: isOptional(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }`\n : 'Partial<RequestConfig> & { client?: typeof fetch }',\n default: '{}',\n },\n })\n}\n\nexport function QueryOptions({ name, clientName, typeSchemas, paramsCasing, paramsType, pathParamsType }: Props): ReactNode {\n const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas })\n const clientParams = Client.getParams({\n paramsCasing,\n paramsType,\n typeSchemas,\n pathParamsType,\n isConfigurable: true,\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params.toConstructor()}>\n {`\n return {\n fetcher: async () => {\n return ${clientName}(${clientParams.toCall()})\n },\n }\n `}\n </Function>\n </File.Source>\n )\n}\n\nQueryOptions.getParams = getParams\n","import { File, Function, FunctionParams } from '@kubb/react'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport type { ReactNode } from 'react'\nimport type { PluginSwr } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n queryOptionsName: string\n queryKeyName: string\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n paramsType: PluginSwr['resolvedOptions']['paramsType']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n operation: Operation\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n paramsType: PluginSwr['resolvedOptions']['paramsType']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n if (paramsType === 'object') {\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n },\n },\n options: {\n type: `\n{\n query?: Parameters<typeof useSWR<${[TData, TError].join(', ')}>>[2],\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : 'Partial<RequestConfig> & { client?: typeof fetch }'},\n shouldFetch?: boolean,\n immutable?: boolean\n}\n`,\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n optional: isOptional(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n query?: Parameters<typeof useSWR<${[TData, TError].join(', ')}>>[2],\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : 'Partial<RequestConfig> & { client?: typeof fetch }'},\n shouldFetch?: boolean,\n immutable?: boolean\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function Query({\n name,\n typeSchemas,\n queryKeyName,\n queryKeyTypeName,\n queryOptionsName,\n operation,\n dataReturnType,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: Props): ReactNode {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const generics = [TData, TError, `${queryKeyTypeName} | null`]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const params = getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n })\n\n const queryOptionsParams = QueryOptions.getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n typeSchemas,\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { query: queryOptions, client: config = {}, shouldFetch = true, immutable } = options ?? {}\n\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n\n return useSWR<${generics.join(', ')}>(\n shouldFetch ? queryKey : null,\n {\n ...${queryOptionsName}(${queryOptionsParams.toCall()}),\n ...(immutable ? {\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false\n } : { }),\n ...queryOptions\n }\n )\n `}\n </Function>\n </File.Source>\n )\n}\n"],"mappings":"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"}