react-query-lightbase-codegen 2.0.5 → 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":"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"}
@@ -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":"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"}
@@ -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({
@@ -71,6 +71,9 @@ function generateReactQuery(spec) {
71
71
  });
72
72
  return `import { queryOptions, skipToken } from '@tanstack/react-query';
73
73
  import * as apiClient from './${(0, utils_1.specTitle)(spec)}.client';
74
+ // TEMPORARY: allows for backward compatibility imports
75
+ export * from './${(0, utils_1.specTitle)(spec)}.client';
76
+
74
77
  const hasDefinedProps = <T extends { [P in K]?: any }, K extends PropertyKey>(
75
78
  obj: T,
76
79
  ...keys: K[]
@@ -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.5",
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({
@@ -81,6 +81,9 @@ export function generateReactQuery(spec: OpenAPIV3.Document): string {
81
81
 
82
82
  return `import { queryOptions, skipToken } from '@tanstack/react-query';
83
83
  import * as apiClient from './${specTitle(spec)}.client';
84
+ // TEMPORARY: allows for backward compatibility imports
85
+ export * from './${specTitle(spec)}.client';
86
+
84
87
  const hasDefinedProps = <T extends { [P in K]?: any }, K extends PropertyKey>(
85
88
  obj: T,
86
89
  ...keys: K[]