react-query-lightbase-codegen 2.0.6 → 2.0.7

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.
@@ -0,0 +1,5 @@
1
+ import { OpenAPIObject } from 'openapi3-ts';
2
+ /**
3
+ * Import and parse the openapi spec from a yaml/json
4
+ */
5
+ export declare const convertSwaggerFile: (data: string, extension: 'yaml' | 'json') => Promise<OpenAPIObject>;
@@ -0,0 +1,26 @@
1
+ import swagger2openapi from 'swagger2openapi';
2
+ import yaml from 'js-yaml';
3
+ /**
4
+ * Import and parse the openapi spec from a yaml/json
5
+ */
6
+ export const convertSwaggerFile = (data, extension) => {
7
+ const schema = extension === 'yaml' ? yaml.load(data) : JSON.parse(data);
8
+ return new Promise((resolve, reject) => {
9
+ if (!schema.openapi || !schema.openapi.startsWith('3.')) {
10
+ swagger2openapi.convertObj(schema, {}, (err, convertedObj) => {
11
+ if (err) {
12
+ reject(err);
13
+ }
14
+ else {
15
+ // @ts-ignore
16
+ convertedObj.openapi.basePath = convertedObj.original.basePath;
17
+ resolve(convertedObj.openapi);
18
+ }
19
+ });
20
+ }
21
+ else {
22
+ resolve(schema);
23
+ }
24
+ });
25
+ };
26
+ //# sourceMappingURL=convertSwaggerFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertSwaggerFile.js","sourceRoot":"","sources":["../src/convertSwaggerFile.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,iBAAiB,CAAC;AAC9C,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,SAA0B,EAA0B,EAAE;IACrG,MAAM,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;gBAC3D,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,aAAa;oBACb,YAAY,CAAC,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC/D,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { ComponentsObject, OperationObject, ParameterObject, ReferenceObject } from 'openapi3-ts';
2
+ export declare let imports: string[];
3
+ /**
4
+ * Generate a react-query component from openapi operation specs
5
+ */
6
+ export declare const createHook: ({ operation, verb, route, operationIds, parameters, schemasComponents, headerFilters, }: {
7
+ operation: OperationObject;
8
+ verb: string;
9
+ route: string;
10
+ operationIds: string[];
11
+ parameters: (ReferenceObject | ParameterObject)[] | undefined;
12
+ schemasComponents?: ComponentsObject | undefined;
13
+ headerFilters?: string[] | undefined;
14
+ }) => {
15
+ implementation: string;
16
+ imports: string[];
17
+ queryImports: ("mutation" | "query" | "infiniteQuery")[];
18
+ };
@@ -0,0 +1,448 @@
1
+ import lodash from 'lodash';
2
+ const { get, groupBy } = lodash;
3
+ import { formatDescription, getResReqTypes, isReference, resolveValue } from './utils.js';
4
+ import pasCase from 'case';
5
+ const { pascal, camel } = pasCase;
6
+ const IdentifierRegexp = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/;
7
+ /**
8
+ * Return every params in a path
9
+ */
10
+ const getParamsInPath = (path) => {
11
+ let n;
12
+ const output = [];
13
+ const templatePathRegex = /\{(\w+)}/g;
14
+ while ((n = templatePathRegex.exec(path)) !== null) {
15
+ output.push(n[1]);
16
+ }
17
+ return output;
18
+ };
19
+ export let imports = [];
20
+ /**
21
+ * Generate a react-query component from openapi operation specs
22
+ */
23
+ export const createHook = ({ operation, verb, route, operationIds, parameters, schemasComponents, headerFilters, }) => {
24
+ const { operationId = route.replace('/', '') } = operation;
25
+ if (operationId === '*') {
26
+ throw new Error(`Invalid operationId/Route set for ${verb} ${route}`);
27
+ }
28
+ if (operationIds.includes(operationId)) {
29
+ return { implementation: '', imports: [], queryImports: [] };
30
+ }
31
+ operationIds.push(operationId);
32
+ imports = [];
33
+ route = route.replace(/\{/g, '${').replace('//', '/'); // `/pet/{id}` => `/pet/${id}`
34
+ // Remove the last param of the route if we are in the DELETE case
35
+ let lastParamInTheRoute = null;
36
+ const componentName = pascal(operationId);
37
+ const isOk = ([statusCode]) => statusCode.toString().startsWith('2');
38
+ const responseTypes = getResReqTypes(Object.entries(operation.responses).filter(isOk)) || 'unknown';
39
+ const requestBodyTypes = operation.requestBody ? getResReqTypes([['body', operation.requestBody]]) : null;
40
+ let queryImports = [];
41
+ const paramsInPath = getParamsInPath(route).filter((param) => !(verb === 'delete' && param === lastParamInTheRoute));
42
+ const { query: queryParams = [], path: pathParams = [], header = [], } = groupBy([...(parameters || []), ...(operation.parameters || [])].map((p) => {
43
+ if (isReference(p)) {
44
+ return get(schemasComponents, p.$ref.replace('#/components/', '').replace('/', '.'));
45
+ }
46
+ else {
47
+ return p;
48
+ }
49
+ }), 'in');
50
+ const headerParams = header.filter((p) => !headerFilters?.includes(p.name));
51
+ const requiredParams = [...queryParams, ...pathParams, ...headerParams].filter((p) => p.required);
52
+ // TODO: extract all requestBody or remove useQuery variants
53
+ let enabledParam = true;
54
+ if (requiredParams.length) {
55
+ enabledParam = 'hasDefinedProps(params,';
56
+ enabledParam += requiredParams.map((p) => `"${p.name}"`).join(', ');
57
+ }
58
+ if (operation.requestBody && 'content' in operation.requestBody) {
59
+ // get all required requestBody schemas and output the required properties
60
+ const generatedBodyProps = Object.keys(operation.requestBody.content).reduce((acc, contentType) => {
61
+ if (contentType.startsWith('application/json') ||
62
+ contentType.startsWith('application/ld+json') ||
63
+ contentType.startsWith('application/octet-stream')) {
64
+ // @ts-ignore
65
+ const schema = operation.requestBody.content[contentType].schema;
66
+ if ('required' in schema) {
67
+ // @ts-ignore
68
+ acc.push(...schema.required);
69
+ }
70
+ }
71
+ return acc;
72
+ }, []);
73
+ if (generatedBodyProps.length) {
74
+ if (enabledParam === true) {
75
+ enabledParam = 'hasDefinedProps(params,';
76
+ enabledParam += generatedBodyProps.map((p) => `"${p}"`).join(', ');
77
+ }
78
+ else {
79
+ enabledParam += ',';
80
+ enabledParam += generatedBodyProps.map((p) => `"${p}"`).join(', ');
81
+ }
82
+ }
83
+ }
84
+ const paramsTypes = paramsInPath
85
+ .map((p) => {
86
+ try {
87
+ const { name, required, schema } = pathParams.find((i) => i.name === p);
88
+ return `${name}${required ? '' : '?'}: ${resolveValue(schema)}`;
89
+ }
90
+ catch (err) {
91
+ throw new Error(`The path params ${p} can't be found in parameters (${operationId})`);
92
+ }
93
+ })
94
+ .join('; ');
95
+ const queryParamsType = queryParams
96
+ .map((p) => {
97
+ const processedName = IdentifierRegexp.test(p.name) ? p.name : `"${p.name}"`;
98
+ return `${formatDescription(p.description)}
99
+ ${processedName}${p.required ? '' : '?'}: ${resolveValue(p.schema)}`;
100
+ })
101
+ .join(';\n ');
102
+ const headerType = headerParams
103
+ .map((p) => {
104
+ try {
105
+ const { name, required, schema } = headerParams.find((i) => i.name === p.name);
106
+ return `"${name}"${required ? '' : '?'}: ${resolveValue(schema)}`;
107
+ }
108
+ catch (err) {
109
+ throw new Error(`The path params ${p} can't be found in parameters (${operationId})`);
110
+ }
111
+ })
112
+ .join('; ');
113
+ // Retrieve the type of the param for delete verb
114
+ const lastParamInTheRouteDefinition = operation.parameters && lastParamInTheRoute
115
+ ? operation.parameters.find((p) => {
116
+ if (isReference(p)) {
117
+ return false;
118
+ }
119
+ return p.name === lastParamInTheRoute;
120
+ }) // Reference is not possible
121
+ : { schema: { type: 'string' } };
122
+ if (!lastParamInTheRouteDefinition) {
123
+ throw new Error(`The path params ${lastParamInTheRoute} can't be found in parameters (${operationId})`);
124
+ }
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);
133
+ let output = `\n\n${description}`;
134
+ const headerParam = headerType && headerType !== 'void' ? `${headerType};` : '';
135
+ const queryParam = queryParamsType && queryParamsType !== 'void' ? `${queryParamsType}` : '';
136
+ const requestBodyComponent = requestBodyTypes && requestBodyTypes !== 'void' ? `${requestBodyTypes}` : '';
137
+ const isUpdateRequest = ['post', 'patch', 'put'].includes(verb);
138
+ const fetchName = camel(componentName);
139
+ const hasRequestBodyArrray = requestBodyComponent && requestBodyComponent.includes('[]');
140
+ const body = hasRequestBodyArrray ? `{body: ${requestBodyComponent}}` : `${requestBodyComponent}`;
141
+ const bodyProps = hasRequestBodyArrray ? `{body, ...props}` : 'props';
142
+ // const generateEnabledBodyProps = () => {
143
+ const definitionKey = Object.keys(schemasComponents?.schemas || {}).find((key) => pascal(key) === requestBodyComponent);
144
+ if (definitionKey && !hasRequestBodyArrray) {
145
+ const scheme = schemasComponents?.schemas?.[definitionKey];
146
+ const generatedBodyProps = Object.keys(scheme.properties);
147
+ const requiredBodyProps = generatedBodyProps.filter((p) => scheme.required?.includes(p));
148
+ if (requiredBodyProps.length) {
149
+ if (enabledParam === true) {
150
+ enabledParam = 'hasDefinedProps(params,';
151
+ enabledParam += requiredBodyProps.map((p) => `"${p}"`).join(', ');
152
+ }
153
+ else {
154
+ enabledParam += ',';
155
+ enabledParam += requiredBodyProps.map((p) => `"${p}"`).join(', ');
156
+ }
157
+ }
158
+ }
159
+ if (operation.requestBody && 'content' in operation.requestBody) {
160
+ let generatedBodyProps = [];
161
+ for (let contentType of Object.keys(operation.requestBody.content)) {
162
+ if (contentType.startsWith('application/json') ||
163
+ contentType.startsWith('application/ld+json') ||
164
+ contentType.startsWith('application/octet-stream')) {
165
+ const schema = operation.requestBody.content[contentType].schema;
166
+ if ('properties' in schema) {
167
+ // @ts-ignore
168
+ generatedBodyProps.push(...Object.keys(schema.properties));
169
+ }
170
+ }
171
+ }
172
+ }
173
+ if (enabledParam !== true) {
174
+ enabledParam += ')';
175
+ }
176
+ const createQueryHooks = (emptyParams) => {
177
+ const key = emptyParams ? '' : `params`;
178
+ const queryParamType = emptyParams ? '' : `Partial<${componentName}Params>`;
179
+ const queryKey = emptyParams
180
+ ? `["${componentName.toLowerCase()}"]`
181
+ : `["${componentName.toLowerCase()}", params]`;
182
+ const props = emptyParams ? `props?` : `params`;
183
+ const propTest = emptyParams ? '' : `${props}: ${queryParamType}`;
184
+ const createQuery = () => `
185
+ export function get${componentName}QueryOptions(${propTest}) {
186
+ const enabled = ${enabledParam}
187
+
188
+ return queryOptions({
189
+ queryKey: ${queryKey},
190
+ queryFn: enabled ? () => ${fetchName}(${key}) : skipToken,
191
+ });
192
+ }`;
193
+ queryImports.push('query');
194
+ return createQuery();
195
+ };
196
+ const generateProps = (props) => {
197
+ return props.map((item) => `["${item.name}"]: props["${item.name}"]`).join(',');
198
+ };
199
+ const generateBodyProps = () => {
200
+ if (definitionKey && !hasRequestBodyArrray) {
201
+ const scheme = schemasComponents?.schemas?.[definitionKey];
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
218
+ .map((item) => `["${item}"]: props["${item}"]`)
219
+ .join(',');
220
+ return `const body = {${generatedBodyProps}}`;
221
+ }
222
+ if (operation.requestBody && 'content' in operation.requestBody) {
223
+ let generatedBodyProps = [];
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) {
246
+ if (contentType.startsWith('application/json') ||
247
+ contentType.startsWith('application/ld+json') ||
248
+ contentType.startsWith('application/octet-stream')) {
249
+ const schema = operation.requestBody.content[contentType].schema;
250
+ if ('properties' in schema) {
251
+ // @ts-ignore
252
+ generatedBodyProps.push(...Object.keys(schema.properties));
253
+ }
254
+ }
255
+ }
256
+ return `const body = {${generatedBodyProps.map((item) => `${item}: props["${item}"]`).join(',')}}`;
257
+ }
258
+ };
259
+ const hasFormData = generateBodyProps()?.includes('FormData');
260
+ const defaultHeaders = JSON.stringify({
261
+ ContentType: hasFormData ? 'multipart/form-data' : 'application/json',
262
+ });
263
+ if (!requestBodyComponent && !paramsInPath.length && !queryParam && !headerParam) {
264
+ output += `
265
+ export const ${fetchName} = async () => {
266
+ const result = await api.${verb}<${responseTypes}>("${route}");
267
+ return result.data;
268
+ }
269
+ `;
270
+ }
271
+ if (!requestBodyComponent && paramsInPath.length && queryParam && !headerParam) {
272
+ const config = isUpdateRequest ? 'undefined,{params}' : '{params}';
273
+ output += `
274
+ export type ${componentName}Params = {
275
+ ${paramsTypes}
276
+ ${queryParamsType};
277
+ }
278
+
279
+ export const ${fetchName} = async (props:${componentName}Params) => {
280
+ const {${paramsInPath.join(', ')}, ...params} = props
281
+ const result = await api.${verb}<${responseTypes}>(\`${route}\`, ${config})
282
+ return result.data;
283
+ }`;
284
+ }
285
+ if (!requestBodyComponent && paramsInPath.length && !queryParam && !headerParam) {
286
+ output += `
287
+ export type ${componentName}Params = {
288
+ ${paramsTypes}
289
+ }
290
+
291
+ export const ${fetchName} = async (props: ${componentName}Params ) => {
292
+ const result = await api.${verb}<${responseTypes}>(\`${route.replace(/\{/g, '{props.')}\`);
293
+ return result.data;
294
+ }
295
+ `;
296
+ }
297
+ if (!requestBodyComponent && !paramsInPath.length && queryParam && !headerParam) {
298
+ const config = isUpdateRequest ? 'null,{params}' : '{params}';
299
+ output += `
300
+ export type ${componentName}Params = {
301
+ ${queryParamsType}
302
+ }
303
+
304
+ export const ${fetchName} = async (params: ${componentName}Params) => {
305
+ const result = await api.${verb}<${responseTypes}>("${route}", ${config})
306
+ return result.data;
307
+ }
308
+ `;
309
+ }
310
+ if (!requestBodyComponent && !paramsInPath.length && queryParam && headerParam) {
311
+ const config = isUpdateRequest ? 'null,{headers, params: queryParams}' : '{headers, params: queryParams}';
312
+ output += `
313
+ export type ${componentName}Params = {
314
+ ${headerParam}
315
+ ${queryParamsType}
316
+ }
317
+ export const ${fetchName} = async (props: ${componentName}Params) => {
318
+ const headers = {${generateProps(header)}}
319
+ const queryParams = {${generateProps(queryParams)}}
320
+ const result = await api.${verb}<${responseTypes}>("${route}", ${config})
321
+ return result.data
322
+ }`;
323
+ }
324
+ if (!requestBodyComponent && !paramsInPath.length && !queryParam && headerParam) {
325
+ const config = isUpdateRequest ? 'null,{headers}' : '{headers}';
326
+ output += `
327
+ export type ${componentName}Params = {
328
+ ${headerParam}
329
+ };
330
+
331
+ export const ${fetchName} = async (headers: ${componentName}Params) => {
332
+ const result = await api.${verb}<${responseTypes}>("${route}", ${config});
333
+ return result.data;
334
+ }
335
+ `;
336
+ }
337
+ if (requestBodyComponent && !paramsInPath.length && !queryParam && !headerParam) {
338
+ output += `
339
+
340
+ export type ${componentName}Params = ${requestBodyComponent}
341
+
342
+ export const ${fetchName} = async (body: ${componentName}Params) => {
343
+ const result = await api.${verb}<${responseTypes}>("${route}", body, {headers: ${defaultHeaders}})
344
+ return result.data
345
+ }
346
+ `;
347
+ }
348
+ if (requestBodyComponent && !paramsInPath.length && queryParam && !headerParam) {
349
+ output += `
350
+ export type ${componentName}Params = ${body} & {
351
+ ${queryParamsType}
352
+ }
353
+
354
+ export const ${fetchName} = async (${bodyProps}: ${componentName}Params) => {
355
+ ${generateBodyProps()}
356
+ const params = {${generateProps(queryParams)}}
357
+ const result = await api.${verb}<${responseTypes}>("${route}", body, {params, headers: ${defaultHeaders}})
358
+ return result.data
359
+ }
360
+ `;
361
+ }
362
+ if (requestBodyComponent && !paramsInPath.length && !queryParam && headerParam) {
363
+ output += `
364
+ export type ${componentName}Params = ${body} & {
365
+ ${headerParam}
366
+ };
367
+
368
+ export const ${fetchName} = async (${bodyProps}: ${componentName}Params) => {
369
+ ${generateBodyProps()}
370
+ const headers = null
371
+ const result = await api.${verb}<${responseTypes}>("${route}", body, {headers})
372
+ return result.data
373
+ }
374
+ `;
375
+ }
376
+ if (requestBodyComponent && !paramsInPath.length && queryParam && headerParam) {
377
+ output += `
378
+ export type ${componentName}Params = ${body} & {
379
+ ${headerParam}
380
+ ${queryParamsType}
381
+ };
382
+ export const ${fetchName} = async (${bodyProps}: ${componentName}Params) => {
383
+ ${generateBodyProps()}
384
+ const headers = null
385
+ const params = {${generateProps(queryParams)}}
386
+ const result = await api.${verb}<${responseTypes}>("${route}", body, {headers, params})
387
+ return result.data
388
+ }
389
+ `;
390
+ }
391
+ if (requestBodyComponent && paramsInPath.length && !queryParam && !headerParam) {
392
+ output += `
393
+ export type ${componentName}Params = ${body} & {
394
+ ${headerParam}
395
+ ${paramsTypes}
396
+ };
397
+
398
+ export const ${fetchName} = async (${bodyProps}: ${componentName}Params) => {
399
+ ${generateBodyProps()}
400
+ const result = await api.${verb}<${responseTypes}>(\`${route.replace(/\{/g, '{props.')}\`, body, {headers: ${defaultHeaders}})
401
+ return result.data
402
+ }
403
+ `;
404
+ }
405
+ if (requestBodyComponent && paramsInPath.length && queryParam && !headerParam) {
406
+ output += `
407
+ export type ${componentName}Params = ${body} & {
408
+ ${headerParam}
409
+ ${paramsTypes}
410
+ ${queryParamsType}
411
+ };
412
+
413
+ export const ${fetchName} = async (${bodyProps}: ${componentName}Params) => {
414
+ ${generateBodyProps()}
415
+ const params = {${generateProps(queryParams)}}
416
+ const result = await api.${verb}<${responseTypes}>(\`${route.replace(/\{/g, '{props.')}\`, body, {params, headers: ${defaultHeaders}})
417
+ return result.data
418
+ }
419
+ `;
420
+ }
421
+ if (requestBodyComponent && paramsInPath.length && queryParam && headerParam) {
422
+ output += `// TODO: NOT SUPPORTED requestBodyComponent && paramsInPath && queryParam && headerParam)`;
423
+ }
424
+ if (!requestBodyComponent && paramsInPath.length && !queryParam && headerParam) {
425
+ const config = isUpdateRequest ? 'null,{headers}' : '{headers}';
426
+ output += `
427
+ export type ${componentName}Params = {
428
+ ${headerParam}
429
+ ${paramsTypes}
430
+ };
431
+
432
+ export const ${fetchName} = async (props: ${componentName}Params) => {
433
+ const headers = {${generateProps(header)}}
434
+ const result = await api.${verb}<${responseTypes}>(\`${route.replace(/\{/g, '{props.')}\`, ${config})
435
+ return result.data
436
+ }
437
+ `;
438
+ }
439
+ if (!requestBodyComponent && paramsInPath.length && queryParam && headerParam) {
440
+ output += `// TODO: NOT SUPPORTED (paramsInPath && queryParam && headerParam)`;
441
+ }
442
+ if (requestBodyComponent && paramsInPath.length && !queryParam && headerParam) {
443
+ output += `// TODO: NOT SUPPORTED (requestBodyComponent && paramsInPath && headerParam)`;
444
+ }
445
+ output += createQueryHooks(!requestBodyComponent && !paramsInPath.length && !queryParam && !headerParam);
446
+ return { implementation: output, imports, queryImports };
447
+ };
448
+ //# sourceMappingURL=generateHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateHooks.js","sourceRoot":"","sources":["../src/generateHooks.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AAShC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,OAAO,MAAM,MAAM,CAAC;AAE3B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;AAElC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAEtD;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE;IACvC,IAAI,CAAC,CAAC;IACN,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,iBAAiB,GAAG,WAAW,CAAC;IACtC,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,IAAI,OAAO,GAAa,EAAE,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,SAAS,EACT,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,aAAa,GASd,EAAE,EAAE;IACH,MAAM,EAAE,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;IAC3D,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAC/D,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE/B,OAAO,GAAG,EAAE,CAAC;IAEb,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,8BAA8B;IAErF,kEAAkE;IAClE,IAAI,mBAAmB,GAAkB,IAAI,CAAC;IAE9C,MAAM,aAAa,GAAG,MAAM,CAAC,WAAY,CAAC,CAAC;IAE3C,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAA6C,EAAE,EAAE,CACxE,UAAU,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAExC,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC;IACpG,MAAM,gBAAgB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1G,IAAI,YAAY,GAAG,EAAmD,CAAC;IAEvE,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,CAChD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,KAAK,mBAAmB,CAAC,CACjE,CAAC;IAEF,MAAM,EACJ,KAAK,EAAE,WAAW,GAAG,EAAE,EACvB,IAAI,EAAE,UAAU,GAAG,EAAE,EACrB,MAAM,GAAG,EAAE,GACZ,GAAG,OAAO,CACT,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAkB,CAAC,CAAC,EAAE,EAAE;QAClF,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC,CAAC,EACF,IAAI,CACL,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClG,4DAA4D;IAC5D,IAAI,YAAY,GAAqB,IAAI,CAAC;IAC1C,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,YAAY,GAAG,yBAAyB,CAAC;QACzC,YAAY,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAChE,0EAA0E;QAC1E,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;YAChG,IACE,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC;gBAC1C,WAAW,CAAC,UAAU,CAAC,qBAAqB,CAAC;gBAC7C,WAAW,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAClD,CAAC;gBACD,aAAa;gBACb,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAO,CAAC;gBAElE,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;oBACzB,aAAa;oBACb,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,IAAI,kBAAkB,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,YAAY,GAAG,yBAAyB,CAAC;gBACzC,YAAY,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,YAAY,IAAI,GAAG,CAAC;gBACpB,YAAY,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,YAAY;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAE,CAAC;YACzE,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,MAAO,CAAC,EAAE,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,kCAAkC,WAAW,GAAG,CAAC,CAAC;QACxF,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,eAAe,GAAG,WAAW;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;QAC7E,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC;QACxC,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,MAAO,CAAC,EAAE,CAAC;IACxE,CAAC,CAAC;SACD,IAAI,CAAC,OAAO,CAAC,CAAC;IAEjB,MAAM,UAAU,GAAG,YAAY;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAE,CAAC;YAChF,OAAO,IAAI,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,MAAO,CAAC,EAAE,CAAC;QACrE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,kCAAkC,WAAW,GAAG,CAAC,CAAC;QACxF,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,iDAAiD;IACjD,MAAM,6BAA6B,GACjC,SAAS,CAAC,UAAU,IAAI,mBAAmB;QACzC,CAAC,CAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC;QACxC,CAAC,CAAiC,CAAC,4BAA4B;QACjE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;IAErC,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,mBAAmB,mBAAmB,kCAAkC,WAAW,GAAG,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,kBAAkB,GAAG,SAAS,IAAI,kBAAkB,WAAW,UAAU,KAAK,EAAE,CAAC;IACrF,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,kBAAkB,IAAI,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,kBAAkB,IAAI,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAE1D,IAAI,MAAM,GAAG,OAAO,WAAW,EAAE,CAAC;IAElC,MAAM,WAAW,GAAG,UAAU,IAAI,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,MAAM,UAAU,GAAG,eAAe,IAAI,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7F,MAAM,oBAAoB,GAAG,gBAAgB,IAAI,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1G,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IAEvC,MAAM,oBAAoB,GAAG,oBAAoB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzF,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,UAAU,oBAAoB,GAAG,CAAC,CAAC,CAAC,GAAG,oBAAoB,EAAE,CAAC;IAClG,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;IAEtE,2CAA2C;IAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CACtE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,oBAAoB,CAC9C,CAAC;IAEF,IAAI,aAAa,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,iBAAiB,EAAE,OAAO,EAAE,CAAC,aAAa,CAAiB,CAAC;QAC3E,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAA0B,CAAC,CAAC;QAC1E,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzF,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,YAAY,GAAG,yBAAyB,CAAC;gBACzC,YAAY,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,YAAY,IAAI,GAAG,CAAC;gBACpB,YAAY,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAChE,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,KAAK,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACnE,IACE,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC;gBAC1C,WAAW,CAAC,UAAU,CAAC,qBAAqB,CAAC;gBAC7C,WAAW,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAClD,CAAC;gBACD,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAO,CAAC;gBAElE,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;oBAC3B,aAAa;oBACb,kBAAkB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,YAAY,IAAI,GAAG,CAAC;IACtB,CAAC;IAED,MAAM,gBAAgB,GAAG,CAAC,WAAqB,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,aAAa,SAAS,CAAC;QAC5E,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC,KAAK,aAAa,CAAC,WAAW,EAAE,IAAI;YACtC,CAAC,CAAC,KAAK,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC;QACjD,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,cAAc,EAAE,CAAC;QAClE,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC;yBACL,aAAa,gBAAgB,QAAQ;wBACtC,YAAY;;;oBAGhB,QAAQ;oCACQ,SAAS,IAAI,GAAG;;MAE9C,CAAC;QAEH,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAE,EAAE;QACjD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClF,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,aAAa,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,iBAAiB,EAAE,OAAO,EAAE,CAAC,aAAa,CAAiB,CAAC;YAC3E,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAA0B,CAAC,CAAC;YACvE,IACE,SAAS,CAAC,WAAW;gBACrB,SAAS,IAAI,SAAS,CAAC,WAAW;gBAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,qBAAqB,EACvE,CAAC;gBACD,IAAI,QAAQ,GAAG,6BAA6B,CAAC;gBAC7C,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpC,QAAQ,IAAI,kBAAkB,IAAI,cAAc,IAAI,MAAM,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,QAAQ,IAAI,iBAAiB,IAAI,iCAAiC,IAAI,cAAc,IAAI,SAAS,CAAC;oBACpG,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,MAAM,kBAAkB,GAAG,eAAe;iBACvC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,IAAI,cAAc,IAAI,IAAI,CAAC;iBACtD,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,iBAAiB,kBAAkB,GAAG,CAAC;QAChD,CAAC;QAED,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAChE,IAAI,kBAAkB,GAAG,EAAE,CAAC;YAC5B,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEvB,QAAQ,IAAI,6BAA6B,CAAC;gBAE1C,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;oBACrC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAO,CAAC;oBAClE,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;wBAC3B,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;wBAC9D,KAAK,IAAI,IAAI,IAAI,gBAAgB,EAAE,CAAC;4BAClC,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gCACpC,QAAQ,IAAI,kBAAkB,IAAI,cAAc,IAAI,iBAAiB,CAAC;4BACxE,CAAC;iCAAM,CAAC;gCACN,QAAQ,IAAI,iBAAiB,IAAI,iCAAiC,IAAI,cAAc,IAAI,oBAAoB,CAAC;4BAC/G,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;gBACrC,IACE,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC;oBAC1C,WAAW,CAAC,UAAU,CAAC,qBAAqB,CAAC;oBAC7C,WAAW,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAClD,CAAC;oBACD,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAO,CAAC;oBAElE,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;wBAC3B,aAAa;wBACb,kBAAkB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,iBAAiB,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACrG,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,iBAAiB,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,kBAAkB;KACtE,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QACjF,MAAM,IAAI;mBACK,SAAS;iCACK,IAAI,IAAI,aAAa,MAAM,KAAK;;;KAG5D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,oBAAoB,IAAI,YAAY,CAAC,MAAM,IAAI,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC;QACnE,MAAM,IAAI;kBACI,aAAa;QACvB,WAAW;QACX,eAAe;;;oBAGH,SAAS,mBAAmB,aAAa;eAC9C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;iCACL,IAAI,IAAI,aAAa,OAAO,KAAK,OAAO,MAAM;;MAEzE,CAAC;IACL,CAAC;IACD,IAAI,CAAC,oBAAoB,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAChF,MAAM,IAAI;kBACI,aAAa;QACvB,WAAW;;;mBAGA,SAAS,oBAAoB,aAAa;iCAC5B,IAAI,IAAI,aAAa,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;;;KAGvF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAChF,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9D,MAAM,IAAI;kBACI,aAAa;QACvB,eAAe;;;mBAGJ,SAAS,qBAAqB,aAAa;iCAC7B,IAAI,IAAI,aAAa,MAAM,KAAK,MAAM,MAAM;;;KAGxE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,gCAAgC,CAAC;QAC1G,MAAM,IAAI;oBACM,aAAa;UACvB,WAAW;UACX,eAAe;;qBAEJ,SAAS,oBAAoB,aAAa;2BACpC,aAAa,CAAC,MAAM,CAAC;+BACjB,aAAa,CAAC,WAAW,CAAC;mCACtB,IAAI,IAAI,aAAa,MAAM,KAAK,MAAM,MAAM;;QAEvE,CAAC;IACP,CAAC;IACD,IAAI,CAAC,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;QAChF,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC;QAChE,MAAM,IAAI;oBACM,aAAa;UACvB,WAAW;;;qBAGA,SAAS,sBAAsB,aAAa;mCAC9B,IAAI,IAAI,aAAa,MAAM,KAAK,MAAM,MAAM;;;OAGxE,CAAC;IACN,CAAC;IACD,IAAI,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAChF,MAAM,IAAI;;kBAEI,aAAa,YAAY,oBAAoB;;mBAE5C,SAAS,mBAAmB,aAAa;iCAC3B,IAAI,IAAI,aAAa,MAAM,KAAK,sBAAsB,cAAc;;;OAG9F,CAAC;IACN,CAAC;IACD,IAAI,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/E,MAAM,IAAI;oBACM,aAAa,aAAa,IAAI;UACxC,eAAe;;;oBAGL,SAAS,aAAa,SAAS,KAAK,aAAa;QAC7D,iBAAiB,EAAE;yBACF,aAAa,CAAC,WAAW,CAAC;iCAClB,IAAI,IAAI,aAAa,MAAM,KAAK,8BAA8B,cAAc;;;KAGxG,CAAC;IACJ,CAAC;IACD,IAAI,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;QAC/E,MAAM,IAAI;kBACI,aAAa,aAAa,IAAI;QACxC,WAAW;;;mBAGA,SAAS,aAAa,SAAS,KAAK,aAAa;QAC5D,iBAAiB,EAAE;;iCAEM,IAAI,IAAI,aAAa,MAAM,KAAK;;;KAG5D,CAAC;IACJ,CAAC;IACD,IAAI,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;QAC9E,MAAM,IAAI;kBACI,aAAa,YAAY,IAAI;QACvC,WAAW;QACX,eAAe;;mBAEJ,SAAS,aAAa,SAAS,KAAK,aAAa;QAC5D,iBAAiB,EAAE;;yBAEF,aAAa,CAAC,WAAW,CAAC;iCAClB,IAAI,IAAI,aAAa,MAAM,KAAK;;;KAG5D,CAAC;IACJ,CAAC;IACD,IAAI,oBAAoB,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/E,MAAM,IAAI;kBACI,aAAa,YAAY,IAAI;QACvC,WAAW;QACX,WAAW;;;mBAGA,SAAS,aAAa,SAAS,KAAK,aAAa;QAC5D,iBAAiB,EAAE;iCACM,IAAI,IAAI,aAAa,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,uBAAuB,cAAc;;;KAG5H,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,IAAI,YAAY,CAAC,MAAM,IAAI,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9E,MAAM,IAAI;kBACI,aAAa,YAAY,IAAI;QACvC,WAAW;QACX,WAAW;QACX,eAAe;;;mBAGJ,SAAS,aAAa,SAAS,KAAK,aAAa;QAC5D,iBAAiB,EAAE;yBACF,aAAa,CAAC,WAAW,CAAC;iCAClB,IAAI,IAAI,aAAa,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,+BAA+B,cAAc;;;KAGpI,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,IAAI,YAAY,CAAC,MAAM,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;QAC7E,MAAM,IAAI,2FAA2F,CAAC;IACxG,CAAC;IAED,IAAI,CAAC,oBAAoB,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC;QAChE,MAAM,IAAI;kBACI,aAAa;QACvB,WAAW;QACX,WAAW;;;mBAGA,SAAS,oBAAoB,aAAa;yBACpC,aAAa,CAAC,MAAM,CAAC;iCACb,IAAI,IAAI,aAAa,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,MAAM;;;KAGpG,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,oBAAoB,IAAI,YAAY,CAAC,MAAM,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;QAC9E,MAAM,IAAI,oEAAoE,CAAC;IACjF,CAAC;IAED,IAAI,oBAAoB,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;QAC9E,MAAM,IAAI,8EAA8E,CAAC;IAC3F,CAAC;IAED,MAAM,IAAI,gBAAgB,CAAC,CAAC,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,CAAC;IAEzG,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC3D,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const generateImports: ({ schemaName, apiDirectory, schemaImports, queryImports, }: {
2
+ apiDirectory: string;
3
+ schemaName: string;
4
+ schemaImports: string[];
5
+ queryImports: ('query' | 'mutation' | 'infiniteQuery')[];
6
+ }) => string;
@@ -0,0 +1,21 @@
1
+ export const generateImports = ({ schemaName, apiDirectory, schemaImports, queryImports, }) => {
2
+ const importTypes = schemaImports.join(',');
3
+ let imports = [];
4
+ if (queryImports.includes('query')) {
5
+ imports = [...imports, 'skipToken', 'queryOptions'];
6
+ }
7
+ if (queryImports.includes('infiniteQuery')) {
8
+ imports = [...imports, 'infiniteQueryOptions'];
9
+ }
10
+ const importString = [...new Set(imports)].join(',');
11
+ return `
12
+ import {
13
+ ${importString}
14
+ } from '@tanstack/react-query';
15
+
16
+ import { api } from '${apiDirectory}';
17
+ import {${importTypes}} from './${schemaName}'
18
+
19
+ `;
20
+ };
21
+ //# sourceMappingURL=generateImports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateImports.js","sourceRoot":"","sources":["../src/generateImports.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,GAMb,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,OAAO,GAAG,EAAc,CAAC;IAC7B,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErD,OAAO;;MAEH,YAAY;;;yBAGO,YAAY;YACzB,WAAW,aAAa,UAAU;;GAE3C,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { OpenAPIObject } from 'openapi3-ts';
2
+ /**
3
+ * Extract all types from #/components/schemas
4
+ */
5
+ export declare const generateSchemas: ({ spec }: {
6
+ spec: OpenAPIObject;
7
+ }) => string;
@@ -0,0 +1,100 @@
1
+ import pasCase from 'case';
2
+ import lodash from 'lodash';
3
+ const { isEmpty } = lodash;
4
+ const { pascal } = pasCase;
5
+ import { formatDescription, getScalar, isReference, resolveValue } from './utils.js';
6
+ import { getDocs, getResReqTypes } from './utils.js';
7
+ /**
8
+ * Generate the interface string
9
+ */
10
+ const generateInterface = (name, schema) => {
11
+ const scalar = getScalar(schema);
12
+ return `${formatDescription(schema.description)}
13
+ export type ${pascal(name)} = ${scalar}
14
+ `;
15
+ };
16
+ /**
17
+ * Extract all types from #/components/schemas
18
+ */
19
+ const generateSchemasDefinition = (schemas = {}) => {
20
+ if (isEmpty(schemas)) {
21
+ return '';
22
+ }
23
+ return ('\n // SCEHMAS \n' +
24
+ Object.entries(schemas)
25
+ .map(([name, schema]) => !isReference(schema) &&
26
+ (!schema.type || schema.type === 'object') &&
27
+ !schema.allOf &&
28
+ !schema.oneOf &&
29
+ !isReference(schema) &&
30
+ !schema.nullable
31
+ ? generateInterface(name, schema)
32
+ : `${formatDescription(isReference(schema) ? undefined : schema.description)} export type ${pascal(name)} = ${resolveValue(schema)};`)
33
+ .join('\n\n') +
34
+ '\n');
35
+ };
36
+ /**
37
+ * Extract all types from #/components/requestBodies
38
+ */
39
+ const generateRequestBodiesDefinition = (requestBodies = {}) => {
40
+ if (isEmpty(requestBodies)) {
41
+ return '';
42
+ }
43
+ return ('\n // REQUEST BODIES \n' +
44
+ Object.entries(requestBodies)
45
+ .map(([name, requestBody]) => {
46
+ const doc = getDocs(requestBody);
47
+ const type = getResReqTypes([['', requestBody]]);
48
+ const isEmptyInterface = type === '{}';
49
+ if (isEmptyInterface) {
50
+ return `${doc}\nexport type ${pascal(name)}RequestBody = ${type}`;
51
+ }
52
+ else if (type.includes('{') && !type.includes('|') && !type.includes('&')) {
53
+ return `${doc}\nexport type ${pascal(name)}RequestBody = ${type}`;
54
+ }
55
+ else {
56
+ return `${doc}\nexport type ${pascal(name)}RequestBody = ${type};`;
57
+ }
58
+ })
59
+ .join('\n\n') +
60
+ '\n');
61
+ };
62
+ /**
63
+ * Extract all types from #/components/responses
64
+ */
65
+ const generateResponsesDefinition = (responses = {}) => {
66
+ if (isEmpty(responses)) {
67
+ return '';
68
+ }
69
+ return ('\n // RESPONSES \n' +
70
+ Object.entries(responses)
71
+ .map(([name, response]) => {
72
+ const doc = getDocs(response);
73
+ const type = getResReqTypes([['', response]]);
74
+ const isEmptyInterface = type === '{}';
75
+ if (!type) {
76
+ return;
77
+ }
78
+ if (isEmptyInterface) {
79
+ return `export type RQ${pascal(name)}Response = ${type}`;
80
+ }
81
+ else if (type.includes('{') && !type.includes('|') && !type.includes('&')) {
82
+ return `${doc}\nexport type RQ${pascal(name)}Response = ${type}`;
83
+ }
84
+ else {
85
+ return `${doc}\nexport type RQ${pascal(name)}Response = ${type};`;
86
+ }
87
+ })
88
+ .join('\n\n') +
89
+ '\n');
90
+ };
91
+ /**
92
+ * Extract all types from #/components/schemas
93
+ */
94
+ export const generateSchemas = ({ spec }) => {
95
+ const schemaOutput = generateRequestBodiesDefinition(spec.components?.requestBodies) +
96
+ generateResponsesDefinition(spec.components?.responses) +
97
+ generateSchemasDefinition(spec.components?.schemas);
98
+ return schemaOutput;
99
+ };
100
+ //# sourceMappingURL=generateSchemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSchemas.js","sourceRoot":"","sources":["../src/generateSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,MAAM,CAAC;AAC3B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAErF,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,MAAoB,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC;qBAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM;MACvC,CAAC;AACP,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,yBAAyB,GAAG,CAAC,UAAuC,EAAE,EAAE,EAAE;IAC9E,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CACL,kBAAkB;QAClB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACpB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CACtB,CAAC,WAAW,CAAC,MAAM,CAAC;YACpB,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;YAC1C,CAAC,MAAM,CAAC,KAAK;YACb,CAAC,MAAM,CAAC,KAAK;YACb,CAAC,WAAW,CAAC,MAAM,CAAC;YACpB,CAAC,MAAM,CAAC,QAAQ;YACd,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;YACjC,CAAC,CAAC,GAAG,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,MAAM,CAC9F,IAAI,CACL,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,CACnC;aACA,IAAI,CAAC,MAAM,CAAC;QACf,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,+BAA+B,GAAG,CAAC,gBAAmD,EAAE,EAAE,EAAE;IAChG,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CACL,yBAAyB;QACzB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;aAC1B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;YACvC,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,GAAG,GAAG,iBAAiB,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;YACpE,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5E,OAAO,GAAG,GAAG,iBAAiB,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,GAAG,iBAAiB,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,GAAG,CAAC;YACrE,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,MAAM,CAAC;QACf,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,2BAA2B,GAAG,CAAC,YAA2C,EAAE,EAAE,EAAE;IACpF,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CACL,oBAAoB;QACpB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;aACtB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;YACxB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;YACvC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,iBAAiB,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;YAC3D,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5E,OAAO,GAAG,GAAG,mBAAmB,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,GAAG,mBAAmB,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC;YACpE,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,MAAM,CAAC;QACf,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,EAA2B,EAAE,EAAE;IACnE,MAAM,YAAY,GAChB,+BAA+B,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;QAC/D,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;QACvD,yBAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEtD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
@@ -117,11 +117,12 @@ function generateAxiosMethod(operation, spec) {
117
117
  })
