@kubb/plugin-swr 0.0.0-canary-20241104172400
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/LICENSE +21 -0
- package/README.md +53 -0
- package/dist/chunk-2KDZWGWG.js +342 -0
- package/dist/chunk-2KDZWGWG.js.map +1 -0
- package/dist/chunk-64KLXAGI.cjs +237 -0
- package/dist/chunk-64KLXAGI.cjs.map +1 -0
- package/dist/chunk-AFAHUG3Q.cjs +348 -0
- package/dist/chunk-AFAHUG3Q.cjs.map +1 -0
- package/dist/chunk-T6K6P5I7.js +234 -0
- package/dist/chunk-T6K6P5I7.js.map +1 -0
- package/dist/components.cjs +28 -0
- package/dist/components.cjs.map +1 -0
- package/dist/components.d.cts +95 -0
- package/dist/components.d.ts +95 -0
- package/dist/components.js +3 -0
- package/dist/components.js.map +1 -0
- package/dist/generators.cjs +17 -0
- package/dist/generators.cjs.map +1 -0
- package/dist/generators.d.cts +11 -0
- package/dist/generators.d.ts +11 -0
- package/dist/generators.js +4 -0
- package/dist/generators.js.map +1 -0
- package/dist/index.cjs +127 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +10 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +120 -0
- package/dist/index.js.map +1 -0
- package/dist/types-AhGZx7jH.d.cts +272 -0
- package/dist/types-AhGZx7jH.d.ts +272 -0
- package/package.json +104 -0
- package/src/components/Mutation.tsx +129 -0
- package/src/components/MutationKey.tsx +54 -0
- package/src/components/Query.tsx +175 -0
- package/src/components/QueryKey.tsx +83 -0
- package/src/components/QueryOptions.tsx +116 -0
- package/src/components/index.ts +5 -0
- package/src/generators/__snapshots__/clientDataReturnTypeFull.ts +49 -0
- package/src/generators/__snapshots__/clientGetImportPath.ts +49 -0
- package/src/generators/__snapshots__/clientPostImportPath.ts +32 -0
- package/src/generators/__snapshots__/findByTags.ts +49 -0
- package/src/generators/__snapshots__/findByTagsObject.ts +49 -0
- package/src/generators/__snapshots__/findByTagsPathParamsObject.ts +49 -0
- package/src/generators/__snapshots__/findByTagsWithZod.ts +49 -0
- package/src/generators/__snapshots__/getAsMutation.ts +34 -0
- package/src/generators/__snapshots__/postAsQuery.ts +50 -0
- package/src/generators/__snapshots__/updatePetById.ts +32 -0
- package/src/generators/__snapshots__/updatePetByIdPathParamsObject.ts +34 -0
- package/src/generators/index.ts +2 -0
- package/src/generators/mutationGenerator.tsx +117 -0
- package/src/generators/queryGenerator.tsx +127 -0
- package/src/index.ts +4 -0
- package/src/plugin.ts +141 -0
- package/src/types.ts +126 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Stijn Van Hulle
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<!-- <img src="assets/logo.png" alt="logo" width="200" height="auto" /> -->
|
|
4
|
+
<h1>@kubb/plugin-swr</h1>
|
|
5
|
+
|
|
6
|
+
<p>
|
|
7
|
+
Swagger integration for SWR to generate all the different SWR hooks based on an OpenAPI specification.
|
|
8
|
+
</p>
|
|
9
|
+
<img src="https://raw.githubusercontent.com/kubb-labs/kubb/main/assets/banner.png" alt="logo" height="auto" />
|
|
10
|
+
|
|
11
|
+
[![npm version][npm-version-src]][npm-version-href]
|
|
12
|
+
[![npm downloads][npm-downloads-src]][npm-downloads-href]
|
|
13
|
+
[![Coverage][coverage-src]][coverage-href]
|
|
14
|
+
[![License][license-src]][license-href]
|
|
15
|
+
|
|
16
|
+
<h4>
|
|
17
|
+
<a href="https://codesandbox.io/s/github/kubb-labs/kubb/tree/main//examples/typescript" target="_blank">View Demo</a>
|
|
18
|
+
<span> · </span>
|
|
19
|
+
<a href="https://kubb.dev/" target="_blank">Documentation</a>
|
|
20
|
+
<span> · </span>
|
|
21
|
+
<a href="https://github.com/kubb-labs/kubb/issues/" target="_blank">Report Bug</a>
|
|
22
|
+
<span> · </span>
|
|
23
|
+
<a href="https://github.com/kubb-labs/kubb/issues/" target="_blank">Request Feature</a>
|
|
24
|
+
</h4>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
## Supporting Kubb
|
|
28
|
+
|
|
29
|
+
Kubb uses an MIT-licensed open source project with its ongoing development made possible entirely by the support of Sponsors. If you would like to become a sponsor, please consider:
|
|
30
|
+
|
|
31
|
+
- [Become a Sponsor on GitHub](https://github.com/sponsors/stijnvanhulle)
|
|
32
|
+
|
|
33
|
+
<p align="center">
|
|
34
|
+
<a href="https://github.com/sponsors/stijnvanhulle">
|
|
35
|
+
<img src="https://raw.githubusercontent.com/stijnvanhulle/sponsors/main/sponsors.svg" alt="My sponsors" />
|
|
36
|
+
</a>
|
|
37
|
+
</p>
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
<!-- Badges -->
|
|
41
|
+
|
|
42
|
+
[npm-version-src]: https://img.shields.io/npm/v/@kubb/plugin-swr?flat&colorA=18181B&colorB=f58517
|
|
43
|
+
[npm-version-href]: https://npmjs.com/package/@kubb/plugin-swr
|
|
44
|
+
[npm-downloads-src]: https://img.shields.io/npm/dm/@kubb/plugin-swr?flat&colorA=18181B&colorB=f58517
|
|
45
|
+
[npm-downloads-href]: https://npmjs.com/package/@kubb/plugin-swr
|
|
46
|
+
[license-src]: https://img.shields.io/github/license/kubb-labs/kubb.svg?flat&colorA=18181B&colorB=f58517
|
|
47
|
+
[license-href]: https://github.com/kubb-labs/kubb/blob/main/LICENSE
|
|
48
|
+
[build-src]: https://img.shields.io/github/actions/workflow/status/kubb-labs/kubb/ci.yaml?style=flat&colorA=18181B&colorB=f58517
|
|
49
|
+
[build-href]: https://www.npmjs.com/package/@kubb/plugin-swr
|
|
50
|
+
[minified-src]: https://img.shields.io/bundlephobia/min/@kubb/plugin-swr?style=flat&colorA=18181B&colorB=f58517
|
|
51
|
+
[minified-href]: https://www.npmjs.com/package/@kubb/plugin-swr
|
|
52
|
+
[coverage-src]: https://img.shields.io/codecov/c/github/kubb-labs/kubb?style=flat&colorA=18181B&colorB=f58517
|
|
53
|
+
[coverage-href]: https://www.npmjs.com/package/@kubb/plugin-swr
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import { File, Function, Type, FunctionParams } 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 { jsxs, Fragment, jsx } from '@kubb/react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
// src/components/Mutation.tsx
|
|
9
|
+
function getParams({}) {
|
|
10
|
+
return FunctionParams.factory({});
|
|
11
|
+
}
|
|
12
|
+
var getTransformer = ({ operation }) => {
|
|
13
|
+
const path = new URLPath(operation.path);
|
|
14
|
+
return [JSON.stringify({ url: path.path })].filter(Boolean);
|
|
15
|
+
};
|
|
16
|
+
function MutationKey({ name, typeSchemas, pathParamsType, operation, typeName, transformer = getTransformer }) {
|
|
17
|
+
const params = getParams({ pathParamsType, typeSchemas });
|
|
18
|
+
const keys = transformer({ operation, schemas: typeSchemas });
|
|
19
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
20
|
+
/* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(Function.Arrow, { name, export: true, params: params.toConstructor(), singleLine: true, children: `[${keys.join(", ")}] as const` }) }),
|
|
21
|
+
/* @__PURE__ */ jsx(File.Source, { name: typeName, isExportable: true, isIndexable: true, isTypeOnly: true, children: /* @__PURE__ */ jsx(Type, { name: typeName, export: true, children: `ReturnType<typeof ${name}>` }) })
|
|
22
|
+
] });
|
|
23
|
+
}
|
|
24
|
+
MutationKey.getParams = getParams;
|
|
25
|
+
MutationKey.getTransformer = getTransformer;
|
|
26
|
+
function getParams2({ pathParamsType, dataReturnType, typeSchemas, mutationKeyTypeName }) {
|
|
27
|
+
const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
|
|
28
|
+
return FunctionParams.factory({
|
|
29
|
+
pathParams: {
|
|
30
|
+
mode: pathParamsType === "object" ? "object" : "inlineSpread",
|
|
31
|
+
children: getPathParams(typeSchemas.pathParams, { typed: true })
|
|
32
|
+
},
|
|
33
|
+
params: typeSchemas.queryParams?.name ? {
|
|
34
|
+
type: typeSchemas.queryParams?.name,
|
|
35
|
+
optional: isOptional(typeSchemas.queryParams?.schema)
|
|
36
|
+
} : void 0,
|
|
37
|
+
headers: typeSchemas.headerParams?.name ? {
|
|
38
|
+
type: typeSchemas.headerParams?.name,
|
|
39
|
+
optional: isOptional(typeSchemas.headerParams?.schema)
|
|
40
|
+
} : void 0,
|
|
41
|
+
options: {
|
|
42
|
+
type: `
|
|
43
|
+
{
|
|
44
|
+
mutation?: Parameters<typeof useSWRMutation<${[TData, typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error", mutationKeyTypeName, typeSchemas.request?.name].join(", ")}>>[2],
|
|
45
|
+
client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>>` : "Partial<RequestConfig>"},
|
|
46
|
+
shouldFetch?: boolean,
|
|
47
|
+
}
|
|
48
|
+
`,
|
|
49
|
+
default: "{}"
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function Mutation({
|
|
54
|
+
name,
|
|
55
|
+
clientName,
|
|
56
|
+
mutationKeyName,
|
|
57
|
+
mutationKeyTypeName,
|
|
58
|
+
paramsType,
|
|
59
|
+
pathParamsType,
|
|
60
|
+
dataReturnType,
|
|
61
|
+
typeSchemas,
|
|
62
|
+
operation
|
|
63
|
+
}) {
|
|
64
|
+
const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
|
|
65
|
+
const generics = [
|
|
66
|
+
TData,
|
|
67
|
+
typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error",
|
|
68
|
+
`${mutationKeyTypeName} | null`,
|
|
69
|
+
typeSchemas.request?.name
|
|
70
|
+
//arg: data
|
|
71
|
+
].filter(Boolean);
|
|
72
|
+
const mutationKeyParams = MutationKey.getParams({
|
|
73
|
+
pathParamsType,
|
|
74
|
+
typeSchemas
|
|
75
|
+
});
|
|
76
|
+
const params = getParams2({
|
|
77
|
+
pathParamsType,
|
|
78
|
+
dataReturnType,
|
|
79
|
+
typeSchemas,
|
|
80
|
+
mutationKeyTypeName
|
|
81
|
+
});
|
|
82
|
+
const clientParams = Client.getParams({
|
|
83
|
+
paramsType,
|
|
84
|
+
typeSchemas,
|
|
85
|
+
pathParamsType
|
|
86
|
+
});
|
|
87
|
+
return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(
|
|
88
|
+
Function,
|
|
89
|
+
{
|
|
90
|
+
name,
|
|
91
|
+
export: true,
|
|
92
|
+
params: params.toConstructor(),
|
|
93
|
+
JSDoc: {
|
|
94
|
+
comments: getComments(operation)
|
|
95
|
+
},
|
|
96
|
+
children: `
|
|
97
|
+
const { mutation: mutationOptions, client: config = {}, shouldFetch = true } = options ?? {}
|
|
98
|
+
const mutationKey = ${mutationKeyName}(${mutationKeyParams.toCall()})
|
|
99
|
+
|
|
100
|
+
return useSWRMutation<${generics}>(
|
|
101
|
+
shouldFetch ? mutationKey : null,
|
|
102
|
+
async (_url${typeSchemas.request?.name ? ", { arg: data }" : ""}) => {
|
|
103
|
+
return ${clientName}(${clientParams.toCall()})
|
|
104
|
+
},
|
|
105
|
+
mutationOptions
|
|
106
|
+
)
|
|
107
|
+
`
|
|
108
|
+
}
|
|
109
|
+
) });
|
|
110
|
+
}
|
|
111
|
+
function getParams3({ pathParamsType, typeSchemas }) {
|
|
112
|
+
return FunctionParams.factory({
|
|
113
|
+
pathParams: {
|
|
114
|
+
mode: pathParamsType === "object" ? "object" : "inlineSpread",
|
|
115
|
+
children: getPathParams(typeSchemas.pathParams, { typed: true })
|
|
116
|
+
},
|
|
117
|
+
data: typeSchemas.request?.name ? {
|
|
118
|
+
type: typeSchemas.request?.name,
|
|
119
|
+
optional: isOptional(typeSchemas.request?.schema)
|
|
120
|
+
} : void 0,
|
|
121
|
+
params: typeSchemas.queryParams?.name ? {
|
|
122
|
+
type: typeSchemas.queryParams?.name,
|
|
123
|
+
optional: isOptional(typeSchemas.queryParams?.schema)
|
|
124
|
+
} : void 0
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
var getTransformer2 = ({ operation, schemas }) => {
|
|
128
|
+
const path = new URLPath(operation.path);
|
|
129
|
+
const keys = [
|
|
130
|
+
path.toObject({
|
|
131
|
+
type: "path",
|
|
132
|
+
stringify: true
|
|
133
|
+
}),
|
|
134
|
+
schemas.queryParams?.name ? "...(params ? [params] : [])" : void 0,
|
|
135
|
+
schemas.request?.name ? "...(data ? [data] : [])" : void 0
|
|
136
|
+
].filter(Boolean);
|
|
137
|
+
return keys;
|
|
138
|
+
};
|
|
139
|
+
function QueryKey({ name, typeSchemas, pathParamsType, operation, typeName, transformer = getTransformer2 }) {
|
|
140
|
+
const params = getParams3({ pathParamsType, typeSchemas });
|
|
141
|
+
const keys = transformer({
|
|
142
|
+
operation,
|
|
143
|
+
schemas: typeSchemas
|
|
144
|
+
});
|
|
145
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
146
|
+
/* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(Function.Arrow, { name, export: true, params: params.toConstructor(), singleLine: true, children: `[${keys.join(", ")}] as const` }) }),
|
|
147
|
+
/* @__PURE__ */ jsx(File.Source, { name: typeName, isExportable: true, isIndexable: true, isTypeOnly: true, children: /* @__PURE__ */ jsx(Type, { name: typeName, export: true, children: `ReturnType<typeof ${name}>` }) })
|
|
148
|
+
] });
|
|
149
|
+
}
|
|
150
|
+
QueryKey.getParams = getParams3;
|
|
151
|
+
QueryKey.getTransformer = getTransformer2;
|
|
152
|
+
function getParams4({ paramsType, pathParamsType, typeSchemas }) {
|
|
153
|
+
if (paramsType === "object") {
|
|
154
|
+
return FunctionParams.factory({
|
|
155
|
+
data: {
|
|
156
|
+
mode: "object",
|
|
157
|
+
children: {
|
|
158
|
+
...getPathParams(typeSchemas.pathParams, { typed: true }),
|
|
159
|
+
data: typeSchemas.request?.name ? {
|
|
160
|
+
type: typeSchemas.request?.name,
|
|
161
|
+
optional: isOptional(typeSchemas.request?.schema)
|
|
162
|
+
} : void 0,
|
|
163
|
+
params: typeSchemas.queryParams?.name ? {
|
|
164
|
+
type: typeSchemas.queryParams?.name,
|
|
165
|
+
optional: isOptional(typeSchemas.queryParams?.schema)
|
|
166
|
+
} : void 0,
|
|
167
|
+
headers: typeSchemas.headerParams?.name ? {
|
|
168
|
+
type: typeSchemas.headerParams?.name,
|
|
169
|
+
optional: isOptional(typeSchemas.headerParams?.schema)
|
|
170
|
+
} : void 0
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
config: {
|
|
174
|
+
type: typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>>` : "Partial<RequestConfig>",
|
|
175
|
+
default: "{}"
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
return FunctionParams.factory({
|
|
180
|
+
pathParams: typeSchemas.pathParams?.name ? {
|
|
181
|
+
mode: pathParamsType === "object" ? "object" : "inlineSpread",
|
|
182
|
+
children: getPathParams(typeSchemas.pathParams, { typed: true }),
|
|
183
|
+
type: typeSchemas.pathParams?.name,
|
|
184
|
+
optional: isOptional(typeSchemas.pathParams?.schema)
|
|
185
|
+
} : void 0,
|
|
186
|
+
data: typeSchemas.request?.name ? {
|
|
187
|
+
type: typeSchemas.request?.name,
|
|
188
|
+
optional: isOptional(typeSchemas.request?.schema)
|
|
189
|
+
} : void 0,
|
|
190
|
+
params: typeSchemas.queryParams?.name ? {
|
|
191
|
+
type: typeSchemas.queryParams?.name,
|
|
192
|
+
optional: isOptional(typeSchemas.queryParams?.schema)
|
|
193
|
+
} : void 0,
|
|
194
|
+
headers: typeSchemas.headerParams?.name ? {
|
|
195
|
+
type: typeSchemas.headerParams?.name,
|
|
196
|
+
optional: isOptional(typeSchemas.headerParams?.schema)
|
|
197
|
+
} : void 0,
|
|
198
|
+
config: {
|
|
199
|
+
type: typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>>` : "Partial<RequestConfig>",
|
|
200
|
+
default: "{}"
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
function QueryOptions({ name, clientName, typeSchemas, paramsType, pathParamsType }) {
|
|
205
|
+
const params = getParams4({ paramsType, pathParamsType, typeSchemas });
|
|
206
|
+
const clientParams = Client.getParams({
|
|
207
|
+
paramsType,
|
|
208
|
+
typeSchemas,
|
|
209
|
+
pathParamsType
|
|
210
|
+
});
|
|
211
|
+
return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(Function, { name, export: true, params: params.toConstructor(), children: `
|
|
212
|
+
return {
|
|
213
|
+
fetcher: async () => {
|
|
214
|
+
return ${clientName}(${clientParams.toCall()})
|
|
215
|
+
},
|
|
216
|
+
}
|
|
217
|
+
` }) });
|
|
218
|
+
}
|
|
219
|
+
QueryOptions.getParams = getParams4;
|
|
220
|
+
function getParams5({ paramsType, pathParamsType, dataReturnType, typeSchemas, queryKeyTypeName }) {
|
|
221
|
+
const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
|
|
222
|
+
if (paramsType === "object") {
|
|
223
|
+
return FunctionParams.factory({
|
|
224
|
+
data: {
|
|
225
|
+
mode: "object",
|
|
226
|
+
children: {
|
|
227
|
+
...getPathParams(typeSchemas.pathParams, { typed: true }),
|
|
228
|
+
data: typeSchemas.request?.name ? {
|
|
229
|
+
type: typeSchemas.request?.name,
|
|
230
|
+
optional: isOptional(typeSchemas.request?.schema)
|
|
231
|
+
} : void 0,
|
|
232
|
+
params: typeSchemas.queryParams?.name ? {
|
|
233
|
+
type: typeSchemas.queryParams?.name,
|
|
234
|
+
optional: isOptional(typeSchemas.queryParams?.schema)
|
|
235
|
+
} : void 0,
|
|
236
|
+
headers: typeSchemas.headerParams?.name ? {
|
|
237
|
+
type: typeSchemas.headerParams?.name,
|
|
238
|
+
optional: isOptional(typeSchemas.headerParams?.schema)
|
|
239
|
+
} : void 0
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
options: {
|
|
243
|
+
type: `
|
|
244
|
+
{
|
|
245
|
+
query?: Parameters<typeof useSWR<${[TData, typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error", `${queryKeyTypeName} | null`].join(", ")}, any>>[2],
|
|
246
|
+
client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>>` : "Partial<RequestConfig>"},
|
|
247
|
+
shouldFetch?: boolean,
|
|
248
|
+
}
|
|
249
|
+
`,
|
|
250
|
+
default: "{}"
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
return FunctionParams.factory({
|
|
255
|
+
pathParams: typeSchemas.pathParams?.name ? {
|
|
256
|
+
mode: pathParamsType === "object" ? "object" : "inlineSpread",
|
|
257
|
+
children: getPathParams(typeSchemas.pathParams, { typed: true }),
|
|
258
|
+
type: typeSchemas.pathParams?.name,
|
|
259
|
+
optional: isOptional(typeSchemas.pathParams?.schema)
|
|
260
|
+
} : void 0,
|
|
261
|
+
data: typeSchemas.request?.name ? {
|
|
262
|
+
type: typeSchemas.request?.name,
|
|
263
|
+
optional: isOptional(typeSchemas.request?.schema)
|
|
264
|
+
} : void 0,
|
|
265
|
+
params: typeSchemas.queryParams?.name ? {
|
|
266
|
+
type: typeSchemas.queryParams?.name,
|
|
267
|
+
optional: isOptional(typeSchemas.queryParams?.schema)
|
|
268
|
+
} : void 0,
|
|
269
|
+
headers: typeSchemas.headerParams?.name ? {
|
|
270
|
+
type: typeSchemas.headerParams?.name,
|
|
271
|
+
optional: isOptional(typeSchemas.headerParams?.schema)
|
|
272
|
+
} : void 0,
|
|
273
|
+
options: {
|
|
274
|
+
type: `
|
|
275
|
+
{
|
|
276
|
+
query?: Parameters<typeof useSWR<${[TData, typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error", `${queryKeyTypeName} | null`].join(", ")}, any>>[2],
|
|
277
|
+
client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>>` : "Partial<RequestConfig>"},
|
|
278
|
+
shouldFetch?: boolean,
|
|
279
|
+
}
|
|
280
|
+
`,
|
|
281
|
+
default: "{}"
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
function Query({
|
|
286
|
+
name,
|
|
287
|
+
typeSchemas,
|
|
288
|
+
queryKeyName,
|
|
289
|
+
queryKeyTypeName,
|
|
290
|
+
queryOptionsName,
|
|
291
|
+
operation,
|
|
292
|
+
dataReturnType,
|
|
293
|
+
paramsType,
|
|
294
|
+
pathParamsType
|
|
295
|
+
}) {
|
|
296
|
+
const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
|
|
297
|
+
const generics = [TData, typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error", `${queryKeyTypeName} | null`];
|
|
298
|
+
const queryKeyParams = QueryKey.getParams({
|
|
299
|
+
pathParamsType,
|
|
300
|
+
typeSchemas
|
|
301
|
+
});
|
|
302
|
+
const params = getParams5({
|
|
303
|
+
paramsType,
|
|
304
|
+
pathParamsType,
|
|
305
|
+
dataReturnType,
|
|
306
|
+
typeSchemas,
|
|
307
|
+
queryKeyTypeName
|
|
308
|
+
});
|
|
309
|
+
const queryOptionsParams = QueryOptions.getParams({
|
|
310
|
+
paramsType,
|
|
311
|
+
pathParamsType,
|
|
312
|
+
typeSchemas
|
|
313
|
+
});
|
|
314
|
+
return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(
|
|
315
|
+
Function,
|
|
316
|
+
{
|
|
317
|
+
name,
|
|
318
|
+
export: true,
|
|
319
|
+
params: params.toConstructor(),
|
|
320
|
+
JSDoc: {
|
|
321
|
+
comments: getComments(operation)
|
|
322
|
+
},
|
|
323
|
+
children: `
|
|
324
|
+
const { query: queryOptions, client: config = {}, shouldFetch = true } = options ?? {}
|
|
325
|
+
|
|
326
|
+
const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})
|
|
327
|
+
|
|
328
|
+
return useSWR<${generics.join(", ")}>(
|
|
329
|
+
shouldFetch ? queryKey : null,
|
|
330
|
+
{
|
|
331
|
+
...${queryOptionsName}(${queryOptionsParams.toCall()})
|
|
332
|
+
...queryOptions
|
|
333
|
+
}
|
|
334
|
+
)
|
|
335
|
+
`
|
|
336
|
+
}
|
|
337
|
+
) });
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export { Mutation, MutationKey, Query, QueryKey, QueryOptions };
|
|
341
|
+
//# sourceMappingURL=chunk-2KDZWGWG.js.map
|
|
342
|
+
//# sourceMappingURL=chunk-2KDZWGWG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/MutationKey.tsx","../src/components/Mutation.tsx","../src/components/QueryKey.tsx","../src/components/QueryOptions.tsx","../src/components/Query.tsx"],"names":["getParams","FunctionParams","jsx","File","Function","getPathParams","isOptional","getTransformer","URLPath","jsxs","Fragment","Type","Client","getComments"],"mappings":"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","file":"chunk-2KDZWGWG.js","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 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 }) => {\n const path = new URLPath(operation.path)\n\n return [JSON.stringify({ url: path.path })].filter(Boolean)\n}\n\nexport function MutationKey({ name, typeSchemas, pathParamsType, operation, typeName, transformer = getTransformer }: Props): ReactNode {\n const params = getParams({ pathParamsType, typeSchemas })\n const keys = transformer({ operation, schemas: typeSchemas })\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 paramsType: PluginSwr['resolvedOptions']['paramsType']\n dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n}\n\ntype GetParamsProps = {\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, dataReturnType, typeSchemas, mutationKeyTypeName }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n\n return FunctionParams.factory({\n pathParams: {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true }),\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, typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error', mutationKeyTypeName, typeSchemas.request?.name].join(', ')}>>[2],\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>>` : 'Partial<RequestConfig>'},\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 pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n}: Props): ReactNode {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const generics = [\n TData,\n typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error',\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 pathParamsType,\n dataReturnType,\n typeSchemas,\n mutationKeyTypeName,\n })\n\n const clientParams = Client.getParams({\n paramsType,\n typeSchemas,\n pathParamsType,\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 pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ pathParamsType, typeSchemas }: GetParamsProps) {\n return FunctionParams.factory({\n pathParams: {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true }),\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 }) => {\n const path = new URLPath(operation.path)\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, pathParamsType, operation, typeName, transformer = getTransformer }: Props): ReactNode {\n const params = getParams({ pathParamsType, typeSchemas })\n const keys = transformer({\n operation,\n schemas: typeSchemas,\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 paramsType: PluginSwr['resolvedOptions']['paramsType']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n}\n\ntype GetParamsProps = {\n paramsType: PluginSwr['resolvedOptions']['paramsType']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...getPathParams(typeSchemas.pathParams, { typed: true }),\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 ? `Partial<RequestConfig<${typeSchemas.request?.name}>>` : 'Partial<RequestConfig>',\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 }),\n type: typeSchemas.pathParams?.name,\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 ? `Partial<RequestConfig<${typeSchemas.request?.name}>>` : 'Partial<RequestConfig>',\n default: '{}',\n },\n })\n}\n\nexport function QueryOptions({ name, clientName, typeSchemas, paramsType, pathParamsType }: Props): ReactNode {\n const params = getParams({ paramsType, pathParamsType, typeSchemas })\n const clientParams = Client.getParams({\n paramsType,\n typeSchemas,\n pathParamsType,\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 { URLPath } from '@kubb/core/utils'\nimport { 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 paramsType: PluginSwr['resolvedOptions']['paramsType']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n operation: Operation\n}\n\ntype GetParamsProps = {\n paramsType: PluginSwr['resolvedOptions']['paramsType']\n pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, pathParamsType, dataReturnType, typeSchemas, queryKeyTypeName }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n\n if (paramsType === 'object') {\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...getPathParams(typeSchemas.pathParams, { typed: true }),\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, typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error', `${queryKeyTypeName} | null`].join(', ')}, any>>[2],\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>>` : 'Partial<RequestConfig>'},\n shouldFetch?: 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 }),\n type: typeSchemas.pathParams?.name,\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, typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error', `${queryKeyTypeName} | null`].join(', ')}, any>>[2],\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>>` : 'Partial<RequestConfig>'},\n shouldFetch?: 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 pathParamsType,\n}: Props): ReactNode {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const generics = [TData, typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error', `${queryKeyTypeName} | null`]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n })\n const params = getParams({\n paramsType,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n queryKeyTypeName,\n })\n\n const queryOptionsParams = QueryOptions.getParams({\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 } = options ?? {}\n\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n\n return useSWR<${generics.join(', ')}>(\n shouldFetch ? queryKey : null,\n {\n ...${queryOptionsName}(${queryOptionsParams.toCall()})\n ...queryOptions\n }\n )\n `}\n </Function>\n </File.Source>\n )\n}\n"]}
|