@orval/swr 7.14.0 → 8.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +67 -104
- package/dist/index.js.map +1 -1
- package/package.json +10 -8
package/dist/index.js
CHANGED
|
@@ -1,31 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var __create = Object.create;
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
11
|
-
key = keys[i];
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
13
|
-
get: ((k) => from[k]).bind(null, key),
|
|
14
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
20
|
-
value: mod,
|
|
21
|
-
enumerable: true
|
|
22
|
-
}) : target, mod));
|
|
23
|
-
|
|
24
|
-
//#endregion
|
|
25
|
-
let __orval_core = require("@orval/core");
|
|
26
|
-
__orval_core = __toESM(__orval_core);
|
|
27
|
-
let __orval_fetch = require("@orval/fetch");
|
|
28
|
-
__orval_fetch = __toESM(__orval_fetch);
|
|
1
|
+
import { GetterPropType, OutputHttpClient, Verbs, camel, generateFormDataAndUrlEncodedFunction, generateMutatorConfig, generateMutatorRequestOptions, generateOptions, generateVerbImports, isSyntheticDefaultImportsAllow, jsDoc, pascal, stringify, toObjectString } from "@orval/core";
|
|
2
|
+
import { fetchResponseTypeName, generateFetchHeader, generateRequestFunction } from "@orval/fetch";
|
|
29
3
|
|
|
30
4
|
//#region src/client.ts
|
|
31
5
|
const AXIOS_DEPENDENCIES = [{
|
|
@@ -43,15 +17,15 @@ const AXIOS_DEPENDENCIES = [{
|
|
|
43
17
|
dependency: "axios"
|
|
44
18
|
}];
|
|
45
19
|
const generateSwrRequestFunction = (verbOptions, options) => {
|
|
46
|
-
return options.context.output.httpClient ===
|
|
20
|
+
return options.context.output.httpClient === OutputHttpClient.AXIOS ? generateAxiosRequestFunction(verbOptions, options) : generateRequestFunction(verbOptions, options);
|
|
47
21
|
};
|
|
48
22
|
const generateAxiosRequestFunction = ({ headers, queryParams, operationName, response, mutator, body, props, verb, formData, formUrlEncoded, override, paramsSerializer }, { route, context }) => {
|
|
49
23
|
const isRequestOptions = override?.requestOptions !== false;
|
|
50
24
|
const isFormData = !override?.formData.disabled;
|
|
51
25
|
const isFormUrlEncoded = override?.formUrlEncoded !== false;
|
|
52
26
|
const isExactOptionalPropertyTypes = !!context.output.tsconfig?.compilerOptions?.exactOptionalPropertyTypes;
|
|
53
|
-
const isSyntheticDefaultImportsAllowed =
|
|
54
|
-
const bodyForm =
|
|
27
|
+
const isSyntheticDefaultImportsAllowed = isSyntheticDefaultImportsAllow(context.output.tsconfig);
|
|
28
|
+
const bodyForm = generateFormDataAndUrlEncodedFunction({
|
|
55
29
|
formData,
|
|
56
30
|
formUrlEncoded,
|
|
57
31
|
body,
|
|
@@ -59,7 +33,7 @@ const generateAxiosRequestFunction = ({ headers, queryParams, operationName, res
|
|
|
59
33
|
isFormUrlEncoded
|
|
60
34
|
});
|
|
61
35
|
if (mutator) {
|
|
62
|
-
const mutatorConfig =
|
|
36
|
+
const mutatorConfig = generateMutatorConfig({
|
|
63
37
|
route,
|
|
64
38
|
body,
|
|
65
39
|
headers,
|
|
@@ -71,8 +45,8 @@ const generateAxiosRequestFunction = ({ headers, queryParams, operationName, res
|
|
|
71
45
|
hasSignal: false,
|
|
72
46
|
isExactOptionalPropertyTypes
|
|
73
47
|
});
|
|
74
|
-
const propsImplementation = mutator?.bodyTypeName && body.definition ?
|
|
75
|
-
const requestOptions = isRequestOptions ?
|
|
48
|
+
const propsImplementation = mutator?.bodyTypeName && body.definition ? toObjectString(props, "implementation").replace(/* @__PURE__ */ new RegExp(`(\\w*):\\s?${body.definition}`), `$1: ${mutator.bodyTypeName}<${body.definition}>`) : toObjectString(props, "implementation");
|
|
49
|
+
const requestOptions = isRequestOptions ? generateMutatorRequestOptions(override?.requestOptions, mutator.hasSecondArg) : "";
|
|
76
50
|
return `export const ${operationName} = (\n ${propsImplementation}\n ${isRequestOptions && mutator.hasSecondArg ? `options${context.output.optionsParamRequired ? "" : "?"}: SecondParameter<typeof ${mutator.name}>` : ""}) => {${bodyForm}
|
|
77
51
|
return ${mutator.name}<${response.definition.success || "unknown"}>(
|
|
78
52
|
${mutatorConfig},
|
|
@@ -80,7 +54,7 @@ const generateAxiosRequestFunction = ({ headers, queryParams, operationName, res
|
|
|
80
54
|
}
|
|
81
55
|
`;
|
|
82
56
|
}
|
|
83
|
-
const options =
|
|
57
|
+
const options = generateOptions({
|
|
84
58
|
route,
|
|
85
59
|
body,
|
|
86
60
|
headers,
|
|
@@ -95,42 +69,42 @@ const generateAxiosRequestFunction = ({ headers, queryParams, operationName, res
|
|
|
95
69
|
isExactOptionalPropertyTypes,
|
|
96
70
|
hasSignal: false
|
|
97
71
|
});
|
|
98
|
-
return `export const ${operationName} = (\n ${
|
|
72
|
+
return `export const ${operationName} = (\n ${toObjectString(props, "implementation")} ${isRequestOptions ? `options?: AxiosRequestConfig\n` : ""} ): Promise<AxiosResponse<${response.definition.success || "unknown"}>> => {${bodyForm}
|
|
99
73
|
return axios${isSyntheticDefaultImportsAllowed ? "" : ".default"}.${verb}(${options});
|
|
100
74
|
}
|
|
101
75
|
`;
|
|
102
76
|
};
|
|
103
77
|
const getSwrRequestOptions = (httpClient, mutator) => {
|
|
104
|
-
if (!mutator) return httpClient ===
|
|
78
|
+
if (!mutator) return httpClient === OutputHttpClient.AXIOS ? "axios?: AxiosRequestConfig" : "fetch?: RequestInit";
|
|
105
79
|
else if (mutator?.hasSecondArg) return `request?: SecondParameter<typeof ${mutator.name}>`;
|
|
106
80
|
else return "";
|
|
107
81
|
};
|
|
108
82
|
const getSwrErrorType = (response, httpClient, mutator) => {
|
|
109
83
|
if (mutator) return mutator.hasErrorType ? `ErrorType<${response.definition.errors || "unknown"}>` : response.definition.errors || "unknown";
|
|
110
|
-
else return `${httpClient ===
|
|
84
|
+
else return `${httpClient === OutputHttpClient.AXIOS ? "AxiosError" : "Promise"}<${response.definition.errors || "unknown"}>`;
|
|
111
85
|
};
|
|
112
86
|
const getSwrRequestSecondArg = (httpClient, mutator) => {
|
|
113
|
-
if (!mutator) return httpClient ===
|
|
87
|
+
if (!mutator) return httpClient === OutputHttpClient.AXIOS ? "axios: axiosOptions" : "fetch: fetchOptions";
|
|
114
88
|
else if (mutator?.hasSecondArg) return "request: requestOptions";
|
|
115
89
|
else return "";
|
|
116
90
|
};
|
|
117
91
|
const getHttpRequestSecondArg = (httpClient, mutator) => {
|
|
118
|
-
if (!mutator) return httpClient ===
|
|
92
|
+
if (!mutator) return httpClient === OutputHttpClient.AXIOS ? `axiosOptions` : `fetchOptions`;
|
|
119
93
|
else if (mutator?.hasSecondArg) return "requestOptions";
|
|
120
94
|
else return "";
|
|
121
95
|
};
|
|
122
96
|
const getSwrMutationFetcherOptionType = (httpClient, mutator) => {
|
|
123
|
-
if (!mutator) return httpClient ===
|
|
97
|
+
if (!mutator) return httpClient === OutputHttpClient.AXIOS ? "AxiosRequestConfig" : "RequestInit";
|
|
124
98
|
else if (mutator.hasSecondArg) return `SecondParameter<typeof ${mutator.name}>`;
|
|
125
99
|
else return "";
|
|
126
100
|
};
|
|
127
101
|
const getSwrMutationFetcherType = (response, httpClient, includeHttpResponseReturnType, operationName, mutator) => {
|
|
128
|
-
if (httpClient ===
|
|
102
|
+
if (httpClient === OutputHttpClient.FETCH) return `Promise<${fetchResponseTypeName(includeHttpResponseReturnType, response.definition.success, operationName)}>`;
|
|
129
103
|
else if (mutator) return `Promise<${response.definition.success || "unknown"}>`;
|
|
130
104
|
else return `Promise<AxiosResponse<${response.definition.success || "unknown"}>>`;
|
|
131
105
|
};
|
|
132
106
|
const getSwrHeader = (params) => {
|
|
133
|
-
return params.output.httpClient ===
|
|
107
|
+
return params.output.httpClient === OutputHttpClient.FETCH ? generateFetchHeader(params) : "";
|
|
134
108
|
};
|
|
135
109
|
|
|
136
110
|
//#endregion
|
|
@@ -182,7 +156,7 @@ const SWR_MUTATION_DEPENDENCIES = [{
|
|
|
182
156
|
dependency: "swr/mutation"
|
|
183
157
|
}];
|
|
184
158
|
const getSwrDependencies = (hasGlobalMutator, hasParamsSerializerOptions, _packageJson, httpClient) => [
|
|
185
|
-
...!hasGlobalMutator && httpClient ===
|
|
159
|
+
...!hasGlobalMutator && httpClient === OutputHttpClient.AXIOS ? AXIOS_DEPENDENCIES : [],
|
|
186
160
|
...hasParamsSerializerOptions ? PARAMS_SERIALIZER_DEPENDENCIES : [],
|
|
187
161
|
...SWR_DEPENDENCIES,
|
|
188
162
|
...SWR_INFINITE_DEPENDENCIES,
|
|
@@ -199,20 +173,20 @@ const generateSwrMutationArguments = ({ operationName, isRequestOptions, mutator
|
|
|
199
173
|
return `options?: { swr?:${definition}, ${getSwrRequestOptions(httpClient, mutator)}}\n`;
|
|
200
174
|
};
|
|
201
175
|
const generateSwrImplementation = ({ operationName, swrKeyFnName, swrKeyLoaderFnName, swrProperties, swrKeyProperties, params, mutator, isRequestOptions, response, swrOptions, props, doc, httpClient }) => {
|
|
202
|
-
const swrProps =
|
|
176
|
+
const swrProps = toObjectString(props, "implementation");
|
|
203
177
|
const queryResultVarName = props.some((prop) => prop.name === "query") ? "_query" : "query";
|
|
204
178
|
const httpFunctionProps = swrProperties;
|
|
205
|
-
const enabledImplementation = `const isEnabled = swrOptions?.enabled !== false${params.length ? ` && !!(${params.map(({ name }) => name).join(" && ")})` : ""}`;
|
|
179
|
+
const enabledImplementation = `const isEnabled = swrOptions?.enabled !== false${params.length > 0 ? ` && !!(${params.map(({ name }) => name).join(" && ")})` : ""}`;
|
|
206
180
|
const swrKeyImplementation = `const swrKey = swrOptions?.swrKey ?? (() => isEnabled ? ${swrKeyFnName}(${swrKeyProperties}) : null);`;
|
|
207
181
|
const swrKeyLoaderImplementation = `const swrKeyLoader = swrOptions?.swrKeyLoader ?? (() => isEnabled ? ${swrKeyLoaderFnName}(${swrKeyProperties}) : null);`;
|
|
208
182
|
const errorType = getSwrErrorType(response, httpClient, mutator);
|
|
209
183
|
const swrRequestSecondArg = getSwrRequestSecondArg(httpClient, mutator);
|
|
210
184
|
const httpRequestSecondArg = getHttpRequestSecondArg(httpClient, mutator);
|
|
211
|
-
|
|
212
|
-
export type ${
|
|
213
|
-
export type ${
|
|
185
|
+
return (swrOptions.useInfinite ? `
|
|
186
|
+
export type ${pascal(operationName)}InfiniteQueryResult = NonNullable<Awaited<ReturnType<typeof ${operationName}>>>
|
|
187
|
+
export type ${pascal(operationName)}InfiniteError = ${errorType}
|
|
214
188
|
|
|
215
|
-
${doc}export const ${
|
|
189
|
+
${doc}export const ${camel(`use-${operationName}-infinite`)} = <TError = ${errorType}>(
|
|
216
190
|
${swrProps} ${generateSwrArguments({
|
|
217
191
|
operationName,
|
|
218
192
|
mutator,
|
|
@@ -227,7 +201,7 @@ ${doc}export const ${(0, __orval_core.camel)(`use-${operationName}-infinite`)} =
|
|
|
227
201
|
const swrFn = () => ${operationName}(${httpFunctionProps}${httpFunctionProps && httpRequestSecondArg ? ", " : ""}${httpRequestSecondArg})
|
|
228
202
|
|
|
229
203
|
const ${queryResultVarName} = useSWRInfinite<Awaited<ReturnType<typeof swrFn>>, TError>(swrKeyLoader, swrFn, ${swrOptions.swrInfiniteOptions ? `{
|
|
230
|
-
${
|
|
204
|
+
${stringify(swrOptions.swrInfiniteOptions)?.slice(1, -1)}
|
|
231
205
|
...swrOptions
|
|
232
206
|
}` : "swrOptions"})
|
|
233
207
|
|
|
@@ -235,12 +209,11 @@ ${doc}export const ${(0, __orval_core.camel)(`use-${operationName}-infinite`)} =
|
|
|
235
209
|
swrKeyLoader,
|
|
236
210
|
...${queryResultVarName}
|
|
237
211
|
}
|
|
238
|
-
}\n` : ""
|
|
239
|
-
|
|
240
|
-
export type ${
|
|
241
|
-
export type ${(0, __orval_core.pascal)(operationName)}QueryError = ${errorType}
|
|
212
|
+
}\n` : "") + `
|
|
213
|
+
export type ${pascal(operationName)}QueryResult = NonNullable<Awaited<ReturnType<typeof ${operationName}>>>
|
|
214
|
+
export type ${pascal(operationName)}QueryError = ${errorType}
|
|
242
215
|
|
|
243
|
-
${doc}export const ${
|
|
216
|
+
${doc}export const ${camel(`use-${operationName}`)} = <TError = ${errorType}>(
|
|
244
217
|
${swrProps} ${generateSwrArguments({
|
|
245
218
|
operationName,
|
|
246
219
|
mutator,
|
|
@@ -255,7 +228,7 @@ ${doc}export const ${(0, __orval_core.camel)(`use-${operationName}`)} = <TError
|
|
|
255
228
|
const swrFn = () => ${operationName}(${httpFunctionProps}${httpFunctionProps && httpRequestSecondArg ? ", " : ""}${httpRequestSecondArg})
|
|
256
229
|
|
|
257
230
|
const ${queryResultVarName} = useSwr<Awaited<ReturnType<typeof swrFn>>, TError>(swrKey, swrFn, ${swrOptions.swrOptions ? `{
|
|
258
|
-
${
|
|
231
|
+
${stringify(swrOptions.swrOptions)?.slice(1, -1)}
|
|
259
232
|
...swrOptions
|
|
260
233
|
}` : "swrOptions"})
|
|
261
234
|
|
|
@@ -264,7 +237,6 @@ ${doc}export const ${(0, __orval_core.camel)(`use-${operationName}`)} = <TError
|
|
|
264
237
|
...${queryResultVarName}
|
|
265
238
|
}
|
|
266
239
|
}\n`;
|
|
267
|
-
return useSWRInfiniteImplementation + useSwrImplementation;
|
|
268
240
|
};
|
|
269
241
|
const generateSwrMutationImplementation = ({ isRequestOptions, operationName, swrKeyFnName, swrMutationFetcherName, swrKeyProperties, swrMutationFetcherProperties, swrProps, props, response, mutator, swrOptions, doc, swrBodyType, httpClient, verb }) => {
|
|
270
242
|
const queryResultVarName = props.some((prop) => prop.name === "query") ? "_query" : "query";
|
|
@@ -273,10 +245,10 @@ const generateSwrMutationImplementation = ({ isRequestOptions, operationName, sw
|
|
|
273
245
|
const swrRequestSecondArg = getSwrRequestSecondArg(httpClient, mutator);
|
|
274
246
|
const httpRequestSecondArg = getHttpRequestSecondArg(httpClient, mutator);
|
|
275
247
|
return `
|
|
276
|
-
export type ${
|
|
277
|
-
export type ${
|
|
248
|
+
export type ${pascal(operationName)}MutationResult = NonNullable<Awaited<ReturnType<typeof ${operationName}>>>
|
|
249
|
+
export type ${pascal(operationName)}MutationError = ${errorType}
|
|
278
250
|
|
|
279
|
-
${doc}export const ${
|
|
251
|
+
${doc}export const ${camel(`use-${operationName}${verb === Verbs.GET ? "-mutation" : ""}`)} = <TError = ${errorType}>(
|
|
280
252
|
${swrProps} ${generateSwrMutationArguments({
|
|
281
253
|
operationName,
|
|
282
254
|
isRequestOptions,
|
|
@@ -291,7 +263,7 @@ ${doc}export const ${(0, __orval_core.camel)(`use-${operationName}${verb === __o
|
|
|
291
263
|
const swrFn = ${swrMutationFetcherName}(${swrMutationFetcherProperties}${swrMutationFetcherProperties && httpRequestSecondArg ? ", " : ""}${httpRequestSecondArg});
|
|
292
264
|
|
|
293
265
|
const ${queryResultVarName} = useSWRMutation(swrKey, swrFn, ${swrOptions.swrMutationOptions ? `{
|
|
294
|
-
${
|
|
266
|
+
${stringify(swrOptions.swrMutationOptions)?.slice(1, -1)}
|
|
295
267
|
...swrOptions
|
|
296
268
|
}` : "swrOptions"})
|
|
297
269
|
|
|
@@ -304,36 +276,34 @@ ${doc}export const ${(0, __orval_core.camel)(`use-${operationName}${verb === __o
|
|
|
304
276
|
const generateSwrHook = ({ queryParams, operationName, body, props, verb, params, override, mutator, response, summary, deprecated }, { route, context }) => {
|
|
305
277
|
const isRequestOptions = override?.requestOptions !== false;
|
|
306
278
|
const httpClient = context.output.httpClient;
|
|
307
|
-
const doc =
|
|
279
|
+
const doc = jsDoc({
|
|
308
280
|
summary,
|
|
309
281
|
deprecated
|
|
310
282
|
});
|
|
311
|
-
const queryKeyProps =
|
|
312
|
-
const swrProps =
|
|
313
|
-
const swrMutationFetcherProperties = props.filter((prop) => prop.type ===
|
|
314
|
-
|
|
315
|
-
else return param.name;
|
|
283
|
+
const queryKeyProps = toObjectString(props.filter((prop) => prop.type === GetterPropType.PARAM || prop.type === GetterPropType.NAMED_PATH_PARAMS || prop.type === GetterPropType.QUERY_PARAM), "implementation");
|
|
284
|
+
const swrProps = toObjectString(props.filter((prop) => prop.type === GetterPropType.PARAM || prop.type === GetterPropType.QUERY_PARAM || prop.type === GetterPropType.NAMED_PATH_PARAMS), "implementation");
|
|
285
|
+
const swrMutationFetcherProperties = props.filter((prop) => prop.type === GetterPropType.PARAM || prop.type === GetterPropType.QUERY_PARAM || prop.type === GetterPropType.NAMED_PATH_PARAMS).map((param) => {
|
|
286
|
+
return param.type === GetterPropType.NAMED_PATH_PARAMS ? param.destructured : param.name;
|
|
316
287
|
}).join(",");
|
|
317
|
-
const swrKeyProperties = props.filter((prop) => prop.type ===
|
|
318
|
-
|
|
319
|
-
else return prop.name;
|
|
288
|
+
const swrKeyProperties = props.filter((prop) => prop.type === GetterPropType.PARAM || prop.type === GetterPropType.NAMED_PATH_PARAMS || prop.type === GetterPropType.QUERY_PARAM).map((prop) => {
|
|
289
|
+
return prop.type === GetterPropType.NAMED_PATH_PARAMS ? prop.destructured : prop.name;
|
|
320
290
|
}).join(",");
|
|
321
|
-
const swrMutationFetcherName =
|
|
322
|
-
if (verb ===
|
|
323
|
-
const swrKeyProperties$1 = props.filter((prop) => prop.type !==
|
|
324
|
-
if (param.type ===
|
|
325
|
-
return param.type ===
|
|
291
|
+
const swrMutationFetcherName = camel(`get-${operationName}-mutation-fetcher`);
|
|
292
|
+
if (verb === Verbs.GET) {
|
|
293
|
+
const swrKeyProperties$1 = props.filter((prop) => prop.type !== GetterPropType.HEADER).map((param) => {
|
|
294
|
+
if (param.type === GetterPropType.NAMED_PATH_PARAMS) return param.destructured;
|
|
295
|
+
return param.type === GetterPropType.BODY ? body.implementation : param.name;
|
|
326
296
|
}).join(",");
|
|
327
297
|
const swrProperties = props.map((param) => {
|
|
328
|
-
if (param.type ===
|
|
329
|
-
return param.type ===
|
|
298
|
+
if (param.type === GetterPropType.NAMED_PATH_PARAMS) return param.destructured;
|
|
299
|
+
return param.type === GetterPropType.BODY ? body.implementation : param.name;
|
|
330
300
|
}).join(",");
|
|
331
|
-
const queryKeyProps$1 =
|
|
332
|
-
const swrKeyFnName =
|
|
301
|
+
const queryKeyProps$1 = toObjectString(props.filter((prop) => prop.type !== GetterPropType.HEADER), "implementation");
|
|
302
|
+
const swrKeyFnName = camel(`get-${operationName}-key`);
|
|
333
303
|
const swrKeyFn = `
|
|
334
304
|
export const ${swrKeyFnName} = (${queryKeyProps$1}) => [\`${route}\`${queryParams ? ", ...(params ? [params]: [])" : ""}] as const;
|
|
335
305
|
`;
|
|
336
|
-
const swrKeyLoaderFnName =
|
|
306
|
+
const swrKeyLoaderFnName = camel(`get-${operationName}-infinite-key-loader`);
|
|
337
307
|
const swrKeyLoader = override.swr.useInfinite ? `export const ${swrKeyLoaderFnName} = (${queryKeyProps$1}) => {
|
|
338
308
|
return (page: number, previousPageData: Awaited<ReturnType<typeof ${operationName}>>) => {
|
|
339
309
|
if (previousPageData && !previousPageData.data) return null
|
|
@@ -357,9 +327,8 @@ export const ${swrKeyFnName} = (${queryKeyProps$1}) => [\`${route}\`${queryParam
|
|
|
357
327
|
httpClient
|
|
358
328
|
});
|
|
359
329
|
if (!override.swr.useSWRMutationForGet) return swrKeyFn + swrKeyLoader + swrImplementation;
|
|
360
|
-
const httpFnPropertiesForGet = props.filter((prop) => prop.type !==
|
|
361
|
-
|
|
362
|
-
else return prop.name;
|
|
330
|
+
const httpFnPropertiesForGet = props.filter((prop) => prop.type !== GetterPropType.HEADER).map((prop) => {
|
|
331
|
+
return prop.type === GetterPropType.NAMED_PATH_PARAMS ? prop.destructured : prop.name;
|
|
363
332
|
}).join(", ");
|
|
364
333
|
const swrMutationFetcherType = getSwrMutationFetcherType(response, httpClient, override.fetch?.includeHttpResponseReturnType, operationName, mutator);
|
|
365
334
|
const swrMutationFetcherOptionType = getSwrMutationFetcherOptionType(httpClient, mutator);
|
|
@@ -367,7 +336,7 @@ export const ${swrKeyFnName} = (${queryKeyProps$1}) => [\`${route}\`${queryParam
|
|
|
367
336
|
const swrMutationFetcherFn = `
|
|
368
337
|
export const ${swrMutationFetcherName} = (${queryKeyProps$1} ${swrMutationFetcherOptions}) => {
|
|
369
338
|
return (_: Key, __: { arg?: never }): ${swrMutationFetcherType} => {
|
|
370
|
-
return ${operationName}(${httpFnPropertiesForGet}${swrMutationFetcherOptions.length ? (httpFnPropertiesForGet.length ? ", " : "") + "options" : ""});
|
|
339
|
+
return ${operationName}(${httpFnPropertiesForGet}${swrMutationFetcherOptions.length > 0 ? (httpFnPropertiesForGet.length > 0 ? ", " : "") + "options" : ""});
|
|
371
340
|
}
|
|
372
341
|
}
|
|
373
342
|
`;
|
|
@@ -386,27 +355,27 @@ export const ${swrMutationFetcherName} = (${queryKeyProps$1} ${swrMutationFetche
|
|
|
386
355
|
doc,
|
|
387
356
|
swrBodyType: "never",
|
|
388
357
|
httpClient,
|
|
389
|
-
verb:
|
|
358
|
+
verb: Verbs.GET
|
|
390
359
|
});
|
|
391
360
|
return swrKeyFn + swrKeyLoader + swrImplementation + swrMutationFetcherFn + swrMutationImplementation;
|
|
392
361
|
} else {
|
|
393
|
-
const httpFnProperties = props.filter((prop) => prop.type !==
|
|
394
|
-
if (prop.type ===
|
|
395
|
-
else if (prop.type ===
|
|
362
|
+
const httpFnProperties = props.filter((prop) => prop.type !== GetterPropType.HEADER).map((prop) => {
|
|
363
|
+
if (prop.type === GetterPropType.NAMED_PATH_PARAMS) return prop.destructured;
|
|
364
|
+
else if (prop.type === GetterPropType.BODY) return `arg`;
|
|
396
365
|
else return prop.name;
|
|
397
366
|
}).join(", ");
|
|
398
|
-
const swrKeyFnName =
|
|
367
|
+
const swrKeyFnName = camel(`get-${operationName}-mutation-key`);
|
|
399
368
|
const swrMutationKeyFn = `export const ${swrKeyFnName} = (${queryKeyProps}) => [\`${route}\`${queryParams ? ", ...(params ? [params]: [])" : ""}] as const;
|
|
400
369
|
`;
|
|
401
370
|
getSwrMutationFetcherType(response, httpClient, override.fetch?.includeHttpResponseReturnType, operationName, mutator);
|
|
402
371
|
const swrMutationFetcherOptionType = getSwrMutationFetcherOptionType(httpClient, mutator);
|
|
403
372
|
const swrMutationFetcherOptions = isRequestOptions && swrMutationFetcherOptionType ? `options${context.output.optionsParamRequired ? "" : "?"}: ${swrMutationFetcherOptionType}` : "";
|
|
404
|
-
const swrMutationFetcherArg = props.some((prop) => prop.type ===
|
|
405
|
-
const swrBodyType = props.find((prop) => prop.type ===
|
|
373
|
+
const swrMutationFetcherArg = props.some((prop) => prop.type === GetterPropType.BODY) ? "{ arg }" : "__";
|
|
374
|
+
const swrBodyType = props.find((prop) => prop.type === GetterPropType.BODY)?.implementation.split(": ")[1] ?? "Arguments";
|
|
406
375
|
const swrMutationFetcherFn = `
|
|
407
376
|
export const ${swrMutationFetcherName} = (${swrProps} ${swrMutationFetcherOptions}) => {
|
|
408
377
|
return (_: Key, ${swrMutationFetcherArg}: { arg: ${swrBodyType} }) => {
|
|
409
|
-
return ${operationName}(${httpFnProperties}${swrMutationFetcherOptions.length ? (httpFnProperties.length ? ", " : "") + "options" : ""});
|
|
378
|
+
return ${operationName}(${httpFnProperties}${swrMutationFetcherOptions.length > 0 ? (httpFnProperties.length > 0 ? ", " : "") + "options" : ""});
|
|
410
379
|
}
|
|
411
380
|
}\n`;
|
|
412
381
|
const swrImplementation = generateSwrMutationImplementation({
|
|
@@ -429,17 +398,15 @@ export const ${swrMutationFetcherName} = (${swrProps} ${swrMutationFetcherOption
|
|
|
429
398
|
}
|
|
430
399
|
};
|
|
431
400
|
const generateSwrHeader = (params) => `
|
|
432
|
-
${
|
|
433
|
-
type Awaited<O> = O extends AwaitedInput<infer T> ? T : never;\n\n`
|
|
401
|
+
${params.hasAwaitedType ? "" : `type AwaitedInput<T> = PromiseLike<T> | T;\n
|
|
402
|
+
type Awaited<O> = O extends AwaitedInput<infer T> ? T : never;\n\n`}
|
|
434
403
|
${params.isRequestOptions && params.isMutator ? `type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\n` : ""}
|
|
435
404
|
${getSwrHeader(params)}
|
|
436
405
|
`;
|
|
437
406
|
const generateSwr = (verbOptions, options) => {
|
|
438
|
-
const imports =
|
|
439
|
-
const functionImplementation = generateSwrRequestFunction(verbOptions, options);
|
|
440
|
-
const hookImplementation = generateSwrHook(verbOptions, options);
|
|
407
|
+
const imports = generateVerbImports(verbOptions);
|
|
441
408
|
return {
|
|
442
|
-
implementation: `${
|
|
409
|
+
implementation: `${generateSwrRequestFunction(verbOptions, options)}\n\n${generateSwrHook(verbOptions, options)}`,
|
|
443
410
|
imports
|
|
444
411
|
};
|
|
445
412
|
};
|
|
@@ -452,9 +419,5 @@ const builder = () => () => swrClientBuilder;
|
|
|
452
419
|
var src_default = builder;
|
|
453
420
|
|
|
454
421
|
//#endregion
|
|
455
|
-
|
|
456
|
-
exports.default = src_default;
|
|
457
|
-
exports.generateSwr = generateSwr;
|
|
458
|
-
exports.generateSwrHeader = generateSwrHeader;
|
|
459
|
-
exports.getSwrDependencies = getSwrDependencies;
|
|
422
|
+
export { builder, src_default as default, generateSwr, generateSwrHeader, getSwrDependencies };
|
|
460
423
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["AXIOS_DEPENDENCIES: GeneratorDependency[]","OutputHttpClient","getSwrHeader: ClientHeaderBuilder","PARAMS_SERIALIZER_DEPENDENCIES: GeneratorDependency[]","SWR_DEPENDENCIES: GeneratorDependency[]","SWR_INFINITE_DEPENDENCIES: GeneratorDependency[]","SWR_MUTATION_DEPENDENCIES: GeneratorDependency[]","getSwrDependencies: ClientDependenciesBuilder","OutputHttpClient","Verbs","GetterPropType","swrKeyProperties","queryKeyProps","generateSwrHeader: ClientHeaderBuilder","generateSwr: ClientBuilder","swrClientBuilder: ClientGeneratorsBuilder"],"sources":["../src/client.ts","../src/index.ts"],"sourcesContent":["import {\n ClientHeaderBuilder,\n generateFormDataAndUrlEncodedFunction,\n generateMutatorConfig,\n generateMutatorRequestOptions,\n generateOptions,\n GeneratorDependency,\n GeneratorMutator,\n GeneratorOptions,\n GeneratorVerbOptions,\n GetterResponse,\n isSyntheticDefaultImportsAllow,\n OutputHttpClient,\n toObjectString,\n} from '@orval/core';\nimport {\n fetchResponseTypeName,\n generateFetchHeader,\n generateRequestFunction as generateFetchRequestFunction,\n} from '@orval/fetch';\n\nexport const AXIOS_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n {\n name: 'axios',\n default: true,\n values: true,\n syntheticDefaultImport: true,\n },\n { name: 'AxiosRequestConfig' },\n { name: 'AxiosResponse' },\n { name: 'AxiosError' },\n ],\n dependency: 'axios',\n },\n];\n\nexport const generateSwrRequestFunction = (\n verbOptions: GeneratorVerbOptions,\n options: GeneratorOptions,\n) => {\n return options.context.output.httpClient === OutputHttpClient.AXIOS\n ? generateAxiosRequestFunction(verbOptions, options)\n : generateFetchRequestFunction(verbOptions, options);\n};\n\nconst generateAxiosRequestFunction = (\n {\n headers,\n queryParams,\n operationName,\n response,\n mutator,\n body,\n props,\n verb,\n formData,\n formUrlEncoded,\n override,\n paramsSerializer,\n }: GeneratorVerbOptions,\n { route, context }: GeneratorOptions,\n) => {\n const isRequestOptions = override?.requestOptions !== false;\n const isFormData = !override?.formData.disabled;\n const isFormUrlEncoded = override?.formUrlEncoded !== false;\n const isExactOptionalPropertyTypes =\n !!context.output.tsconfig?.compilerOptions?.exactOptionalPropertyTypes;\n const isSyntheticDefaultImportsAllowed = isSyntheticDefaultImportsAllow(\n context.output.tsconfig,\n );\n\n const bodyForm = generateFormDataAndUrlEncodedFunction({\n formData,\n formUrlEncoded,\n body,\n isFormData,\n isFormUrlEncoded,\n });\n\n if (mutator) {\n const mutatorConfig = generateMutatorConfig({\n route,\n body,\n headers,\n queryParams,\n response,\n verb,\n isFormData,\n isFormUrlEncoded,\n hasSignal: false,\n isExactOptionalPropertyTypes,\n });\n\n const propsImplementation =\n mutator?.bodyTypeName && body.definition\n ? toObjectString(props, 'implementation').replace(\n new RegExp(`(\\\\w*):\\\\s?${body.definition}`),\n `$1: ${mutator.bodyTypeName}<${body.definition}>`,\n )\n : toObjectString(props, 'implementation');\n\n const requestOptions = isRequestOptions\n ? generateMutatorRequestOptions(\n override?.requestOptions,\n mutator.hasSecondArg,\n )\n : '';\n\n const requestImplementation = `export const ${operationName} = (\\n ${propsImplementation}\\n ${\n isRequestOptions && mutator.hasSecondArg\n ? `options${context.output.optionsParamRequired ? '' : '?'}: SecondParameter<typeof ${mutator.name}>`\n : ''\n }) => {${bodyForm}\n return ${mutator.name}<${response.definition.success || 'unknown'}>(\n ${mutatorConfig},\n ${requestOptions});\n }\n`;\n\n return requestImplementation;\n }\n\n const options = generateOptions({\n route,\n body,\n headers,\n queryParams,\n response,\n verb,\n requestOptions: override?.requestOptions,\n isFormData,\n isFormUrlEncoded,\n paramsSerializer,\n paramsSerializerOptions: override?.paramsSerializerOptions,\n isExactOptionalPropertyTypes,\n hasSignal: false,\n });\n\n return `export const ${operationName} = (\\n ${toObjectString(\n props,\n 'implementation',\n )} ${\n isRequestOptions ? `options?: AxiosRequestConfig\\n` : ''\n } ): Promise<AxiosResponse<${\n response.definition.success || 'unknown'\n }>> => {${bodyForm}\n return axios${\n isSyntheticDefaultImportsAllowed ? '' : '.default'\n }.${verb}(${options});\n }\n`;\n};\n\nexport const getSwrRequestOptions = (\n httpClient: OutputHttpClient,\n mutator?: GeneratorMutator,\n) => {\n if (!mutator) {\n return httpClient === OutputHttpClient.AXIOS\n ? 'axios?: AxiosRequestConfig'\n : 'fetch?: RequestInit';\n } else if (mutator?.hasSecondArg) {\n return `request?: SecondParameter<typeof ${mutator.name}>`;\n } else {\n return '';\n }\n};\n\nexport const getSwrErrorType = (\n response: GetterResponse,\n httpClient: OutputHttpClient,\n mutator?: GeneratorMutator,\n) => {\n if (mutator) {\n return mutator.hasErrorType\n ? `ErrorType<${response.definition.errors || 'unknown'}>`\n : response.definition.errors || 'unknown';\n } else {\n const errorType =\n httpClient === OutputHttpClient.AXIOS ? 'AxiosError' : 'Promise';\n\n return `${errorType}<${response.definition.errors || 'unknown'}>`;\n }\n};\n\nexport const getSwrRequestSecondArg = (\n httpClient: OutputHttpClient,\n mutator?: GeneratorMutator,\n) => {\n if (!mutator) {\n return httpClient === OutputHttpClient.AXIOS\n ? 'axios: axiosOptions'\n : 'fetch: fetchOptions';\n } else if (mutator?.hasSecondArg) {\n return 'request: requestOptions';\n } else {\n return '';\n }\n};\n\nexport const getHttpRequestSecondArg = (\n httpClient: OutputHttpClient,\n mutator?: GeneratorMutator,\n) => {\n if (!mutator) {\n return httpClient === OutputHttpClient.AXIOS\n ? `axiosOptions`\n : `fetchOptions`;\n } else if (mutator?.hasSecondArg) {\n return 'requestOptions';\n } else {\n return '';\n }\n};\n\nexport const getSwrMutationFetcherOptionType = (\n httpClient: OutputHttpClient,\n mutator?: GeneratorMutator,\n) => {\n if (!mutator) {\n return httpClient === OutputHttpClient.AXIOS\n ? 'AxiosRequestConfig'\n : 'RequestInit';\n } else if (mutator.hasSecondArg) {\n return `SecondParameter<typeof ${mutator.name}>`;\n } else {\n return '';\n }\n};\n\nexport const getSwrMutationFetcherType = (\n response: GetterResponse,\n httpClient: OutputHttpClient,\n includeHttpResponseReturnType: boolean | undefined,\n operationName: string,\n mutator?: GeneratorMutator,\n) => {\n if (httpClient === OutputHttpClient.FETCH) {\n const responseType = fetchResponseTypeName(\n includeHttpResponseReturnType,\n response.definition.success,\n operationName,\n );\n\n return `Promise<${responseType}>`;\n } else if (mutator) {\n return `Promise<${response.definition.success || 'unknown'}>`;\n } else {\n return `Promise<AxiosResponse<${response.definition.success || 'unknown'}>>`;\n }\n};\n\nexport const getSwrHeader: ClientHeaderBuilder = (params) => {\n return params.output.httpClient === OutputHttpClient.FETCH\n ? generateFetchHeader(params)\n : '';\n};\n","import {\n camel,\n ClientBuilder,\n ClientDependenciesBuilder,\n ClientGeneratorsBuilder,\n ClientHeaderBuilder,\n generateVerbImports,\n GeneratorDependency,\n GeneratorMutator,\n GeneratorOptions,\n GeneratorVerbOptions,\n GetterParams,\n GetterProp,\n GetterProps,\n GetterPropType,\n GetterResponse,\n pascal,\n stringify,\n toObjectString,\n Verbs,\n jsDoc,\n SwrOptions,\n OutputHttpClient,\n} from '@orval/core';\nimport {\n AXIOS_DEPENDENCIES,\n generateSwrRequestFunction,\n getSwrRequestOptions,\n getSwrErrorType,\n getSwrRequestSecondArg,\n getHttpRequestSecondArg,\n getSwrMutationFetcherOptionType,\n getSwrHeader,\n getSwrMutationFetcherType,\n} from './client';\n\nconst PARAMS_SERIALIZER_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n {\n name: 'qs',\n default: true,\n values: true,\n syntheticDefaultImport: true,\n },\n ],\n dependency: 'qs',\n },\n];\n\nconst SWR_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n { name: 'useSwr', values: true, default: true },\n { name: 'SWRConfiguration' },\n { name: 'Key' },\n { name: 'Arguments' },\n ],\n dependency: 'swr',\n },\n];\n\nconst SWR_INFINITE_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n { name: 'useSWRInfinite', values: true, default: true },\n { name: 'SWRInfiniteConfiguration' },\n { name: 'SWRInfiniteKeyLoader' },\n ],\n dependency: 'swr/infinite',\n },\n];\n\nconst SWR_MUTATION_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n { name: 'useSWRMutation', values: true, default: true },\n { name: 'SWRMutationConfiguration' },\n { name: 'SWRMutationKey' },\n ],\n dependency: 'swr/mutation',\n },\n];\n\nexport const getSwrDependencies: ClientDependenciesBuilder = (\n hasGlobalMutator: boolean,\n hasParamsSerializerOptions: boolean,\n _packageJson,\n httpClient?: OutputHttpClient,\n) => [\n ...(!hasGlobalMutator && httpClient === OutputHttpClient.AXIOS\n ? AXIOS_DEPENDENCIES\n : []),\n ...(hasParamsSerializerOptions ? PARAMS_SERIALIZER_DEPENDENCIES : []),\n ...SWR_DEPENDENCIES,\n ...SWR_INFINITE_DEPENDENCIES,\n ...SWR_MUTATION_DEPENDENCIES,\n];\n\nconst generateSwrArguments = ({\n operationName,\n mutator,\n isRequestOptions,\n isInfinite,\n httpClient,\n}: {\n operationName: string;\n mutator?: GeneratorMutator;\n isRequestOptions: boolean;\n isInfinite: boolean;\n httpClient: OutputHttpClient;\n}) => {\n const configType = isInfinite\n ? 'SWRInfiniteConfiguration'\n : 'SWRConfiguration';\n const optionsType = isInfinite\n ? '{ swrKeyLoader?: SWRInfiniteKeyLoader, enabled?: boolean }'\n : '{ swrKey?: Key, enabled?: boolean }';\n const definition = `${configType}<Awaited<ReturnType<typeof ${operationName}>>, TError> & ${optionsType}`;\n\n if (!isRequestOptions) {\n return `swrOptions?: ${definition}`;\n }\n\n return `options?: { swr?:${definition}, ${getSwrRequestOptions(httpClient, mutator)} }\\n`;\n};\n\nconst generateSwrMutationArguments = ({\n operationName,\n isRequestOptions,\n mutator,\n swrBodyType,\n httpClient,\n}: {\n operationName: string;\n isRequestOptions: boolean;\n mutator?: GeneratorMutator;\n swrBodyType: string;\n httpClient: OutputHttpClient;\n}) => {\n const definition = `SWRMutationConfiguration<Awaited<ReturnType<typeof ${operationName}>>, TError, Key, ${swrBodyType}, Awaited<ReturnType<typeof ${operationName}>>> & { swrKey?: string }`;\n\n if (!isRequestOptions) {\n return `swrOptions?: ${definition}`;\n }\n\n return `options?: { swr?:${definition}, ${getSwrRequestOptions(httpClient, mutator)}}\\n`;\n};\n\nconst generateSwrImplementation = ({\n operationName,\n swrKeyFnName,\n swrKeyLoaderFnName,\n swrProperties,\n swrKeyProperties,\n params,\n mutator,\n isRequestOptions,\n response,\n swrOptions,\n props,\n doc,\n httpClient,\n}: {\n isRequestOptions: boolean;\n operationName: string;\n swrKeyFnName: string;\n swrKeyLoaderFnName: string;\n swrProperties: string;\n swrKeyProperties: string;\n params: GetterParams;\n props: GetterProps;\n response: GetterResponse;\n mutator?: GeneratorMutator;\n swrOptions: SwrOptions;\n doc?: string;\n httpClient: OutputHttpClient;\n}) => {\n const swrProps = toObjectString(props, 'implementation');\n\n const hasParamReservedWord = props.some(\n (prop: GetterProp) => prop.name === 'query',\n );\n const queryResultVarName = hasParamReservedWord ? '_query' : 'query';\n\n const httpFunctionProps = swrProperties;\n\n const enabledImplementation = `const isEnabled = swrOptions?.enabled !== false${\n params.length\n ? ` && !!(${params.map(({ name }) => name).join(' && ')})`\n : ''\n }`;\n const swrKeyImplementation = `const swrKey = swrOptions?.swrKey ?? (() => isEnabled ? ${swrKeyFnName}(${swrKeyProperties}) : null);`;\n const swrKeyLoaderImplementation = `const swrKeyLoader = swrOptions?.swrKeyLoader ?? (() => isEnabled ? ${swrKeyLoaderFnName}(${swrKeyProperties}) : null);`;\n\n const errorType = getSwrErrorType(response, httpClient, mutator);\n const swrRequestSecondArg = getSwrRequestSecondArg(httpClient, mutator);\n const httpRequestSecondArg = getHttpRequestSecondArg(httpClient, mutator);\n\n const useSWRInfiniteImplementation = swrOptions.useInfinite\n ? `\nexport type ${pascal(\n operationName,\n )}InfiniteQueryResult = NonNullable<Awaited<ReturnType<typeof ${operationName}>>>\nexport type ${pascal(operationName)}InfiniteError = ${errorType}\n\n${doc}export const ${camel(\n `use-${operationName}-infinite`,\n )} = <TError = ${errorType}>(\n ${swrProps} ${generateSwrArguments({\n operationName,\n mutator,\n isRequestOptions,\n isInfinite: true,\n httpClient,\n })}) => {\n ${\n isRequestOptions\n ? `const {swr: swrOptions${swrRequestSecondArg ? `, ${swrRequestSecondArg}` : ''}} = options ?? {}`\n : ''\n }\n\n ${enabledImplementation}\n ${swrKeyLoaderImplementation}\n const swrFn = () => ${operationName}(${httpFunctionProps}${\n httpFunctionProps && httpRequestSecondArg ? ', ' : ''\n }${httpRequestSecondArg})\n\n const ${queryResultVarName} = useSWRInfinite<Awaited<ReturnType<typeof swrFn>>, TError>(swrKeyLoader, swrFn, ${\n swrOptions.swrInfiniteOptions\n ? `{\n ${stringify(swrOptions.swrInfiniteOptions)?.slice(1, -1)}\n ...swrOptions\n }`\n : 'swrOptions'\n })\n\n return {\n swrKeyLoader,\n ...${queryResultVarName}\n }\n}\\n`\n : '';\n\n const useSwrImplementation = `\nexport type ${pascal(\n operationName,\n )}QueryResult = NonNullable<Awaited<ReturnType<typeof ${operationName}>>>\nexport type ${pascal(operationName)}QueryError = ${errorType}\n\n${doc}export const ${camel(`use-${operationName}`)} = <TError = ${errorType}>(\n ${swrProps} ${generateSwrArguments({\n operationName,\n mutator,\n isRequestOptions,\n isInfinite: false,\n httpClient,\n })}) => {\n ${\n isRequestOptions\n ? `const {swr: swrOptions${swrRequestSecondArg ? `, ${swrRequestSecondArg}` : ''}} = options ?? {}`\n : ''\n }\n\n ${enabledImplementation}\n ${swrKeyImplementation}\n const swrFn = () => ${operationName}(${httpFunctionProps}${\n httpFunctionProps && httpRequestSecondArg ? ', ' : ''\n }${httpRequestSecondArg})\n\n const ${queryResultVarName} = useSwr<Awaited<ReturnType<typeof swrFn>>, TError>(swrKey, swrFn, ${\n swrOptions.swrOptions\n ? `{\n ${stringify(swrOptions.swrOptions)?.slice(1, -1)}\n ...swrOptions\n }`\n : 'swrOptions'\n })\n\n return {\n swrKey,\n ...${queryResultVarName}\n }\n}\\n`;\n\n return useSWRInfiniteImplementation + useSwrImplementation;\n};\n\nconst generateSwrMutationImplementation = ({\n isRequestOptions,\n operationName,\n swrKeyFnName,\n swrMutationFetcherName,\n swrKeyProperties,\n swrMutationFetcherProperties,\n swrProps,\n props,\n response,\n mutator,\n swrOptions,\n doc,\n swrBodyType,\n httpClient,\n verb,\n}: {\n isRequestOptions: boolean;\n operationName: string;\n swrKeyFnName: string;\n swrMutationFetcherName: string;\n swrKeyProperties: string;\n swrMutationFetcherProperties: string;\n swrProps: string;\n props: GetterProps;\n response: GetterResponse;\n mutator?: GeneratorMutator;\n swrOptions: SwrOptions;\n doc?: string;\n swrBodyType: string;\n httpClient: OutputHttpClient;\n verb?: Verbs;\n}) => {\n const hasParamReservedWord = props.some(\n (prop: GetterProp) => prop.name === 'query',\n );\n const queryResultVarName = hasParamReservedWord ? '_query' : 'query';\n\n const swrKeyImplementation = `const swrKey = swrOptions?.swrKey ?? ${swrKeyFnName}(${swrKeyProperties});`;\n\n const errorType = getSwrErrorType(response, httpClient, mutator);\n const swrRequestSecondArg = getSwrRequestSecondArg(httpClient, mutator);\n const httpRequestSecondArg = getHttpRequestSecondArg(httpClient, mutator);\n\n const useSwrImplementation = `\nexport type ${pascal(\n operationName,\n )}MutationResult = NonNullable<Awaited<ReturnType<typeof ${operationName}>>>\nexport type ${pascal(operationName)}MutationError = ${errorType}\n\n${doc}export const ${camel(`use-${operationName}${verb === Verbs.GET ? '-mutation' : ''}`)} = <TError = ${errorType}>(\n ${swrProps} ${generateSwrMutationArguments({\n operationName,\n isRequestOptions,\n mutator,\n swrBodyType,\n httpClient,\n })}) => {\n\n ${isRequestOptions ? `const {swr: swrOptions${swrRequestSecondArg ? `, ${swrRequestSecondArg}` : ''}} = options ?? {}` : ''}\n\n ${swrKeyImplementation}\n const swrFn = ${swrMutationFetcherName}(${swrMutationFetcherProperties}${\n swrMutationFetcherProperties && httpRequestSecondArg ? ', ' : ''\n }${httpRequestSecondArg});\n\n const ${queryResultVarName} = useSWRMutation(swrKey, swrFn, ${\n swrOptions.swrMutationOptions\n ? `{\n ${stringify(swrOptions.swrMutationOptions)?.slice(1, -1)}\n ...swrOptions\n }`\n : 'swrOptions'\n })\n\n return {\n swrKey,\n ...${queryResultVarName}\n }\n}\\n`;\n\n return useSwrImplementation;\n};\n\nconst generateSwrHook = (\n {\n queryParams,\n operationName,\n body,\n props,\n verb,\n params,\n override,\n mutator,\n response,\n summary,\n deprecated,\n }: GeneratorVerbOptions,\n { route, context }: GeneratorOptions,\n) => {\n const isRequestOptions = override?.requestOptions !== false;\n const httpClient = context.output.httpClient;\n const doc = jsDoc({ summary, deprecated });\n\n const queryKeyProps = toObjectString(\n props.filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS ||\n prop.type === GetterPropType.QUERY_PARAM,\n ),\n 'implementation',\n );\n\n const swrProps = toObjectString(\n props.filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.QUERY_PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS,\n ),\n 'implementation',\n );\n\n const swrMutationFetcherProperties = props\n .filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.QUERY_PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS,\n )\n .map((param) => {\n if (param.type === GetterPropType.NAMED_PATH_PARAMS) {\n return param.destructured;\n } else {\n return param.name;\n }\n })\n .join(',');\n\n const swrKeyProperties = props\n .filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS ||\n prop.type === GetterPropType.QUERY_PARAM,\n )\n .map((prop) => {\n if (prop.type === GetterPropType.NAMED_PATH_PARAMS) {\n return prop.destructured;\n } else {\n return prop.name;\n }\n })\n .join(',');\n\n const swrMutationFetcherName = camel(`get-${operationName}-mutation-fetcher`);\n\n if (verb === Verbs.GET) {\n const swrKeyProperties = props\n .filter((prop) => prop.type !== GetterPropType.HEADER)\n .map((param) => {\n if (param.type === GetterPropType.NAMED_PATH_PARAMS)\n return param.destructured;\n return param.type === GetterPropType.BODY\n ? body.implementation\n : param.name;\n })\n .join(',');\n\n const swrProperties = props\n .map((param) => {\n if (param.type === GetterPropType.NAMED_PATH_PARAMS)\n return param.destructured;\n return param.type === GetterPropType.BODY\n ? body.implementation\n : param.name;\n })\n .join(',');\n\n const queryKeyProps = toObjectString(\n props.filter((prop) => prop.type !== GetterPropType.HEADER),\n 'implementation',\n );\n\n const swrKeyFnName = camel(`get-${operationName}-key`);\n const swrKeyFn = `\nexport const ${swrKeyFnName} = (${queryKeyProps}) => [\\`${route}\\`${\n queryParams ? ', ...(params ? [params]: [])' : ''\n }] as const;\n`;\n\n const swrKeyLoaderFnName = camel(\n `get-${operationName}-infinite-key-loader`,\n );\n const swrKeyLoader = override.swr.useInfinite\n ? `export const ${swrKeyLoaderFnName} = (${queryKeyProps}) => {\n return (page: number, previousPageData: Awaited<ReturnType<typeof ${operationName}>>) => {\n if (previousPageData && !previousPageData.data) return null\n\n return [\\`${route}\\`${queryParams ? ', ...(params ? [{...params,page}]: [{page}])' : ''}${\n body.implementation ? `, ${body.implementation}` : ''\n }] as const;\n }\n}\\n`\n : '';\n\n const swrImplementation = generateSwrImplementation({\n operationName,\n swrKeyFnName,\n swrKeyLoaderFnName,\n swrProperties,\n swrKeyProperties,\n params,\n props,\n mutator,\n isRequestOptions,\n response,\n swrOptions: override.swr,\n doc,\n httpClient,\n });\n\n if (!override.swr.useSWRMutationForGet) {\n return swrKeyFn + swrKeyLoader + swrImplementation;\n }\n\n // For OutputClient.SWR_GET_MUTATION, generate both useSWR and useSWRMutation\n const httpFnPropertiesForGet = props\n .filter((prop) => prop.type !== GetterPropType.HEADER)\n .map((prop) => {\n if (prop.type === GetterPropType.NAMED_PATH_PARAMS) {\n return prop.destructured;\n } else {\n return prop.name;\n }\n })\n .join(', ');\n\n const swrMutationFetcherType = getSwrMutationFetcherType(\n response,\n httpClient,\n override.fetch?.includeHttpResponseReturnType,\n operationName,\n mutator,\n );\n const swrMutationFetcherOptionType = getSwrMutationFetcherOptionType(\n httpClient,\n mutator,\n );\n\n const swrMutationFetcherOptions =\n isRequestOptions && swrMutationFetcherOptionType\n ? `options${context.output.optionsParamRequired ? '' : '?'}: ${swrMutationFetcherOptionType}`\n : '';\n\n const swrMutationFetcherFn = `\nexport const ${swrMutationFetcherName} = (${queryKeyProps} ${swrMutationFetcherOptions}) => {\n return (_: Key, __: { arg?: never }): ${swrMutationFetcherType} => {\n return ${operationName}(${httpFnPropertiesForGet}${\n swrMutationFetcherOptions.length\n ? (httpFnPropertiesForGet.length ? ', ' : '') + 'options'\n : ''\n });\n }\n}\n`;\n\n const swrMutationImplementation = generateSwrMutationImplementation({\n operationName,\n swrKeyFnName,\n swrMutationFetcherName,\n swrKeyProperties,\n swrMutationFetcherProperties,\n swrProps,\n props,\n isRequestOptions,\n response,\n mutator,\n swrOptions: override.swr,\n doc,\n swrBodyType: 'never',\n httpClient,\n verb: Verbs.GET,\n });\n\n return (\n swrKeyFn +\n swrKeyLoader +\n swrImplementation +\n swrMutationFetcherFn +\n swrMutationImplementation\n );\n } else {\n const httpFnProperties = props\n .filter((prop) => prop.type !== GetterPropType.HEADER)\n .map((prop) => {\n if (prop.type === GetterPropType.NAMED_PATH_PARAMS) {\n return prop.destructured;\n } else if (prop.type === GetterPropType.BODY) {\n return `arg`;\n } else {\n return prop.name;\n }\n })\n .join(', ');\n\n const swrKeyFnName = camel(`get-${operationName}-mutation-key`);\n const swrMutationKeyFn = `export const ${swrKeyFnName} = (${queryKeyProps}) => [\\`${route}\\`${\n queryParams ? ', ...(params ? [params]: [])' : ''\n }] as const;\n`;\n\n const swrMutationFetcherType = getSwrMutationFetcherType(\n response,\n httpClient,\n override.fetch?.includeHttpResponseReturnType,\n operationName,\n mutator,\n );\n const swrMutationFetcherOptionType = getSwrMutationFetcherOptionType(\n httpClient,\n mutator,\n );\n\n const swrMutationFetcherOptions =\n isRequestOptions && swrMutationFetcherOptionType\n ? `options${context.output.optionsParamRequired ? '' : '?'}: ${swrMutationFetcherOptionType}`\n : '';\n\n const swrMutationFetcherArg = props.some(\n (prop) => prop.type === GetterPropType.BODY,\n )\n ? '{ arg }'\n : '__';\n\n const swrBodyType =\n props\n .find((prop) => prop.type === GetterPropType.BODY)\n ?.implementation.split(': ')[1] ?? 'Arguments';\n\n const swrMutationFetcherFn = `\nexport const ${swrMutationFetcherName} = (${swrProps} ${swrMutationFetcherOptions}) => {\n return (_: Key, ${swrMutationFetcherArg}: { arg: ${swrBodyType} }) => {\n return ${operationName}(${httpFnProperties}${\n swrMutationFetcherOptions.length\n ? (httpFnProperties.length ? ', ' : '') + 'options'\n : ''\n });\n }\n}\\n`;\n\n const swrImplementation = generateSwrMutationImplementation({\n operationName,\n swrKeyFnName,\n swrMutationFetcherName,\n swrKeyProperties,\n swrMutationFetcherProperties,\n swrProps,\n props,\n isRequestOptions,\n response,\n mutator,\n swrOptions: override.swr,\n doc,\n swrBodyType,\n httpClient: context.output.httpClient,\n });\n\n return swrMutationFetcherFn + swrMutationKeyFn + swrImplementation;\n }\n};\n\nexport const generateSwrHeader: ClientHeaderBuilder = (params) =>\n `\n ${\n !params.hasAwaitedType\n ? `type AwaitedInput<T> = PromiseLike<T> | T;\\n\n type Awaited<O> = O extends AwaitedInput<infer T> ? T : never;\\n\\n`\n : ''\n }\n ${\n params.isRequestOptions && params.isMutator\n ? `type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\\n\\n`\n : ''\n }\n ${getSwrHeader(params)}\n`;\n\nexport const generateSwr: ClientBuilder = (verbOptions, options) => {\n const imports = generateVerbImports(verbOptions);\n const functionImplementation = generateSwrRequestFunction(\n verbOptions,\n options,\n );\n const hookImplementation = generateSwrHook(verbOptions, options);\n\n return {\n implementation: `${functionImplementation}\\n\\n${hookImplementation}`,\n imports,\n };\n};\n\nconst swrClientBuilder: ClientGeneratorsBuilder = {\n client: generateSwr,\n header: generateSwrHeader,\n dependencies: getSwrDependencies,\n};\n\nexport const builder = () => () => swrClientBuilder;\n\nexport default builder;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAaA,qBAA4C,CACvD;CACE,SAAS;EACP;GACE,MAAM;GACN,SAAS;GACT,QAAQ;GACR,wBAAwB;GACzB;EACD,EAAE,MAAM,sBAAsB;EAC9B,EAAE,MAAM,iBAAiB;EACzB,EAAE,MAAM,cAAc;EACvB;CACD,YAAY;CACb,CACF;AAED,MAAa,8BACX,aACA,YACG;AACH,QAAO,QAAQ,QAAQ,OAAO,eAAeC,8BAAiB,QAC1D,6BAA6B,aAAa,QAAQ,8CACrB,aAAa,QAAQ;;AAGxD,MAAM,gCACJ,EACE,SACA,aACA,eACA,UACA,SACA,MACA,OACA,MACA,UACA,gBACA,UACA,oBAEF,EAAE,OAAO,cACN;CACH,MAAM,mBAAmB,UAAU,mBAAmB;CACtD,MAAM,aAAa,CAAC,UAAU,SAAS;CACvC,MAAM,mBAAmB,UAAU,mBAAmB;CACtD,MAAM,+BACJ,CAAC,CAAC,QAAQ,OAAO,UAAU,iBAAiB;CAC9C,MAAM,oFACJ,QAAQ,OAAO,SAChB;CAED,MAAM,mEAAiD;EACrD;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,KAAI,SAAS;EACX,MAAM,wDAAsC;GAC1C;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,WAAW;GACX;GACD,CAAC;EAEF,MAAM,sBACJ,SAAS,gBAAgB,KAAK,8CACX,OAAO,iBAAiB,CAAC,wBACtC,IAAI,OAAO,cAAc,KAAK,aAAa,EAC3C,OAAO,QAAQ,aAAa,GAAG,KAAK,WAAW,GAChD,oCACc,OAAO,iBAAiB;EAE7C,MAAM,iBAAiB,mEAEjB,UAAU,gBACV,QAAQ,aACT,GACD;AAaJ,SAX8B,gBAAgB,cAAc,YAAY,oBAAoB,KAC1F,oBAAoB,QAAQ,eACxB,UAAU,QAAQ,OAAO,uBAAuB,KAAK,IAAI,2BAA2B,QAAQ,KAAK,KACjG,GACL,QAAQ,SAAS;aACT,QAAQ,KAAK,GAAG,SAAS,WAAW,WAAW,UAAU;MAChE,cAAc;MACd,eAAe;;;;CAOnB,MAAM,4CAA0B;EAC9B;EACA;EACA;EACA;EACA;EACA;EACA,gBAAgB,UAAU;EAC1B;EACA;EACA;EACA,yBAAyB,UAAU;EACnC;EACA,WAAW;EACZ,CAAC;AAEF,QAAO,gBAAgB,cAAc,6CACnC,OACA,iBACD,CAAC,GACA,mBAAmB,mCAAmC,GACvD,4BACC,SAAS,WAAW,WAAW,UAChC,SAAS,SAAS;kBAEf,mCAAmC,KAAK,WACzC,GAAG,KAAK,GAAG,QAAQ;;;;AAKxB,MAAa,wBACX,YACA,YACG;AACH,KAAI,CAAC,QACH,QAAO,eAAeA,8BAAiB,QACnC,+BACA;UACK,SAAS,aAClB,QAAO,oCAAoC,QAAQ,KAAK;KAExD,QAAO;;AAIX,MAAa,mBACX,UACA,YACA,YACG;AACH,KAAI,QACF,QAAO,QAAQ,eACX,aAAa,SAAS,WAAW,UAAU,UAAU,KACrD,SAAS,WAAW,UAAU;KAKlC,QAAO,GAFL,eAAeA,8BAAiB,QAAQ,eAAe,UAErC,GAAG,SAAS,WAAW,UAAU,UAAU;;AAInE,MAAa,0BACX,YACA,YACG;AACH,KAAI,CAAC,QACH,QAAO,eAAeA,8BAAiB,QACnC,wBACA;UACK,SAAS,aAClB,QAAO;KAEP,QAAO;;AAIX,MAAa,2BACX,YACA,YACG;AACH,KAAI,CAAC,QACH,QAAO,eAAeA,8BAAiB,QACnC,iBACA;UACK,SAAS,aAClB,QAAO;KAEP,QAAO;;AAIX,MAAa,mCACX,YACA,YACG;AACH,KAAI,CAAC,QACH,QAAO,eAAeA,8BAAiB,QACnC,uBACA;UACK,QAAQ,aACjB,QAAO,0BAA0B,QAAQ,KAAK;KAE9C,QAAO;;AAIX,MAAa,6BACX,UACA,YACA,+BACA,eACA,YACG;AACH,KAAI,eAAeA,8BAAiB,MAOlC,QAAO,oDALL,+BACA,SAAS,WAAW,SACpB,cACD,CAE8B;UACtB,QACT,QAAO,WAAW,SAAS,WAAW,WAAW,UAAU;KAE3D,QAAO,yBAAyB,SAAS,WAAW,WAAW,UAAU;;AAI7E,MAAaC,gBAAqC,WAAW;AAC3D,QAAO,OAAO,OAAO,eAAeD,8BAAiB,+CAC7B,OAAO,GAC3B;;;;;AC7NN,MAAME,iCAAwD,CAC5D;CACE,SAAS,CACP;EACE,MAAM;EACN,SAAS;EACT,QAAQ;EACR,wBAAwB;EACzB,CACF;CACD,YAAY;CACb,CACF;AAED,MAAMC,mBAA0C,CAC9C;CACE,SAAS;EACP;GAAE,MAAM;GAAU,QAAQ;GAAM,SAAS;GAAM;EAC/C,EAAE,MAAM,oBAAoB;EAC5B,EAAE,MAAM,OAAO;EACf,EAAE,MAAM,aAAa;EACtB;CACD,YAAY;CACb,CACF;AAED,MAAMC,4BAAmD,CACvD;CACE,SAAS;EACP;GAAE,MAAM;GAAkB,QAAQ;GAAM,SAAS;GAAM;EACvD,EAAE,MAAM,4BAA4B;EACpC,EAAE,MAAM,wBAAwB;EACjC;CACD,YAAY;CACb,CACF;AAED,MAAMC,4BAAmD,CACvD;CACE,SAAS;EACP;GAAE,MAAM;GAAkB,QAAQ;GAAM,SAAS;GAAM;EACvD,EAAE,MAAM,4BAA4B;EACpC,EAAE,MAAM,kBAAkB;EAC3B;CACD,YAAY;CACb,CACF;AAED,MAAaC,sBACX,kBACA,4BACA,cACA,eACG;CACH,GAAI,CAAC,oBAAoB,eAAeC,8BAAiB,QACrD,qBACA,EAAE;CACN,GAAI,6BAA6B,iCAAiC,EAAE;CACpE,GAAG;CACH,GAAG;CACH,GAAG;CACJ;AAED,MAAM,wBAAwB,EAC5B,eACA,SACA,kBACA,YACA,iBAOI;CAOJ,MAAM,aAAa,GANA,aACf,6BACA,mBAI6B,6BAA6B,cAAc,gBAHxD,aAChB,+DACA;AAGJ,KAAI,CAAC,iBACH,QAAO,gBAAgB;AAGzB,QAAO,oBAAoB,WAAW,IAAI,qBAAqB,YAAY,QAAQ,CAAC;;AAGtF,MAAM,gCAAgC,EACpC,eACA,kBACA,SACA,aACA,iBAOI;CACJ,MAAM,aAAa,sDAAsD,cAAc,mBAAmB,YAAY,8BAA8B,cAAc;AAElK,KAAI,CAAC,iBACH,QAAO,gBAAgB;AAGzB,QAAO,oBAAoB,WAAW,IAAI,qBAAqB,YAAY,QAAQ,CAAC;;AAGtF,MAAM,6BAA6B,EACjC,eACA,cACA,oBACA,eACA,kBACA,QACA,SACA,kBACA,UACA,YACA,OACA,KACA,iBAeI;CACJ,MAAM,4CAA0B,OAAO,iBAAiB;CAKxD,MAAM,qBAHuB,MAAM,MAChC,SAAqB,KAAK,SAAS,QACrC,GACiD,WAAW;CAE7D,MAAM,oBAAoB;CAE1B,MAAM,wBAAwB,kDAC5B,OAAO,SACH,UAAU,OAAO,KAAK,EAAE,WAAW,KAAK,CAAC,KAAK,OAAO,CAAC,KACtD;CAEN,MAAM,uBAAuB,2DAA2D,aAAa,GAAG,iBAAiB;CACzH,MAAM,6BAA6B,uEAAuE,mBAAmB,GAAG,iBAAiB;CAEjJ,MAAM,YAAY,gBAAgB,UAAU,YAAY,QAAQ;CAChE,MAAM,sBAAsB,uBAAuB,YAAY,QAAQ;CACvE,MAAM,uBAAuB,wBAAwB,YAAY,QAAQ;CAEzE,MAAM,+BAA+B,WAAW,cAC5C;uCAEE,cACD,CAAC,8DAA8D,cAAc;uCAC/D,cAAc,CAAC,kBAAkB,UAAU;;EAE9D,IAAI,uCACE,OAAO,cAAc,WACtB,CAAC,eAAe,UAAU;IAC7B,SAAS,GAAG,qBAAqB;EACjC;EACA;EACA;EACA,YAAY;EACZ;EACD,CAAC,CAAC;IAED,mBACI,yBAAyB,sBAAsB,KAAK,wBAAwB,GAAG,qBAC/E,GACL;;IAEC,sBAAsB;IACtB,2BAA2B;wBACP,cAAc,GAAG,oBACrC,qBAAqB,uBAAuB,OAAO,KAClD,qBAAqB;;UAEhB,mBAAmB,oFACzB,WAAW,qBACP;kCACQ,WAAW,mBAAmB,EAAE,MAAM,GAAG,GAAG,CAAC;;OAGrD,aACL;;;;SAIM,mBAAmB;;OAGtB;CAEJ,MAAM,uBAAuB;uCAE3B,cACD,CAAC,sDAAsD,cAAc;uCACnD,cAAc,CAAC,eAAe,UAAU;;EAE3D,IAAI,uCAAqB,OAAO,gBAAgB,CAAC,eAAe,UAAU;IACxE,SAAS,GAAG,qBAAqB;EACjC;EACA;EACA;EACA,YAAY;EACZ;EACD,CAAC,CAAC;IAED,mBACI,yBAAyB,sBAAsB,KAAK,wBAAwB,GAAG,qBAC/E,GACL;;IAEC,sBAAsB;IACtB,qBAAqB;wBACD,cAAc,GAAG,oBACrC,qBAAqB,uBAAuB,OAAO,KAClD,qBAAqB;;UAEhB,mBAAmB,sEACzB,WAAW,aACP;kCACQ,WAAW,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC;;OAG7C,aACL;;;;SAIM,mBAAmB;;;AAI1B,QAAO,+BAA+B;;AAGxC,MAAM,qCAAqC,EACzC,kBACA,eACA,cACA,wBACA,kBACA,8BACA,UACA,OACA,UACA,SACA,YACA,KACA,aACA,YACA,WAiBI;CAIJ,MAAM,qBAHuB,MAAM,MAChC,SAAqB,KAAK,SAAS,QACrC,GACiD,WAAW;CAE7D,MAAM,uBAAuB,wCAAwC,aAAa,GAAG,iBAAiB;CAEtG,MAAM,YAAY,gBAAgB,UAAU,YAAY,QAAQ;CAChE,MAAM,sBAAsB,uBAAuB,YAAY,QAAQ;CACvE,MAAM,uBAAuB,wBAAwB,YAAY,QAAQ;AAuCzE,QArC6B;uCAE3B,cACD,CAAC,yDAAyD,cAAc;uCACtD,cAAc,CAAC,kBAAkB,UAAU;;EAE9D,IAAI,uCAAqB,OAAO,gBAAgB,SAASC,mBAAM,MAAM,cAAc,KAAK,CAAC,eAAe,UAAU;IAChH,SAAS,GAAG,6BAA6B;EACzC;EACA;EACA;EACA;EACA;EACD,CAAC,CAAC;;IAED,mBAAmB,yBAAyB,sBAAsB,KAAK,wBAAwB,GAAG,qBAAqB,GAAG;;IAE1H,qBAAqB;kBACP,uBAAuB,GAAG,+BACxC,gCAAgC,uBAAuB,OAAO,KAC7D,qBAAqB;;UAEhB,mBAAmB,mCACzB,WAAW,qBACP;kCACQ,WAAW,mBAAmB,EAAE,MAAM,GAAG,GAAG,CAAC;;OAGrD,aACL;;;;SAIM,mBAAmB;;;;AAO5B,MAAM,mBACJ,EACE,aACA,eACA,MACA,OACA,MACA,QACA,UACA,SACA,UACA,SACA,cAEF,EAAE,OAAO,cACN;CACH,MAAM,mBAAmB,UAAU,mBAAmB;CACtD,MAAM,aAAa,QAAQ,OAAO;CAClC,MAAM,8BAAY;EAAE;EAAS;EAAY,CAAC;CAE1C,MAAM,iDACJ,MAAM,QACH,SACC,KAAK,SAASC,4BAAe,SAC7B,KAAK,SAASA,4BAAe,qBAC7B,KAAK,SAASA,4BAAe,YAChC,EACD,iBACD;CAED,MAAM,4CACJ,MAAM,QACH,SACC,KAAK,SAASA,4BAAe,SAC7B,KAAK,SAASA,4BAAe,eAC7B,KAAK,SAASA,4BAAe,kBAChC,EACD,iBACD;CAED,MAAM,+BAA+B,MAClC,QACE,SACC,KAAK,SAASA,4BAAe,SAC7B,KAAK,SAASA,4BAAe,eAC7B,KAAK,SAASA,4BAAe,kBAChC,CACA,KAAK,UAAU;AACd,MAAI,MAAM,SAASA,4BAAe,kBAChC,QAAO,MAAM;MAEb,QAAO,MAAM;GAEf,CACD,KAAK,IAAI;CAEZ,MAAM,mBAAmB,MACtB,QACE,SACC,KAAK,SAASA,4BAAe,SAC7B,KAAK,SAASA,4BAAe,qBAC7B,KAAK,SAASA,4BAAe,YAChC,CACA,KAAK,SAAS;AACb,MAAI,KAAK,SAASA,4BAAe,kBAC/B,QAAO,KAAK;MAEZ,QAAO,KAAK;GAEd,CACD,KAAK,IAAI;CAEZ,MAAM,iDAA+B,OAAO,cAAc,mBAAmB;AAE7E,KAAI,SAASD,mBAAM,KAAK;EACtB,MAAME,qBAAmB,MACtB,QAAQ,SAAS,KAAK,SAASD,4BAAe,OAAO,CACrD,KAAK,UAAU;AACd,OAAI,MAAM,SAASA,4BAAe,kBAChC,QAAO,MAAM;AACf,UAAO,MAAM,SAASA,4BAAe,OACjC,KAAK,iBACL,MAAM;IACV,CACD,KAAK,IAAI;EAEZ,MAAM,gBAAgB,MACnB,KAAK,UAAU;AACd,OAAI,MAAM,SAASA,4BAAe,kBAChC,QAAO,MAAM;AACf,UAAO,MAAM,SAASA,4BAAe,OACjC,KAAK,iBACL,MAAM;IACV,CACD,KAAK,IAAI;EAEZ,MAAME,mDACJ,MAAM,QAAQ,SAAS,KAAK,SAASF,4BAAe,OAAO,EAC3D,iBACD;EAED,MAAM,uCAAqB,OAAO,cAAc,MAAM;EACtD,MAAM,WAAW;eACN,aAAa,MAAME,gBAAc,UAAU,MAAM,IAC1D,cAAc,iCAAiC,GAChD;;EAGD,MAAM,6CACJ,OAAO,cAAc,sBACtB;EACD,MAAM,eAAe,SAAS,IAAI,cAC9B,gBAAgB,mBAAmB,MAAMA,gBAAc;sEACO,cAAc;;;gBAGpE,MAAM,IAAI,cAAc,iDAAiD,KACnF,KAAK,iBAAiB,KAAK,KAAK,mBAAmB,GACpD;;OAGG;EAEJ,MAAM,oBAAoB,0BAA0B;GAClD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,YAAY,SAAS;GACrB;GACA;GACD,CAAC;AAEF,MAAI,CAAC,SAAS,IAAI,qBAChB,QAAO,WAAW,eAAe;EAInC,MAAM,yBAAyB,MAC5B,QAAQ,SAAS,KAAK,SAASF,4BAAe,OAAO,CACrD,KAAK,SAAS;AACb,OAAI,KAAK,SAASA,4BAAe,kBAC/B,QAAO,KAAK;OAEZ,QAAO,KAAK;IAEd,CACD,KAAK,KAAK;EAEb,MAAM,yBAAyB,0BAC7B,UACA,YACA,SAAS,OAAO,+BAChB,eACA,QACD;EACD,MAAM,+BAA+B,gCACnC,YACA,QACD;EAED,MAAM,4BACJ,oBAAoB,+BAChB,UAAU,QAAQ,OAAO,uBAAuB,KAAK,IAAI,IAAI,iCAC7D;EAEN,MAAM,uBAAuB;eAClB,uBAAuB,MAAME,gBAAc,GAAG,0BAA0B;0CAC7C,uBAAuB;aACpD,cAAc,GAAG,yBACxB,0BAA0B,UACrB,uBAAuB,SAAS,OAAO,MAAM,YAC9C,GACL;;;;EAKD,MAAM,4BAA4B,kCAAkC;GAClE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,YAAY,SAAS;GACrB;GACA,aAAa;GACb;GACA,MAAMH,mBAAM;GACb,CAAC;AAEF,SACE,WACA,eACA,oBACA,uBACA;QAEG;EACL,MAAM,mBAAmB,MACtB,QAAQ,SAAS,KAAK,SAASC,4BAAe,OAAO,CACrD,KAAK,SAAS;AACb,OAAI,KAAK,SAASA,4BAAe,kBAC/B,QAAO,KAAK;YACH,KAAK,SAASA,4BAAe,KACtC,QAAO;OAEP,QAAO,KAAK;IAEd,CACD,KAAK,KAAK;EAEb,MAAM,uCAAqB,OAAO,cAAc,eAAe;EAC/D,MAAM,mBAAmB,gBAAgB,aAAa,MAAM,cAAc,UAAU,MAAM,IACxF,cAAc,iCAAiC,GAChD;;AAG8B,4BAC7B,UACA,YACA,SAAS,OAAO,+BAChB,eACA,QACD;EACD,MAAM,+BAA+B,gCACnC,YACA,QACD;EAED,MAAM,4BACJ,oBAAoB,+BAChB,UAAU,QAAQ,OAAO,uBAAuB,KAAK,IAAI,IAAI,iCAC7D;EAEN,MAAM,wBAAwB,MAAM,MACjC,SAAS,KAAK,SAASA,4BAAe,KACxC,GACG,YACA;EAEJ,MAAM,cACJ,MACG,MAAM,SAAS,KAAK,SAASA,4BAAe,KAAK,EAChD,eAAe,MAAM,KAAK,CAAC,MAAM;EAEvC,MAAM,uBAAuB;eAClB,uBAAuB,MAAM,SAAS,GAAG,0BAA0B;oBAC9D,sBAAsB,WAAW,YAAY;aACpD,cAAc,GAAG,mBACxB,0BAA0B,UACrB,iBAAiB,SAAS,OAAO,MAAM,YACxC,GACL;;;EAID,MAAM,oBAAoB,kCAAkC;GAC1D;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,YAAY,SAAS;GACrB;GACA;GACA,YAAY,QAAQ,OAAO;GAC5B,CAAC;AAEF,SAAO,uBAAuB,mBAAmB;;;AAIrD,MAAaG,qBAA0C,WACrD;IAEE,CAAC,OAAO,iBACJ;4EAEA,GACL;IAEC,OAAO,oBAAoB,OAAO,YAC9B,wFACA,GACL;IACC,aAAa,OAAO,CAAC;;AAGzB,MAAaC,eAA8B,aAAa,YAAY;CAClE,MAAM,gDAA8B,YAAY;CAChD,MAAM,yBAAyB,2BAC7B,aACA,QACD;CACD,MAAM,qBAAqB,gBAAgB,aAAa,QAAQ;AAEhE,QAAO;EACL,gBAAgB,GAAG,uBAAuB,MAAM;EAChD;EACD;;AAGH,MAAMC,mBAA4C;CAChD,QAAQ;CACR,QAAQ;CACR,cAAc;CACf;AAED,MAAa,sBAAsB;AAEnC,kBAAe"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["AXIOS_DEPENDENCIES: GeneratorDependency[]","generateFetchRequestFunction","getSwrHeader: ClientHeaderBuilder","PARAMS_SERIALIZER_DEPENDENCIES: GeneratorDependency[]","SWR_DEPENDENCIES: GeneratorDependency[]","SWR_INFINITE_DEPENDENCIES: GeneratorDependency[]","SWR_MUTATION_DEPENDENCIES: GeneratorDependency[]","getSwrDependencies: ClientDependenciesBuilder","swrKeyProperties","queryKeyProps","generateSwrHeader: ClientHeaderBuilder","generateSwr: ClientBuilder","swrClientBuilder: ClientGeneratorsBuilder"],"sources":["../src/client.ts","../src/index.ts"],"sourcesContent":["import {\n type ClientHeaderBuilder,\n generateFormDataAndUrlEncodedFunction,\n generateMutatorConfig,\n generateMutatorRequestOptions,\n generateOptions,\n type GeneratorDependency,\n type GeneratorMutator,\n type GeneratorOptions,\n type GeneratorVerbOptions,\n type GetterResponse,\n isSyntheticDefaultImportsAllow,\n OutputHttpClient,\n toObjectString,\n} from '@orval/core';\nimport {\n fetchResponseTypeName,\n generateFetchHeader,\n generateRequestFunction as generateFetchRequestFunction,\n} from '@orval/fetch';\n\nexport const AXIOS_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n {\n name: 'axios',\n default: true,\n values: true,\n syntheticDefaultImport: true,\n },\n { name: 'AxiosRequestConfig' },\n { name: 'AxiosResponse' },\n { name: 'AxiosError' },\n ],\n dependency: 'axios',\n },\n];\n\nexport const generateSwrRequestFunction = (\n verbOptions: GeneratorVerbOptions,\n options: GeneratorOptions,\n) => {\n return options.context.output.httpClient === OutputHttpClient.AXIOS\n ? generateAxiosRequestFunction(verbOptions, options)\n : generateFetchRequestFunction(verbOptions, options);\n};\n\nconst generateAxiosRequestFunction = (\n {\n headers,\n queryParams,\n operationName,\n response,\n mutator,\n body,\n props,\n verb,\n formData,\n formUrlEncoded,\n override,\n paramsSerializer,\n }: GeneratorVerbOptions,\n { route, context }: GeneratorOptions,\n) => {\n const isRequestOptions = override?.requestOptions !== false;\n const isFormData = !override?.formData.disabled;\n const isFormUrlEncoded = override?.formUrlEncoded !== false;\n const isExactOptionalPropertyTypes =\n !!context.output.tsconfig?.compilerOptions?.exactOptionalPropertyTypes;\n const isSyntheticDefaultImportsAllowed = isSyntheticDefaultImportsAllow(\n context.output.tsconfig,\n );\n\n const bodyForm = generateFormDataAndUrlEncodedFunction({\n formData,\n formUrlEncoded,\n body,\n isFormData,\n isFormUrlEncoded,\n });\n\n if (mutator) {\n const mutatorConfig = generateMutatorConfig({\n route,\n body,\n headers,\n queryParams,\n response,\n verb,\n isFormData,\n isFormUrlEncoded,\n hasSignal: false,\n isExactOptionalPropertyTypes,\n });\n\n const propsImplementation =\n mutator?.bodyTypeName && body.definition\n ? toObjectString(props, 'implementation').replace(\n new RegExp(`(\\\\w*):\\\\s?${body.definition}`),\n `$1: ${mutator.bodyTypeName}<${body.definition}>`,\n )\n : toObjectString(props, 'implementation');\n\n const requestOptions = isRequestOptions\n ? generateMutatorRequestOptions(\n override?.requestOptions,\n mutator.hasSecondArg,\n )\n : '';\n\n const requestImplementation = `export const ${operationName} = (\\n ${propsImplementation}\\n ${\n isRequestOptions && mutator.hasSecondArg\n ? `options${context.output.optionsParamRequired ? '' : '?'}: SecondParameter<typeof ${mutator.name}>`\n : ''\n }) => {${bodyForm}\n return ${mutator.name}<${response.definition.success || 'unknown'}>(\n ${mutatorConfig},\n ${requestOptions});\n }\n`;\n\n return requestImplementation;\n }\n\n const options = generateOptions({\n route,\n body,\n headers,\n queryParams,\n response,\n verb,\n requestOptions: override?.requestOptions,\n isFormData,\n isFormUrlEncoded,\n paramsSerializer,\n paramsSerializerOptions: override?.paramsSerializerOptions,\n isExactOptionalPropertyTypes,\n hasSignal: false,\n });\n\n return `export const ${operationName} = (\\n ${toObjectString(\n props,\n 'implementation',\n )} ${\n isRequestOptions ? `options?: AxiosRequestConfig\\n` : ''\n } ): Promise<AxiosResponse<${\n response.definition.success || 'unknown'\n }>> => {${bodyForm}\n return axios${\n isSyntheticDefaultImportsAllowed ? '' : '.default'\n }.${verb}(${options});\n }\n`;\n};\n\nexport const getSwrRequestOptions = (\n httpClient: OutputHttpClient,\n mutator?: GeneratorMutator,\n) => {\n if (!mutator) {\n return httpClient === OutputHttpClient.AXIOS\n ? 'axios?: AxiosRequestConfig'\n : 'fetch?: RequestInit';\n } else if (mutator?.hasSecondArg) {\n return `request?: SecondParameter<typeof ${mutator.name}>`;\n } else {\n return '';\n }\n};\n\nexport const getSwrErrorType = (\n response: GetterResponse,\n httpClient: OutputHttpClient,\n mutator?: GeneratorMutator,\n) => {\n if (mutator) {\n return mutator.hasErrorType\n ? `ErrorType<${response.definition.errors || 'unknown'}>`\n : response.definition.errors || 'unknown';\n } else {\n const errorType =\n httpClient === OutputHttpClient.AXIOS ? 'AxiosError' : 'Promise';\n\n return `${errorType}<${response.definition.errors || 'unknown'}>`;\n }\n};\n\nexport const getSwrRequestSecondArg = (\n httpClient: OutputHttpClient,\n mutator?: GeneratorMutator,\n) => {\n if (!mutator) {\n return httpClient === OutputHttpClient.AXIOS\n ? 'axios: axiosOptions'\n : 'fetch: fetchOptions';\n } else if (mutator?.hasSecondArg) {\n return 'request: requestOptions';\n } else {\n return '';\n }\n};\n\nexport const getHttpRequestSecondArg = (\n httpClient: OutputHttpClient,\n mutator?: GeneratorMutator,\n) => {\n if (!mutator) {\n return httpClient === OutputHttpClient.AXIOS\n ? `axiosOptions`\n : `fetchOptions`;\n } else if (mutator?.hasSecondArg) {\n return 'requestOptions';\n } else {\n return '';\n }\n};\n\nexport const getSwrMutationFetcherOptionType = (\n httpClient: OutputHttpClient,\n mutator?: GeneratorMutator,\n) => {\n if (!mutator) {\n return httpClient === OutputHttpClient.AXIOS\n ? 'AxiosRequestConfig'\n : 'RequestInit';\n } else if (mutator.hasSecondArg) {\n return `SecondParameter<typeof ${mutator.name}>`;\n } else {\n return '';\n }\n};\n\nexport const getSwrMutationFetcherType = (\n response: GetterResponse,\n httpClient: OutputHttpClient,\n includeHttpResponseReturnType: boolean | undefined,\n operationName: string,\n mutator?: GeneratorMutator,\n) => {\n if (httpClient === OutputHttpClient.FETCH) {\n const responseType = fetchResponseTypeName(\n includeHttpResponseReturnType,\n response.definition.success,\n operationName,\n );\n\n return `Promise<${responseType}>`;\n } else if (mutator) {\n return `Promise<${response.definition.success || 'unknown'}>`;\n } else {\n return `Promise<AxiosResponse<${response.definition.success || 'unknown'}>>`;\n }\n};\n\nexport const getSwrHeader: ClientHeaderBuilder = (params) => {\n return params.output.httpClient === OutputHttpClient.FETCH\n ? generateFetchHeader(params)\n : '';\n};\n","import {\n camel,\n type ClientBuilder,\n type ClientDependenciesBuilder,\n type ClientGeneratorsBuilder,\n type ClientHeaderBuilder,\n generateVerbImports,\n type GeneratorDependency,\n type GeneratorMutator,\n type GeneratorOptions,\n type GeneratorVerbOptions,\n type GetterParams,\n type GetterProp,\n type GetterProps,\n GetterPropType,\n type GetterResponse,\n jsDoc,\n OutputHttpClient,\n pascal,\n stringify,\n type SwrOptions,\n toObjectString,\n Verbs,\n} from '@orval/core';\n\nimport {\n AXIOS_DEPENDENCIES,\n generateSwrRequestFunction,\n getHttpRequestSecondArg,\n getSwrErrorType,\n getSwrHeader,\n getSwrMutationFetcherOptionType,\n getSwrMutationFetcherType,\n getSwrRequestOptions,\n getSwrRequestSecondArg,\n} from './client';\n\nconst PARAMS_SERIALIZER_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n {\n name: 'qs',\n default: true,\n values: true,\n syntheticDefaultImport: true,\n },\n ],\n dependency: 'qs',\n },\n];\n\nconst SWR_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n { name: 'useSwr', values: true, default: true },\n { name: 'SWRConfiguration' },\n { name: 'Key' },\n { name: 'Arguments' },\n ],\n dependency: 'swr',\n },\n];\n\nconst SWR_INFINITE_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n { name: 'useSWRInfinite', values: true, default: true },\n { name: 'SWRInfiniteConfiguration' },\n { name: 'SWRInfiniteKeyLoader' },\n ],\n dependency: 'swr/infinite',\n },\n];\n\nconst SWR_MUTATION_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n { name: 'useSWRMutation', values: true, default: true },\n { name: 'SWRMutationConfiguration' },\n { name: 'SWRMutationKey' },\n ],\n dependency: 'swr/mutation',\n },\n];\n\nexport const getSwrDependencies: ClientDependenciesBuilder = (\n hasGlobalMutator: boolean,\n hasParamsSerializerOptions: boolean,\n _packageJson,\n httpClient?: OutputHttpClient,\n) => [\n ...(!hasGlobalMutator && httpClient === OutputHttpClient.AXIOS\n ? AXIOS_DEPENDENCIES\n : []),\n ...(hasParamsSerializerOptions ? PARAMS_SERIALIZER_DEPENDENCIES : []),\n ...SWR_DEPENDENCIES,\n ...SWR_INFINITE_DEPENDENCIES,\n ...SWR_MUTATION_DEPENDENCIES,\n];\n\nconst generateSwrArguments = ({\n operationName,\n mutator,\n isRequestOptions,\n isInfinite,\n httpClient,\n}: {\n operationName: string;\n mutator?: GeneratorMutator;\n isRequestOptions: boolean;\n isInfinite: boolean;\n httpClient: OutputHttpClient;\n}) => {\n const configType = isInfinite\n ? 'SWRInfiniteConfiguration'\n : 'SWRConfiguration';\n const optionsType = isInfinite\n ? '{ swrKeyLoader?: SWRInfiniteKeyLoader, enabled?: boolean }'\n : '{ swrKey?: Key, enabled?: boolean }';\n const definition = `${configType}<Awaited<ReturnType<typeof ${operationName}>>, TError> & ${optionsType}`;\n\n if (!isRequestOptions) {\n return `swrOptions?: ${definition}`;\n }\n\n return `options?: { swr?:${definition}, ${getSwrRequestOptions(httpClient, mutator)} }\\n`;\n};\n\nconst generateSwrMutationArguments = ({\n operationName,\n isRequestOptions,\n mutator,\n swrBodyType,\n httpClient,\n}: {\n operationName: string;\n isRequestOptions: boolean;\n mutator?: GeneratorMutator;\n swrBodyType: string;\n httpClient: OutputHttpClient;\n}) => {\n const definition = `SWRMutationConfiguration<Awaited<ReturnType<typeof ${operationName}>>, TError, Key, ${swrBodyType}, Awaited<ReturnType<typeof ${operationName}>>> & { swrKey?: string }`;\n\n if (!isRequestOptions) {\n return `swrOptions?: ${definition}`;\n }\n\n return `options?: { swr?:${definition}, ${getSwrRequestOptions(httpClient, mutator)}}\\n`;\n};\n\nconst generateSwrImplementation = ({\n operationName,\n swrKeyFnName,\n swrKeyLoaderFnName,\n swrProperties,\n swrKeyProperties,\n params,\n mutator,\n isRequestOptions,\n response,\n swrOptions,\n props,\n doc,\n httpClient,\n}: {\n isRequestOptions: boolean;\n operationName: string;\n swrKeyFnName: string;\n swrKeyLoaderFnName: string;\n swrProperties: string;\n swrKeyProperties: string;\n params: GetterParams;\n props: GetterProps;\n response: GetterResponse;\n mutator?: GeneratorMutator;\n swrOptions: SwrOptions;\n doc?: string;\n httpClient: OutputHttpClient;\n}) => {\n const swrProps = toObjectString(props, 'implementation');\n\n const hasParamReservedWord = props.some(\n (prop: GetterProp) => prop.name === 'query',\n );\n const queryResultVarName = hasParamReservedWord ? '_query' : 'query';\n\n const httpFunctionProps = swrProperties;\n\n const enabledImplementation = `const isEnabled = swrOptions?.enabled !== false${\n params.length > 0\n ? ` && !!(${params.map(({ name }) => name).join(' && ')})`\n : ''\n }`;\n const swrKeyImplementation = `const swrKey = swrOptions?.swrKey ?? (() => isEnabled ? ${swrKeyFnName}(${swrKeyProperties}) : null);`;\n const swrKeyLoaderImplementation = `const swrKeyLoader = swrOptions?.swrKeyLoader ?? (() => isEnabled ? ${swrKeyLoaderFnName}(${swrKeyProperties}) : null);`;\n\n const errorType = getSwrErrorType(response, httpClient, mutator);\n const swrRequestSecondArg = getSwrRequestSecondArg(httpClient, mutator);\n const httpRequestSecondArg = getHttpRequestSecondArg(httpClient, mutator);\n\n const useSWRInfiniteImplementation = swrOptions.useInfinite\n ? `\nexport type ${pascal(\n operationName,\n )}InfiniteQueryResult = NonNullable<Awaited<ReturnType<typeof ${operationName}>>>\nexport type ${pascal(operationName)}InfiniteError = ${errorType}\n\n${doc}export const ${camel(\n `use-${operationName}-infinite`,\n )} = <TError = ${errorType}>(\n ${swrProps} ${generateSwrArguments({\n operationName,\n mutator,\n isRequestOptions,\n isInfinite: true,\n httpClient,\n })}) => {\n ${\n isRequestOptions\n ? `const {swr: swrOptions${swrRequestSecondArg ? `, ${swrRequestSecondArg}` : ''}} = options ?? {}`\n : ''\n }\n\n ${enabledImplementation}\n ${swrKeyLoaderImplementation}\n const swrFn = () => ${operationName}(${httpFunctionProps}${\n httpFunctionProps && httpRequestSecondArg ? ', ' : ''\n }${httpRequestSecondArg})\n\n const ${queryResultVarName} = useSWRInfinite<Awaited<ReturnType<typeof swrFn>>, TError>(swrKeyLoader, swrFn, ${\n swrOptions.swrInfiniteOptions\n ? `{\n ${stringify(swrOptions.swrInfiniteOptions)?.slice(1, -1)}\n ...swrOptions\n }`\n : 'swrOptions'\n })\n\n return {\n swrKeyLoader,\n ...${queryResultVarName}\n }\n}\\n`\n : '';\n\n const useSwrImplementation = `\nexport type ${pascal(\n operationName,\n )}QueryResult = NonNullable<Awaited<ReturnType<typeof ${operationName}>>>\nexport type ${pascal(operationName)}QueryError = ${errorType}\n\n${doc}export const ${camel(`use-${operationName}`)} = <TError = ${errorType}>(\n ${swrProps} ${generateSwrArguments({\n operationName,\n mutator,\n isRequestOptions,\n isInfinite: false,\n httpClient,\n })}) => {\n ${\n isRequestOptions\n ? `const {swr: swrOptions${swrRequestSecondArg ? `, ${swrRequestSecondArg}` : ''}} = options ?? {}`\n : ''\n }\n\n ${enabledImplementation}\n ${swrKeyImplementation}\n const swrFn = () => ${operationName}(${httpFunctionProps}${\n httpFunctionProps && httpRequestSecondArg ? ', ' : ''\n }${httpRequestSecondArg})\n\n const ${queryResultVarName} = useSwr<Awaited<ReturnType<typeof swrFn>>, TError>(swrKey, swrFn, ${\n swrOptions.swrOptions\n ? `{\n ${stringify(swrOptions.swrOptions)?.slice(1, -1)}\n ...swrOptions\n }`\n : 'swrOptions'\n })\n\n return {\n swrKey,\n ...${queryResultVarName}\n }\n}\\n`;\n\n return useSWRInfiniteImplementation + useSwrImplementation;\n};\n\nconst generateSwrMutationImplementation = ({\n isRequestOptions,\n operationName,\n swrKeyFnName,\n swrMutationFetcherName,\n swrKeyProperties,\n swrMutationFetcherProperties,\n swrProps,\n props,\n response,\n mutator,\n swrOptions,\n doc,\n swrBodyType,\n httpClient,\n verb,\n}: {\n isRequestOptions: boolean;\n operationName: string;\n swrKeyFnName: string;\n swrMutationFetcherName: string;\n swrKeyProperties: string;\n swrMutationFetcherProperties: string;\n swrProps: string;\n props: GetterProps;\n response: GetterResponse;\n mutator?: GeneratorMutator;\n swrOptions: SwrOptions;\n doc?: string;\n swrBodyType: string;\n httpClient: OutputHttpClient;\n verb?: Verbs;\n}) => {\n const hasParamReservedWord = props.some(\n (prop: GetterProp) => prop.name === 'query',\n );\n const queryResultVarName = hasParamReservedWord ? '_query' : 'query';\n\n const swrKeyImplementation = `const swrKey = swrOptions?.swrKey ?? ${swrKeyFnName}(${swrKeyProperties});`;\n\n const errorType = getSwrErrorType(response, httpClient, mutator);\n const swrRequestSecondArg = getSwrRequestSecondArg(httpClient, mutator);\n const httpRequestSecondArg = getHttpRequestSecondArg(httpClient, mutator);\n\n const useSwrImplementation = `\nexport type ${pascal(\n operationName,\n )}MutationResult = NonNullable<Awaited<ReturnType<typeof ${operationName}>>>\nexport type ${pascal(operationName)}MutationError = ${errorType}\n\n${doc}export const ${camel(`use-${operationName}${verb === Verbs.GET ? '-mutation' : ''}`)} = <TError = ${errorType}>(\n ${swrProps} ${generateSwrMutationArguments({\n operationName,\n isRequestOptions,\n mutator,\n swrBodyType,\n httpClient,\n })}) => {\n\n ${isRequestOptions ? `const {swr: swrOptions${swrRequestSecondArg ? `, ${swrRequestSecondArg}` : ''}} = options ?? {}` : ''}\n\n ${swrKeyImplementation}\n const swrFn = ${swrMutationFetcherName}(${swrMutationFetcherProperties}${\n swrMutationFetcherProperties && httpRequestSecondArg ? ', ' : ''\n }${httpRequestSecondArg});\n\n const ${queryResultVarName} = useSWRMutation(swrKey, swrFn, ${\n swrOptions.swrMutationOptions\n ? `{\n ${stringify(swrOptions.swrMutationOptions)?.slice(1, -1)}\n ...swrOptions\n }`\n : 'swrOptions'\n })\n\n return {\n swrKey,\n ...${queryResultVarName}\n }\n}\\n`;\n\n return useSwrImplementation;\n};\n\nconst generateSwrHook = (\n {\n queryParams,\n operationName,\n body,\n props,\n verb,\n params,\n override,\n mutator,\n response,\n summary,\n deprecated,\n }: GeneratorVerbOptions,\n { route, context }: GeneratorOptions,\n) => {\n const isRequestOptions = override?.requestOptions !== false;\n const httpClient = context.output.httpClient;\n const doc = jsDoc({ summary, deprecated });\n\n const queryKeyProps = toObjectString(\n props.filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS ||\n prop.type === GetterPropType.QUERY_PARAM,\n ),\n 'implementation',\n );\n\n const swrProps = toObjectString(\n props.filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.QUERY_PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS,\n ),\n 'implementation',\n );\n\n const swrMutationFetcherProperties = props\n .filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.QUERY_PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS,\n )\n .map((param) => {\n return param.type === GetterPropType.NAMED_PATH_PARAMS\n ? param.destructured\n : param.name;\n })\n .join(',');\n\n const swrKeyProperties = props\n .filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS ||\n prop.type === GetterPropType.QUERY_PARAM,\n )\n .map((prop) => {\n return prop.type === GetterPropType.NAMED_PATH_PARAMS\n ? prop.destructured\n : prop.name;\n })\n .join(',');\n\n const swrMutationFetcherName = camel(`get-${operationName}-mutation-fetcher`);\n\n if (verb === Verbs.GET) {\n const swrKeyProperties = props\n .filter((prop) => prop.type !== GetterPropType.HEADER)\n .map((param) => {\n if (param.type === GetterPropType.NAMED_PATH_PARAMS)\n return param.destructured;\n return param.type === GetterPropType.BODY\n ? body.implementation\n : param.name;\n })\n .join(',');\n\n const swrProperties = props\n .map((param) => {\n if (param.type === GetterPropType.NAMED_PATH_PARAMS)\n return param.destructured;\n return param.type === GetterPropType.BODY\n ? body.implementation\n : param.name;\n })\n .join(',');\n\n const queryKeyProps = toObjectString(\n props.filter((prop) => prop.type !== GetterPropType.HEADER),\n 'implementation',\n );\n\n const swrKeyFnName = camel(`get-${operationName}-key`);\n const swrKeyFn = `\nexport const ${swrKeyFnName} = (${queryKeyProps}) => [\\`${route}\\`${\n queryParams ? ', ...(params ? [params]: [])' : ''\n }] as const;\n`;\n\n const swrKeyLoaderFnName = camel(\n `get-${operationName}-infinite-key-loader`,\n );\n const swrKeyLoader = override.swr.useInfinite\n ? `export const ${swrKeyLoaderFnName} = (${queryKeyProps}) => {\n return (page: number, previousPageData: Awaited<ReturnType<typeof ${operationName}>>) => {\n if (previousPageData && !previousPageData.data) return null\n\n return [\\`${route}\\`${queryParams ? ', ...(params ? [{...params,page}]: [{page}])' : ''}${\n body.implementation ? `, ${body.implementation}` : ''\n }] as const;\n }\n}\\n`\n : '';\n\n const swrImplementation = generateSwrImplementation({\n operationName,\n swrKeyFnName,\n swrKeyLoaderFnName,\n swrProperties,\n swrKeyProperties,\n params,\n props,\n mutator,\n isRequestOptions,\n response,\n swrOptions: override.swr,\n doc,\n httpClient,\n });\n\n if (!override.swr.useSWRMutationForGet) {\n return swrKeyFn + swrKeyLoader + swrImplementation;\n }\n\n // For OutputClient.SWR_GET_MUTATION, generate both useSWR and useSWRMutation\n const httpFnPropertiesForGet = props\n .filter((prop) => prop.type !== GetterPropType.HEADER)\n .map((prop) => {\n return prop.type === GetterPropType.NAMED_PATH_PARAMS\n ? prop.destructured\n : prop.name;\n })\n .join(', ');\n\n const swrMutationFetcherType = getSwrMutationFetcherType(\n response,\n httpClient,\n override.fetch?.includeHttpResponseReturnType,\n operationName,\n mutator,\n );\n const swrMutationFetcherOptionType = getSwrMutationFetcherOptionType(\n httpClient,\n mutator,\n );\n\n const swrMutationFetcherOptions =\n isRequestOptions && swrMutationFetcherOptionType\n ? `options${context.output.optionsParamRequired ? '' : '?'}: ${swrMutationFetcherOptionType}`\n : '';\n\n const swrMutationFetcherFn = `\nexport const ${swrMutationFetcherName} = (${queryKeyProps} ${swrMutationFetcherOptions}) => {\n return (_: Key, __: { arg?: never }): ${swrMutationFetcherType} => {\n return ${operationName}(${httpFnPropertiesForGet}${\n swrMutationFetcherOptions.length > 0\n ? (httpFnPropertiesForGet.length > 0 ? ', ' : '') + 'options'\n : ''\n });\n }\n}\n`;\n\n const swrMutationImplementation = generateSwrMutationImplementation({\n operationName,\n swrKeyFnName,\n swrMutationFetcherName,\n swrKeyProperties,\n swrMutationFetcherProperties,\n swrProps,\n props,\n isRequestOptions,\n response,\n mutator,\n swrOptions: override.swr,\n doc,\n swrBodyType: 'never',\n httpClient,\n verb: Verbs.GET,\n });\n\n return (\n swrKeyFn +\n swrKeyLoader +\n swrImplementation +\n swrMutationFetcherFn +\n swrMutationImplementation\n );\n } else {\n const httpFnProperties = props\n .filter((prop) => prop.type !== GetterPropType.HEADER)\n .map((prop) => {\n if (prop.type === GetterPropType.NAMED_PATH_PARAMS) {\n return prop.destructured;\n } else if (prop.type === GetterPropType.BODY) {\n return `arg`;\n } else {\n return prop.name;\n }\n })\n .join(', ');\n\n const swrKeyFnName = camel(`get-${operationName}-mutation-key`);\n const swrMutationKeyFn = `export const ${swrKeyFnName} = (${queryKeyProps}) => [\\`${route}\\`${\n queryParams ? ', ...(params ? [params]: [])' : ''\n }] as const;\n`;\n\n const swrMutationFetcherType = getSwrMutationFetcherType(\n response,\n httpClient,\n override.fetch?.includeHttpResponseReturnType,\n operationName,\n mutator,\n );\n const swrMutationFetcherOptionType = getSwrMutationFetcherOptionType(\n httpClient,\n mutator,\n );\n\n const swrMutationFetcherOptions =\n isRequestOptions && swrMutationFetcherOptionType\n ? `options${context.output.optionsParamRequired ? '' : '?'}: ${swrMutationFetcherOptionType}`\n : '';\n\n const swrMutationFetcherArg = props.some(\n (prop) => prop.type === GetterPropType.BODY,\n )\n ? '{ arg }'\n : '__';\n\n const swrBodyType =\n props\n .find((prop) => prop.type === GetterPropType.BODY)\n ?.implementation.split(': ')[1] ?? 'Arguments';\n\n const swrMutationFetcherFn = `\nexport const ${swrMutationFetcherName} = (${swrProps} ${swrMutationFetcherOptions}) => {\n return (_: Key, ${swrMutationFetcherArg}: { arg: ${swrBodyType} }) => {\n return ${operationName}(${httpFnProperties}${\n swrMutationFetcherOptions.length > 0\n ? (httpFnProperties.length > 0 ? ', ' : '') + 'options'\n : ''\n });\n }\n}\\n`;\n\n const swrImplementation = generateSwrMutationImplementation({\n operationName,\n swrKeyFnName,\n swrMutationFetcherName,\n swrKeyProperties,\n swrMutationFetcherProperties,\n swrProps,\n props,\n isRequestOptions,\n response,\n mutator,\n swrOptions: override.swr,\n doc,\n swrBodyType,\n httpClient: context.output.httpClient,\n });\n\n return swrMutationFetcherFn + swrMutationKeyFn + swrImplementation;\n }\n};\n\nexport const generateSwrHeader: ClientHeaderBuilder = (params) =>\n `\n ${\n params.hasAwaitedType\n ? ''\n : `type AwaitedInput<T> = PromiseLike<T> | T;\\n\n type Awaited<O> = O extends AwaitedInput<infer T> ? T : never;\\n\\n`\n }\n ${\n params.isRequestOptions && params.isMutator\n ? `type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\\n\\n`\n : ''\n }\n ${getSwrHeader(params)}\n`;\n\nexport const generateSwr: ClientBuilder = (verbOptions, options) => {\n const imports = generateVerbImports(verbOptions);\n const functionImplementation = generateSwrRequestFunction(\n verbOptions,\n options,\n );\n const hookImplementation = generateSwrHook(verbOptions, options);\n\n return {\n implementation: `${functionImplementation}\\n\\n${hookImplementation}`,\n imports,\n };\n};\n\nconst swrClientBuilder: ClientGeneratorsBuilder = {\n client: generateSwr,\n header: generateSwrHeader,\n dependencies: getSwrDependencies,\n};\n\nexport const builder = () => () => swrClientBuilder;\n\nexport default builder;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orval/swr",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0-rc.0",
|
|
4
4
|
"license": "MIT",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"exports": {
|
|
6
|
-
"
|
|
7
|
+
"import": {
|
|
7
8
|
"types": "./dist/index.d.ts",
|
|
8
|
-
"
|
|
9
|
+
"import": "./dist/index.js"
|
|
9
10
|
}
|
|
10
11
|
},
|
|
11
12
|
"files": [
|
|
@@ -20,12 +21,13 @@
|
|
|
20
21
|
"nuke": "rimraf .turbo dist node_modules"
|
|
21
22
|
},
|
|
22
23
|
"dependencies": {
|
|
23
|
-
"@orval/core": "
|
|
24
|
-
"@orval/fetch": "
|
|
24
|
+
"@orval/core": "8.0.0-rc.0",
|
|
25
|
+
"@orval/fetch": "8.0.0-rc.0"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
|
-
"eslint": "^9.
|
|
28
|
+
"eslint": "^9.38.0",
|
|
28
29
|
"rimraf": "^6.0.1",
|
|
29
|
-
"tsdown": "^0.15.
|
|
30
|
-
}
|
|
30
|
+
"tsdown": "^0.15.9"
|
|
31
|
+
},
|
|
32
|
+
"stableVersion": "7.15.0"
|
|
31
33
|
}
|