118
118
  .join("\n ")}`
119
119
  : "",
120
- `return apiClient.${method}<${responseType}>(url, {
120
+ `const res = await apiClient.${method}<${responseType}>(url, {
121
121
  ${queryParams.length > 0 ? "params: queryData," : ""}
122
122
  ${requestBody ? `data: ${isFormData ? "formData" : "bodyData"},` : ""}
123
123
  ${isFormData ? `config: { headers: { 'Content-Type': 'multipart/form-data', ...config?.headers }, ...config },` : "...config"}
124
- });`,
124
+ });
125
+ return res.data;`,
125
126
  ]
126
127
  .filter(Boolean)
127
128
  .join("\n ");
@@ -32,7 +32,7 @@ function generateQueryOptions(operation, spec) {
32
32
  const namedQuery = (0, utils_1.camelCase)(`${operationId}`);
33
33
  return `
34
34
  export const ${namedQueryOptions} = (
35
- ${hasData ? `params: Partial<Parameters<typeof apiClient.${namedQuery}>[0]>, config?: Partial<Parameters<typeof apiClient.${namedQuery}>[1]>` : `_: undefined, config?: Partial<Parameters<typeof apiClient.${namedQuery}>[1]>`}
35
+ ${hasData ? `params: Partial<Parameters<typeof apiClient.${namedQuery}>[0]>, config?: Partial<Parameters<typeof apiClient.${namedQuery}>[1]>` : `_?: undefined, config?: Partial<Parameters<typeof apiClient.${namedQuery}>[1]>`}
36
36
  ) => {
37
37
  const enabled = ${hasData ? `hasDefinedProps(params, ${requiredParams.join(", ")})` : "true"};
38
38
  return queryOptions({
@@ -0,0 +1,10 @@
1
+ export declare function importSpecs({ sourceUrls, sourceDirectory, exportDirectory, apiDirectory, headerFilters, }: {
2
+ sourceUrls?: {
3
+ name: string;
4
+ url: string;
5
+ }[];
6
+ sourceDirectory?: string;
7
+ exportDirectory: string;
8
+ apiDirectory: string;
9
+ headerFilters?: string[];
10
+ }): void;
@@ -0,0 +1,127 @@
1
+ import Case from 'case';
2
+ import chalk from 'chalk';
3
+ import { readFileSync, writeFileSync, readdir, mkdirSync } from 'fs';
4
+ import { join, parse } from 'path';
5
+ import { convertSwaggerFile } from './convertSwaggerFile.js';
6
+ import { createHook } from './generateHooks.js';
7
+ import { generateImports } from './generateImports.js';
8
+ import { generateSchemas } from './generateSchemas.js';
9
+ export function importSpecs({ sourceUrls, sourceDirectory, exportDirectory, apiDirectory, headerFilters, }) {
10
+ if (sourceUrls) {
11
+ sourceUrls.forEach(async (d) => {
12
+ const data = await fetch(d.url).then((res) => res.text());
13
+ // data response is raw text, check if it is yaml or json
14
+ let isYaml = true;
15
+ try {
16
+ JSON.parse(data);
17
+ isYaml = false;
18
+ }
19
+ catch (error) {
20
+ return false;
21
+ }
22
+ const format = isYaml ? 'yaml' : 'json';
23
+ make({
24
+ data,
25
+ format,
26
+ filename: d.name,
27
+ exportDirectory,
28
+ headerFilters,
29
+ apiDirectory,
30
+ });
31
+ });
32
+ }
33
+ if (sourceDirectory) {
34
+ readdir(sourceDirectory, async (err, filenames) => {
35
+ if (err) {
36
+ console.log(err);
37
+ throw err;
38
+ }
39
+ filenames.forEach(async (filename) => {
40
+ try {
41
+ const data = readFileSync(join(process.cwd(), sourceDirectory + '/' + filename), 'utf-8');
42
+ const { ext } = parse(sourceDirectory + '/' + filename);
43
+ if (!['.yaml', '.yml', '.json'].includes(ext.toLowerCase())) {
44
+ console.log(chalk.red(`Skipping ${filename} as it is not a valid openapi/swagger file`));
45
+ return;
46
+ }
47
+ const format = ['.yaml', '.yml'].includes(ext.toLowerCase()) ? 'yaml' : 'json';
48
+ make({
49
+ data,
50
+ format,
51
+ filename,
52
+ exportDirectory,
53
+ headerFilters,
54
+ apiDirectory,
55
+ });
56
+ }
57
+ catch (error) {
58
+ if (error.code === 'EISDIR') {
59
+ console.log(chalk.red('nested folder structure not supported'));
60
+ return;
61
+ }
62
+ console.log(chalk.red(`[${filename}]:`), chalk.red(error));
63
+ }
64
+ });
65
+ });
66
+ }
67
+ }
68
+ async function make({ data, format, filename, exportDirectory, headerFilters, apiDirectory, }) {
69
+ let spec = await convertSwaggerFile(data, format);
70
+ const formattedFileName = Case.camel(`useQueries, ${filename.split('.')[0]}`);
71
+ const schemaName = `${formattedFileName}.schema`;
72
+ const hooksName = `${formattedFileName}`;
73
+ const name = filename.split('.')[0];
74
+ mkdirSync(join(process.cwd(), `${exportDirectory}/${name}`), { recursive: true });
75
+ const operationIds = [];
76
+ let hooks = `
77
+ function hasDefinedProps<T extends { [P in K]?: any }, K extends PropertyKey>(
78
+ obj: T,
79
+ ...keys: K[]
80
+ ): obj is T & { [P in K]-?: Exclude<T[P], undefined> } {
81
+ return keys.every((k) => obj[k] !== undefined);
82
+ }
83
+ `;
84
+ let schemaImportsArray = [];
85
+ let collectedQueryImports = [];
86
+ Object.entries(spec.paths).forEach(([route, verbs]) => {
87
+ Object.entries(verbs).forEach(([verb, operation]) => {
88
+ if (['get', 'post', 'patch', 'put', 'delete'].includes(verb) && !operation.deprecated) {
89
+ const { implementation, imports, queryImports } = createHook({
90
+ operation,
91
+ verb,
92
+ route: (spec.basePath || '') + route,
93
+ operationIds,
94
+ parameters: verbs.parameters,
95
+ schemasComponents: spec.components,
96
+ headerFilters,
97
+ });
98
+ hooks += implementation;
99
+ imports.forEach((element) => {
100
+ const formattedImport = element.replace('[]', '');
101
+ if (!schemaImportsArray.includes(formattedImport) &&
102
+ element !== 'void' &&
103
+ element !== 'string' &&
104
+ !element.includes('{') &&
105
+ !element.includes('unknown')) {
106
+ schemaImportsArray.push(formattedImport);
107
+ }
108
+ });
109
+ queryImports.forEach((element) => {
110
+ if (!schemaImportsArray.includes(element)) {
111
+ collectedQueryImports.push(element);
112
+ }
113
+ });
114
+ }
115
+ });
116
+ });
117
+ const imports = generateImports({
118
+ apiDirectory,
119
+ schemaName,
120
+ schemaImports: schemaImportsArray,
121
+ queryImports: collectedQueryImports,
122
+ });
123
+ writeFileSync(join(process.cwd(), `${exportDirectory}/${name}/${hooksName}.tsx`), imports + hooks);
124
+ writeFileSync(join(process.cwd(), `${exportDirectory}/${name}/${schemaName}.tsx`), generateSchemas({ spec }));
125
+ console.log(chalk.green(`🎉 [${filename}] Your OpenAPI spec has been converted into react query hooks`));
126
+ }
127
+ //# sourceMappingURL=importSpecs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importSpecs.js","sourceRoot":"","sources":["../src/importSpecs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-query-lightbase-codegen",
3
- "version": "2.0.6",
3
+ "version": "2.0.7",
4
4
  "license": "MIT",
5
5
  "description": "Generate Axios API clients and React Query options from OpenAPI specifications",
6
6
  "exports": "./dist/index.js",
@@ -143,11 +143,12 @@ function generateAxiosMethod(operation: OperationInfo, spec: OpenAPIV3.Document)
143
143
  })
144
144
  .join("\n ")}`
145
145
  : "",
146
- `return apiClient.${method}<${responseType}>(url, {
146
+ `const res = await apiClient.${method}<${responseType}>(url, {
147
147
  ${queryParams.length > 0 ? "params: queryData," : ""}
148
148
  ${requestBody ? `data: ${isFormData ? "formData" : "bodyData"},` : ""}
149
149
  ${isFormData ? `config: { headers: { 'Content-Type': 'multipart/form-data', ...config?.headers }, ...config },` : "...config"}
150
- });`,
150
+ });
151
+ return res.data;`,
151
152
  ]
152
153
  .filter(Boolean)
153
154
  .join("\n ");
@@ -1,5 +1,5 @@
1
1
  import type { OpenAPIV3 } from "openapi-types";
2
- import { camelCase, pascalCase, sanitizeTypeName, specTitle } from "../utils";
2
+ import { camelCase, specTitle } from "../utils";
3
3
  import type { OperationInfo } from "./clientGenerator";
4
4
 
5
5
  function generateQueryOptions(operation: OperationInfo, spec: OpenAPIV3.Document): string {
@@ -40,7 +40,7 @@ function generateQueryOptions(operation: OperationInfo, spec: OpenAPIV3.Document
40
40
 
41
41
  return `
42
42
  export const ${namedQueryOptions} = (
43
- ${hasData ? `params: Partial<Parameters<typeof apiClient.${namedQuery}>[0]>, config?: Partial<Parameters<typeof apiClient.${namedQuery}>[1]>` : `_: undefined, config?: Partial<Parameters<typeof apiClient.${namedQuery}>[1]>`}
43
+ ${hasData ? `params: Partial<Parameters<typeof apiClient.${namedQuery}>[0]>, config?: Partial<Parameters<typeof apiClient.${namedQuery}>[1]>` : `_?: undefined, config?: Partial<Parameters<typeof apiClient.${namedQuery}>[1]>`}
44
44
  ) => {
45
45
  const enabled = ${hasData ? `hasDefinedProps(params, ${requiredParams.join(", ")})` : "true"};
46
46
  return queryOptions({