react-query-lightbase-codegen 3.1.7 → 3.1.9
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/generateHooks.js +57 -14
- package/dist/generateHooks.js.map +1 -1
- package/dist/generator/clientGenerator.js +36 -7
- package/dist/generator/schemaGenerator.js +57 -72
- package/dist/utils.js +13 -6
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/generator/clientGenerator.ts +38 -7
- package/src/generator/schemaGenerator.ts +60 -74
- package/src/utils.ts +14 -5
package/dist/generateHooks.js
CHANGED
|
@@ -122,10 +122,14 @@ export const createHook = ({ operation, verb, route, operationIds, parameters, s
|
|
|
122
122
|
if (!lastParamInTheRouteDefinition) {
|
|
123
123
|
throw new Error(`The path params ${lastParamInTheRoute} can't be found in parameters (${operationId})`);
|
|
124
124
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
125
|
+
let defaultDescription = `type: ${verb}\noperationId: ${operationId}\nurl: ${route}`;
|
|
126
|
+
if (operation.summary) {
|
|
127
|
+
defaultDescription += `\n\n${operation.summary}`;
|
|
128
|
+
}
|
|
129
|
+
if (operation.description) {
|
|
130
|
+
defaultDescription += `\n\n${operation.description}`;
|
|
131
|
+
}
|
|
132
|
+
const description = formatDescription(defaultDescription);
|
|
129
133
|
let output = `\n\n${description}`;
|
|
130
134
|
const headerParam = headerType && headerType !== 'void' ? `${headerType};` : '';
|
|
131
135
|
const queryParam = queryParamsType && queryParamsType !== 'void' ? `${queryParamsType}` : '';
|
|
@@ -195,14 +199,50 @@ export const createHook = ({ operation, verb, route, operationIds, parameters, s
|
|
|
195
199
|
const generateBodyProps = () => {
|
|
196
200
|
if (definitionKey && !hasRequestBodyArrray) {
|
|
197
201
|
const scheme = schemasComponents?.schemas?.[definitionKey];
|
|
198
|
-
const
|
|
202
|
+
const schemProperties = Object.keys(scheme.properties);
|
|
203
|
+
if (operation.requestBody &&
|
|
204
|
+
'content' in operation.requestBody &&
|
|
205
|
+
Object.keys(operation.requestBody.content)[0] === 'multipart/form-data') {
|
|
206
|
+
let formData = `const body = new FormData()`;
|
|
207
|
+
schemProperties.forEach((item) => {
|
|
208
|
+
if (scheme.required?.includes(item)) {
|
|
209
|
+
formData += `\nbody.append("${item}", props["${item}"]);`;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
formData += `\n if (props["${item}"] != null) {\n body.append("${item}", props["${item}"]);\n}`;
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
return formData;
|
|
216
|
+
}
|
|
217
|
+
const generatedBodyProps = schemProperties
|
|
199
218
|
.map((item) => `["${item}"]: props["${item}"]`)
|
|
200
219
|
.join(',');
|
|
201
220
|
return `const body = {${generatedBodyProps}}`;
|
|
202
221
|
}
|
|
203
222
|
if (operation.requestBody && 'content' in operation.requestBody) {
|
|
204
223
|
let generatedBodyProps = [];
|
|
205
|
-
|
|
224
|
+
let bodyData = '';
|
|
225
|
+
const contentTypes = Object.keys(operation.requestBody.content);
|
|
226
|
+
if (contentTypes.includes('multipart/form-data')) {
|
|
227
|
+
console.log('UPDATE2');
|
|
228
|
+
bodyData += `const body = new FormData()`;
|
|
229
|
+
for (let contentType of contentTypes) {
|
|
230
|
+
const schema = operation.requestBody.content[contentType].schema;
|
|
231
|
+
if ('properties' in schema) {
|
|
232
|
+
const schemaProperties = Object.keys(schema.properties || []);
|
|
233
|
+
for (let item of schemaProperties) {
|
|
234
|
+
if (schema.required?.includes(item)) {
|
|
235
|
+
bodyData += `\nbody.append("${item}", props["${item}"].toString());`;
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
bodyData += `\n if (props["${item}"] != null) {\n body.append("${item}", props["${item}"].toString());\n}`;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return bodyData;
|
|
244
|
+
}
|
|
245
|
+
for (let contentType of contentTypes) {
|
|
206
246
|
if (contentType.startsWith('application/json') ||
|
|
207
247
|
contentType.startsWith('application/ld+json') ||
|
|
208
248
|
contentType.startsWith('application/octet-stream')) {
|
|
@@ -213,10 +253,13 @@ export const createHook = ({ operation, verb, route, operationIds, parameters, s
|
|
|
213
253
|
}
|
|
214
254
|
}
|
|
215
255
|
}
|
|
216
|
-
return `const body = {${generatedBodyProps.map((item) => `${item}: props
|
|
256
|
+
return `const body = {${generatedBodyProps.map((item) => `${item}: props["${item}"]`).join(',')}}`;
|
|
217
257
|
}
|
|
218
|
-
return `ERROR`;
|
|
219
258
|
};
|
|
259
|
+
const hasFormData = generateBodyProps()?.includes('FormData');
|
|
260
|
+
const defaultHeaders = JSON.stringify({
|
|
261
|
+
ContentType: hasFormData ? 'multipart/form-data' : 'application/json',
|
|
262
|
+
});
|
|
220
263
|
if (!requestBodyComponent && !paramsInPath.length && !queryParam && !headerParam) {
|
|
221
264
|
output += `
|
|
222
265
|
export const ${fetchName} = async () => {
|
|
@@ -297,7 +340,7 @@ export const createHook = ({ operation, verb, route, operationIds, parameters, s
|
|
|
297
340
|
export type ${componentName}Params = ${requestBodyComponent}
|
|
298
341
|
|
|
299
342
|
export const ${fetchName} = async (body: ${componentName}Params) => {
|
|
300
|
-
const result = await api.${verb}<${responseTypes}>("${route}", body)
|
|
343
|
+
const result = await api.${verb}<${responseTypes}>("${route}", body, {headers: ${defaultHeaders}})
|
|
301
344
|
return result.data
|
|
302
345
|
}
|
|
303
346
|
`;
|
|
@@ -311,7 +354,7 @@ export const createHook = ({ operation, verb, route, operationIds, parameters, s
|
|
|
311
354
|
export const ${fetchName} = async (${bodyProps}: ${componentName}Params) => {
|
|
312
355
|
${generateBodyProps()}
|
|
313
356
|
const params = {${generateProps(queryParams)}}
|
|
314
|
-
const result = await api.${verb}<${responseTypes}>("${route}", body, {params})
|
|
357
|
+
const result = await api.${verb}<${responseTypes}>("${route}", body, {params, headers: ${defaultHeaders}})
|
|
315
358
|
return result.data
|
|
316
359
|
}
|
|
317
360
|
`;
|
|
@@ -324,7 +367,7 @@ export const createHook = ({ operation, verb, route, operationIds, parameters, s
|
|
|
324
367
|
|
|
325
368
|
export const ${fetchName} = async (${bodyProps}: ${componentName}Params) => {
|
|
326
369
|
${generateBodyProps()}
|
|
327
|
-
const headers =
|
|
370
|
+
const headers = null
|
|
328
371
|
const result = await api.${verb}<${responseTypes}>("${route}", body, {headers})
|
|
329
372
|
return result.data
|
|
330
373
|
}
|
|
@@ -338,7 +381,7 @@ export const createHook = ({ operation, verb, route, operationIds, parameters, s
|
|
|
338
381
|
};
|
|
339
382
|
export const ${fetchName} = async (${bodyProps}: ${componentName}Params) => {
|
|
340
383
|
${generateBodyProps()}
|
|
341
|
-
const headers =
|
|
384
|
+
const headers = null
|
|
342
385
|
const params = {${generateProps(queryParams)}}
|
|
343
386
|
const result = await api.${verb}<${responseTypes}>("${route}", body, {headers, params})
|
|
344
387
|
return result.data
|
|
@@ -354,7 +397,7 @@ export const createHook = ({ operation, verb, route, operationIds, parameters, s
|
|
|
354
397
|
|
|
355
398
|
export const ${fetchName} = async (${bodyProps}: ${componentName}Params) => {
|
|
356
399
|
${generateBodyProps()}
|
|
357
|
-
const result = await api.${verb}<${responseTypes}>(\`${route.replace(/\{/g, '{props.')}\`, body)
|
|
400
|
+
const result = await api.${verb}<${responseTypes}>(\`${route.replace(/\{/g, '{props.')}\`, body, {headers: ${defaultHeaders}})
|
|
358
401
|
return result.data
|
|
359
402
|
}
|
|
360
403
|
`;
|
|
@@ -370,7 +413,7 @@ export const createHook = ({ operation, verb, route, operationIds, parameters, s
|
|
|
370
413
|
export const ${fetchName} = async (${bodyProps}: ${componentName}Params) => {
|
|
371
414
|
${generateBodyProps()}
|
|
372
415
|
const params = {${generateProps(queryParams)}}
|
|
373
|
-
const result = await api.${verb}<${responseTypes}>(\`${route.replace(/\{/g, '{props.')}\`, body, {params})
|
|
416
|
+
const result = await api.${verb}<${responseTypes}>(\`${route.replace(/\{/g, '{props.')}\`, body, {params, headers: ${defaultHeaders}})
|
|
374
417
|
return result.data
|
|
375
418
|
}
|
|
376
419
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateHooks.js","sourceRoot":"","sources":["../src/generateHooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generateHooks.js","sourceRoot":"","sources":["../src/generateHooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateApiClient = generateApiClient;
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
|
+
/**
|
|
6
|
+
* Walks a request body schema (including allOf/oneOf/anyOf composition) and returns
|
|
7
|
+
* the union of property names contributed by all branches. Used to pick body fields
|
|
8
|
+
* out of the merged Params object so path/query/header values aren't sent as the body.
|
|
9
|
+
*/
|
|
10
|
+
function collectBodyPropertyNames(schema, spec, visitedRefs = new Set()) {
|
|
11
|
+
if (!schema)
|
|
12
|
+
return [];
|
|
13
|
+
if ("$ref" in schema) {
|
|
14
|
+
if (visitedRefs.has(schema.$ref))
|
|
15
|
+
return [];
|
|
16
|
+
const next = new Set(visitedRefs).add(schema.$ref);
|
|
17
|
+
return collectBodyPropertyNames((0, utils_1.resolveSchema)(schema, spec), spec, next);
|
|
18
|
+
}
|
|
19
|
+
const names = new Set();
|
|
20
|
+
if (schema.properties)
|
|
21
|
+
Object.keys(schema.properties).forEach((k) => names.add(k));
|
|
22
|
+
for (const key of ["allOf", "oneOf", "anyOf"]) {
|
|
23
|
+
const branches = schema[key];
|
|
24
|
+
if (!branches)
|
|
25
|
+
continue;
|
|
26
|
+
for (const branch of branches) {
|
|
27
|
+
collectBodyPropertyNames(branch, spec, visitedRefs).forEach((n) => names.add(n));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return Array.from(names);
|
|
31
|
+
}
|
|
5
32
|
function generateAxiosMethod(operation, spec) {
|
|
6
33
|
const { method, path, operationId, summary, description, deprecated, parameters, requestBody, responses } = operation;
|
|
7
34
|
// Generate JSDoc
|
|
@@ -59,9 +86,13 @@ function generateAxiosMethod(operation, spec) {
|
|
|
59
86
|
: undefined;
|
|
60
87
|
const requestBodyContent = requestBody && "content" in requestBody ? (0, utils_1.getContentSchema)(requestBody.content) : undefined;
|
|
61
88
|
const requestBodySchema = requestBodyContent ? (0, utils_1.resolveSchema)(requestBodyContent, spec) : undefined;
|
|
89
|
+
// Resolve property names contributed by the body schema, walking allOf/oneOf/anyOf so
|
|
90
|
+
// composition-based bodies are still treated as object bodies (not "primitive").
|
|
91
|
+
const bodyPropertyNames = requestBodySchema ? collectBodyPropertyNames(requestBodySchema, spec) : [];
|
|
92
|
+
const hasObjectBody = bodyPropertyNames.length > 0;
|
|
62
93
|
// Check if request body is a primitive type (string, number, boolean)
|
|
63
94
|
const isPrimitiveRequestBody = requestBodySchema &&
|
|
64
|
-
!
|
|
95
|
+
!hasObjectBody &&
|
|
65
96
|
!requestBodySchema.type?.includes("object") &&
|
|
66
97
|
!requestBodySchema.type?.includes("array");
|
|
67
98
|
// Add request body type if it exists
|
|
@@ -98,11 +129,9 @@ function generateAxiosMethod(operation, spec) {
|
|
|
98
129
|
${queryParams.map((p) => `["${p.name}"]: data["${p.name}"]`).join(",\n ")}
|
|
99
130
|
};`
|
|
100
131
|
: "",
|
|
101
|
-
|
|
132
|
+
hasObjectBody && !formDataSchema?.properties
|
|
102
133
|
? `const bodyData = {
|
|
103
|
-
${
|
|
104
|
-
.map(([key]) => `["${key}"]: data["${key}"]`)
|
|
105
|
-
.join(",\n ")}
|
|
134
|
+
${bodyPropertyNames.map((key) => `["${key}"]: data["${key}"]`).join(",\n ")}
|
|
106
135
|
};`
|
|
107
136
|
: "",
|
|
108
137
|
formDataSchema?.properties
|
|
@@ -129,8 +158,8 @@ function generateAxiosMethod(operation, spec) {
|
|
|
129
158
|
// Note: Don't set Content-Type for FormData - Axios will set it automatically with the correct boundary
|
|
130
159
|
requestBody
|
|
131
160
|
? responseType === "void"
|
|
132
|
-
? `await apiClient.${method}<${responseType}>(url, ${formDataSchema?.properties ||
|
|
133
|
-
: `const res = await apiClient.${method}<${responseType}>(url, ${formDataSchema?.properties ||
|
|
161
|
+
? `await apiClient.${method}<${responseType}>(url, ${formDataSchema?.properties || hasObjectBody ? "bodyData" : "data"}, axiosConfig);`
|
|
162
|
+
: `const res = await apiClient.${method}<${responseType}>(url, ${formDataSchema?.properties || hasObjectBody ? "bodyData" : "data"}, axiosConfig);`
|
|
134
163
|
: responseType === "void"
|
|
135
164
|
? `await apiClient.${method}<${responseType}>(url, axiosConfig);`
|
|
136
165
|
: `const res = await apiClient.${method}<${responseType}>(url, axiosConfig);`,
|
|
@@ -39,82 +39,67 @@ function generateTypeDefinitions(spec) {
|
|
|
39
39
|
output += generateTypeDefinition(name, schema);
|
|
40
40
|
generatedTypes.add(name);
|
|
41
41
|
}
|
|
42
|
-
// Generate request/response types
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
for (const [code, response] of Object.entries(responses)) {
|
|
66
|
-
const responseObj = response;
|
|
67
|
-
const responseSchema = (0, utils_1.getContentSchema)(responseObj.content);
|
|
68
|
-
if (responseSchema) {
|
|
69
|
-
const typeName = `${operationId}Response${code}`;
|
|
70
|
-
output += generateTypeDefinition(typeName, responseSchema);
|
|
71
|
-
// Track non-2xx responses for error union type
|
|
72
|
-
if (!code.startsWith("2")) {
|
|
73
|
-
errorTypes.push(typeName);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// Generate error union type if there are error responses
|
|
79
|
-
if (errorTypes.length > 0) {
|
|
80
|
-
output += `export type ${(0, utils_1.pascalCase)(operationId)}Error = ${errorTypes.join(" | ")};\n\n`;
|
|
81
|
-
}
|
|
82
|
-
// Build data type parts
|
|
83
|
-
const dataProps = [];
|
|
84
|
-
const urlParams = (parameters?.filter((p) => "in" in p && p.in === "path") ||
|
|
85
|
-
[]);
|
|
86
|
-
const queryParams = (parameters?.filter((p) => "in" in p && p.in === "query") ||
|
|
87
|
-
[]);
|
|
88
|
-
const headerParams = (parameters?.filter((p) => "in" in p && p.in === "header") ||
|
|
89
|
-
[]);
|
|
90
|
-
const cookieParams = (parameters?.filter((p) => "in" in p && p.in === "cookie") ||
|
|
91
|
-
[]);
|
|
92
|
-
// Add path, query, header, and cookie parameters
|
|
93
|
-
urlParams.forEach((p) => dataProps.push(formatParamProperty(p, true))); // Path params always required
|
|
94
|
-
queryParams.forEach((p) => dataProps.push(formatParamProperty(p)));
|
|
95
|
-
headerParams.forEach((p) => dataProps.push(formatParamProperty(p)));
|
|
96
|
-
cookieParams.forEach((p) => dataProps.push(formatParamProperty(p)));
|
|
97
|
-
// Add request body type if it exists
|
|
98
|
-
const hasData = (parameters && parameters.length > 0) || requestBody;
|
|
99
|
-
let dataType = "undefined";
|
|
100
|
-
const namedType = (0, utils_1.pascalCase)(operationId);
|
|
101
|
-
if (hasData) {
|
|
102
|
-
if (requestBody && dataProps.length > 0) {
|
|
103
|
-
dataType = `${namedType}Request & { ${dataProps.join("; ")} }`;
|
|
104
|
-
}
|
|
105
|
-
else if (requestBody) {
|
|
106
|
-
dataType = `${namedType}Request`;
|
|
107
|
-
}
|
|
108
|
-
else if (dataProps.length > 0) {
|
|
109
|
-
dataType = `{ ${dataProps.join("; ")} }`;
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
dataType = "Record<string, never>";
|
|
42
|
+
// Generate request/response types. Use the same operation-collection helper as the
|
|
43
|
+
// client generator so pathItem-level parameters and $ref parameters stay in sync.
|
|
44
|
+
for (const { operationId, parameters, requestBody, responses } of (0, utils_1.collectOperations)(spec)) {
|
|
45
|
+
// Generate request body type
|
|
46
|
+
if (requestBody) {
|
|
47
|
+
const requestSchema = (0, utils_1.getContentSchema)(requestBody.content);
|
|
48
|
+
if (requestSchema) {
|
|
49
|
+
const typeName = `${operationId}Request`;
|
|
50
|
+
output += generateTypeDefinition(typeName, requestSchema);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Generate response types
|
|
54
|
+
const errorTypes = [];
|
|
55
|
+
if (responses) {
|
|
56
|
+
for (const [code, response] of Object.entries(responses)) {
|
|
57
|
+
const responseObj = response;
|
|
58
|
+
const responseSchema = (0, utils_1.getContentSchema)(responseObj.content);
|
|
59
|
+
if (responseSchema) {
|
|
60
|
+
const typeName = `${operationId}Response${code}`;
|
|
61
|
+
output += generateTypeDefinition(typeName, responseSchema);
|
|
62
|
+
// Track non-2xx responses for error union type
|
|
63
|
+
if (!code.startsWith("2")) {
|
|
64
|
+
errorTypes.push(typeName);
|
|
113
65
|
}
|
|
114
|
-
output += `\n\nexport type ${(0, utils_1.pascalCase)(operationId)}Params = ${dataType};\n\n`;
|
|
115
66
|
}
|
|
116
67
|
}
|
|
117
68
|
}
|
|
69
|
+
// Generate error union type if there are error responses
|
|
70
|
+
if (errorTypes.length > 0) {
|
|
71
|
+
output += `export type ${(0, utils_1.pascalCase)(operationId)}Error = ${errorTypes.join(" | ")};\n\n`;
|
|
72
|
+
}
|
|
73
|
+
// Build data type parts
|
|
74
|
+
const dataProps = [];
|
|
75
|
+
const urlParams = parameters.filter((p) => p.in === "path");
|
|
76
|
+
const queryParams = parameters.filter((p) => p.in === "query");
|
|
77
|
+
const headerParams = parameters.filter((p) => p.in === "header");
|
|
78
|
+
const cookieParams = parameters.filter((p) => p.in === "cookie");
|
|
79
|
+
// Add path, query, header, and cookie parameters
|
|
80
|
+
urlParams.forEach((p) => dataProps.push(formatParamProperty(p, true))); // Path params always required
|
|
81
|
+
queryParams.forEach((p) => dataProps.push(formatParamProperty(p)));
|
|
82
|
+
headerParams.forEach((p) => dataProps.push(formatParamProperty(p)));
|
|
83
|
+
cookieParams.forEach((p) => dataProps.push(formatParamProperty(p)));
|
|
84
|
+
// Add request body type if it exists
|
|
85
|
+
const hasData = parameters.length > 0 || requestBody;
|
|
86
|
+
let dataType = "undefined";
|
|
87
|
+
const namedType = (0, utils_1.pascalCase)(operationId);
|
|
88
|
+
if (hasData) {
|
|
89
|
+
if (requestBody && dataProps.length > 0) {
|
|
90
|
+
dataType = `${namedType}Request & { ${dataProps.join("; ")} }`;
|
|
91
|
+
}
|
|
92
|
+
else if (requestBody) {
|
|
93
|
+
dataType = `${namedType}Request`;
|
|
94
|
+
}
|
|
95
|
+
else if (dataProps.length > 0) {
|
|
96
|
+
dataType = `{ ${dataProps.join("; ")} }`;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
dataType = "Record<string, never>";
|
|
100
|
+
}
|
|
101
|
+
output += `\n\nexport type ${(0, utils_1.pascalCase)(operationId)}Params = ${dataType};\n\n`;
|
|
102
|
+
}
|
|
118
103
|
}
|
|
119
104
|
return output;
|
|
120
105
|
}
|
package/dist/utils.js
CHANGED
|
@@ -239,12 +239,19 @@ function getTypeFromSchema(schema) {
|
|
|
239
239
|
if ("enum" in schema && schema.enum) {
|
|
240
240
|
// Filter out null/undefined enum values (some specs include null for nullable enums)
|
|
241
241
|
const enumValues = Object.values(schema.enum);
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
242
|
+
// Only build a literal union when every member is a primitive. Some specs
|
|
243
|
+
// (e.g. API Platform / PHP backed enums) emit objects as enum members, which
|
|
244
|
+
// can't form a literal union — joining them yields "[object Object]". In that
|
|
245
|
+
// case fall through to the declared `type` below for a safe result.
|
|
246
|
+
const allPrimitive = enumValues.every((e) => e === null || typeof e === "string" || typeof e === "number" || typeof e === "boolean");
|
|
247
|
+
if (allPrimitive) {
|
|
248
|
+
const hasNull = enumValues.some((e) => e === null);
|
|
249
|
+
const nullSuffix = hasNull ? " | null" : "";
|
|
250
|
+
const values = enumValues.filter((e) => e != null).map((e) => (typeof e === "string" ? `'${e}'` : e));
|
|
251
|
+
if (values.length === 0)
|
|
252
|
+
return `unknown${nullable}`;
|
|
253
|
+
return values.join(" | ") + nullSuffix + nullable;
|
|
254
|
+
}
|
|
248
255
|
}
|
|
249
256
|
// Handle types based on the "type" property
|
|
250
257
|
if ("type" in schema) {
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AACjC,OAAO,OAAO,MAAM,MAAM,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;AAG3B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAgD,EAAE,EAAE,CAC1E,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAa,EAA+B,EAAE;IACxE,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAkB,EAAE,EAAE;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,QAAQ,GAAG,QAAQ,CAAC;QAE7B,KAAK,SAAS;YACZ,OAAO,SAAS,GAAG,QAAQ,CAAC;QAE9B,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;QAEnC,KAAK,QAAQ;YACX,OAAO,CAAC,IAAI,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,6 +9,34 @@ import {
|
|
|
9
9
|
specTitle,
|
|
10
10
|
} from "../utils";
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Walks a request body schema (including allOf/oneOf/anyOf composition) and returns
|
|
14
|
+
* the union of property names contributed by all branches. Used to pick body fields
|
|
15
|
+
* out of the merged Params object so path/query/header values aren't sent as the body.
|
|
16
|
+
*/
|
|
17
|
+
function collectBodyPropertyNames(
|
|
18
|
+
schema: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject | undefined,
|
|
19
|
+
spec: OpenAPIV3.Document,
|
|
20
|
+
visitedRefs: Set<string> = new Set()
|
|
21
|
+
): string[] {
|
|
22
|
+
if (!schema) return [];
|
|
23
|
+
if ("$ref" in schema) {
|
|
24
|
+
if (visitedRefs.has(schema.$ref)) return [];
|
|
25
|
+
const next = new Set(visitedRefs).add(schema.$ref);
|
|
26
|
+
return collectBodyPropertyNames(resolveSchema(schema, spec), spec, next);
|
|
27
|
+
}
|
|
28
|
+
const names = new Set<string>();
|
|
29
|
+
if (schema.properties) Object.keys(schema.properties).forEach((k) => names.add(k));
|
|
30
|
+
for (const key of ["allOf", "oneOf", "anyOf"] as const) {
|
|
31
|
+
const branches = schema[key];
|
|
32
|
+
if (!branches) continue;
|
|
33
|
+
for (const branch of branches) {
|
|
34
|
+
collectBodyPropertyNames(branch, spec, visitedRefs).forEach((n) => names.add(n));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return Array.from(names);
|
|
38
|
+
}
|
|
39
|
+
|
|
12
40
|
function generateAxiosMethod(operation: OperationInfo, spec: OpenAPIV3.Document): string {
|
|
13
41
|
const { method, path, operationId, summary, description, deprecated, parameters, requestBody, responses } =
|
|
14
42
|
operation;
|
|
@@ -76,10 +104,15 @@ function generateAxiosMethod(operation: OperationInfo, spec: OpenAPIV3.Document)
|
|
|
76
104
|
requestBody && "content" in requestBody ? getContentSchema(requestBody.content) : undefined;
|
|
77
105
|
const requestBodySchema = requestBodyContent ? resolveSchema(requestBodyContent, spec) : undefined;
|
|
78
106
|
|
|
107
|
+
// Resolve property names contributed by the body schema, walking allOf/oneOf/anyOf so
|
|
108
|
+
// composition-based bodies are still treated as object bodies (not "primitive").
|
|
109
|
+
const bodyPropertyNames = requestBodySchema ? collectBodyPropertyNames(requestBodySchema, spec) : [];
|
|
110
|
+
const hasObjectBody = bodyPropertyNames.length > 0;
|
|
111
|
+
|
|
79
112
|
// Check if request body is a primitive type (string, number, boolean)
|
|
80
113
|
const isPrimitiveRequestBody =
|
|
81
114
|
requestBodySchema &&
|
|
82
|
-
!
|
|
115
|
+
!hasObjectBody &&
|
|
83
116
|
!requestBodySchema.type?.includes("object") &&
|
|
84
117
|
!requestBodySchema.type?.includes("array");
|
|
85
118
|
|
|
@@ -123,11 +156,9 @@ function generateAxiosMethod(operation: OperationInfo, spec: OpenAPIV3.Document)
|
|
|
123
156
|
};`
|
|
124
157
|
: "",
|
|
125
158
|
|
|
126
|
-
|
|
159
|
+
hasObjectBody && !formDataSchema?.properties
|
|
127
160
|
? `const bodyData = {
|
|
128
|
-
${
|
|
129
|
-
.map(([key]) => `["${key}"]: data["${key}"]`)
|
|
130
|
-
.join(",\n ")}
|
|
161
|
+
${bodyPropertyNames.map((key) => `["${key}"]: data["${key}"]`).join(",\n ")}
|
|
131
162
|
};`
|
|
132
163
|
: "",
|
|
133
164
|
|
|
@@ -155,8 +186,8 @@ function generateAxiosMethod(operation: OperationInfo, spec: OpenAPIV3.Document)
|
|
|
155
186
|
// Note: Don't set Content-Type for FormData - Axios will set it automatically with the correct boundary
|
|
156
187
|
requestBody
|
|
157
188
|
? responseType === "void"
|
|
158
|
-
? `await apiClient.${method}<${responseType}>(url, ${formDataSchema?.properties ||
|
|
159
|
-
: `const res = await apiClient.${method}<${responseType}>(url, ${formDataSchema?.properties ||
|
|
189
|
+
? `await apiClient.${method}<${responseType}>(url, ${formDataSchema?.properties || hasObjectBody ? "bodyData" : "data"}, axiosConfig);`
|
|
190
|
+
: `const res = await apiClient.${method}<${responseType}>(url, ${formDataSchema?.properties || hasObjectBody ? "bodyData" : "data"}, axiosConfig);`
|
|
160
191
|
: responseType === "void"
|
|
161
192
|
? `await apiClient.${method}<${responseType}>(url, axiosConfig);`
|
|
162
193
|
: `const res = await apiClient.${method}<${responseType}>(url, axiosConfig);`,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { OpenAPIV3 } from "openapi-types";
|
|
2
2
|
import {
|
|
3
|
+
collectOperations,
|
|
3
4
|
getContentSchema,
|
|
4
5
|
getTypeFromSchema,
|
|
5
6
|
pascalCase,
|
|
@@ -56,86 +57,71 @@ export function generateTypeDefinitions(spec: OpenAPIV3.Document): string {
|
|
|
56
57
|
generatedTypes.add(name);
|
|
57
58
|
}
|
|
58
59
|
|
|
59
|
-
// Generate request/response types
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
// Generate request body type
|
|
71
|
-
if (requestBody) {
|
|
72
|
-
const content = (requestBody as OpenAPIV3.RequestBodyObject).content;
|
|
73
|
-
const requestSchema = getContentSchema(content);
|
|
74
|
-
if (requestSchema) {
|
|
75
|
-
const typeName = `${operationId}Request`;
|
|
76
|
-
output += generateTypeDefinition(typeName, requestSchema as OpenAPIV3.SchemaObject);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
60
|
+
// Generate request/response types. Use the same operation-collection helper as the
|
|
61
|
+
// client generator so pathItem-level parameters and $ref parameters stay in sync.
|
|
62
|
+
for (const { operationId, parameters, requestBody, responses } of collectOperations(spec)) {
|
|
63
|
+
// Generate request body type
|
|
64
|
+
if (requestBody) {
|
|
65
|
+
const requestSchema = getContentSchema(requestBody.content);
|
|
66
|
+
if (requestSchema) {
|
|
67
|
+
const typeName = `${operationId}Request`;
|
|
68
|
+
output += generateTypeDefinition(typeName, requestSchema as OpenAPIV3.SchemaObject);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
79
71
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
}
|
|
72
|
+
// Generate response types
|
|
73
|
+
const errorTypes: string[] = [];
|
|
74
|
+
if (responses) {
|
|
75
|
+
for (const [code, response] of Object.entries(responses)) {
|
|
76
|
+
const responseObj = response as OpenAPIV3.ResponseObject;
|
|
77
|
+
const responseSchema = getContentSchema(responseObj.content);
|
|
78
|
+
if (responseSchema) {
|
|
79
|
+
const typeName = `${operationId}Response${code}`;
|
|
80
|
+
output += generateTypeDefinition(typeName, responseSchema as OpenAPIV3.SchemaObject);
|
|
81
|
+
|
|
82
|
+
// Track non-2xx responses for error union type
|
|
83
|
+
if (!code.startsWith("2")) {
|
|
84
|
+
errorTypes.push(typeName);
|
|
95
85
|
}
|
|
96
86
|
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
97
89
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
90
|
+
// Generate error union type if there are error responses
|
|
91
|
+
if (errorTypes.length > 0) {
|
|
92
|
+
output += `export type ${pascalCase(operationId)}Error = ${errorTypes.join(" | ")};\n\n`;
|
|
93
|
+
}
|
|
102
94
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
} else if (dataProps.length > 0) {
|
|
132
|
-
dataType = `{ ${dataProps.join("; ")} }`;
|
|
133
|
-
} else {
|
|
134
|
-
dataType = "Record<string, never>";
|
|
135
|
-
}
|
|
136
|
-
output += `\n\nexport type ${pascalCase(operationId)}Params = ${dataType};\n\n`;
|
|
137
|
-
}
|
|
95
|
+
// Build data type parts
|
|
96
|
+
const dataProps: string[] = [];
|
|
97
|
+
|
|
98
|
+
const urlParams = parameters.filter((p) => p.in === "path");
|
|
99
|
+
const queryParams = parameters.filter((p) => p.in === "query");
|
|
100
|
+
const headerParams = parameters.filter((p) => p.in === "header");
|
|
101
|
+
const cookieParams = parameters.filter((p) => p.in === "cookie");
|
|
102
|
+
|
|
103
|
+
// Add path, query, header, and cookie parameters
|
|
104
|
+
urlParams.forEach((p) => dataProps.push(formatParamProperty(p, true))); // Path params always required
|
|
105
|
+
queryParams.forEach((p) => dataProps.push(formatParamProperty(p)));
|
|
106
|
+
headerParams.forEach((p) => dataProps.push(formatParamProperty(p)));
|
|
107
|
+
cookieParams.forEach((p) => dataProps.push(formatParamProperty(p)));
|
|
108
|
+
|
|
109
|
+
// Add request body type if it exists
|
|
110
|
+
const hasData = parameters.length > 0 || requestBody;
|
|
111
|
+
|
|
112
|
+
let dataType = "undefined";
|
|
113
|
+
const namedType = pascalCase(operationId);
|
|
114
|
+
if (hasData) {
|
|
115
|
+
if (requestBody && dataProps.length > 0) {
|
|
116
|
+
dataType = `${namedType}Request & { ${dataProps.join("; ")} }`;
|
|
117
|
+
} else if (requestBody) {
|
|
118
|
+
dataType = `${namedType}Request`;
|
|
119
|
+
} else if (dataProps.length > 0) {
|
|
120
|
+
dataType = `{ ${dataProps.join("; ")} }`;
|
|
121
|
+
} else {
|
|
122
|
+
dataType = "Record<string, never>";
|
|
138
123
|
}
|
|
124
|
+
output += `\n\nexport type ${pascalCase(operationId)}Params = ${dataType};\n\n`;
|
|
139
125
|
}
|
|
140
126
|
}
|
|
141
127
|
|
package/src/utils.ts
CHANGED
|
@@ -272,11 +272,20 @@ export function getTypeFromSchema(
|
|
|
272
272
|
if ("enum" in schema && schema.enum) {
|
|
273
273
|
// Filter out null/undefined enum values (some specs include null for nullable enums)
|
|
274
274
|
const enumValues = Object.values(schema.enum);
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
275
|
+
// Only build a literal union when every member is a primitive. Some specs
|
|
276
|
+
// (e.g. API Platform / PHP backed enums) emit objects as enum members, which
|
|
277
|
+
// can't form a literal union — joining them yields "[object Object]". In that
|
|
278
|
+
// case fall through to the declared `type` below for a safe result.
|
|
279
|
+
const allPrimitive = enumValues.every(
|
|
280
|
+
(e) => e === null || typeof e === "string" || typeof e === "number" || typeof e === "boolean"
|
|
281
|
+
);
|
|
282
|
+
if (allPrimitive) {
|
|
283
|
+
const hasNull = enumValues.some((e) => e === null);
|
|
284
|
+
const nullSuffix = hasNull ? " | null" : "";
|
|
285
|
+
const values = enumValues.filter((e) => e != null).map((e) => (typeof e === "string" ? `'${e}'` : e));
|
|
286
|
+
if (values.length === 0) return `unknown${nullable}`;
|
|
287
|
+
return values.join(" | ") + nullSuffix + nullable;
|
|
288
|
+
}
|
|
280
289
|
}
|
|
281
290
|
|
|
282
291
|
// Handle types based on the "type" property
|