react-query-lightbase-codegen 0.0.20 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bin/react-query-codegen-import.js +39 -0
- package/lib/bin/react-query-codegen.js +8 -0
- package/lib/cjs/import-open-api.js +176 -142
- package/lib/esm/import-open-api.js +176 -142
- package/lib/scripts/import-open-api.js +605 -0
- package/lib/types.js +1 -0
- package/package.json +1 -1
|
@@ -122,7 +122,7 @@ export const getObject = (item) => {
|
|
|
122
122
|
const doc = isReference(prop) ? '' : formatDescription(prop.description, 2);
|
|
123
123
|
const isRequired = (item.required || []).includes(key);
|
|
124
124
|
const processedKey = IdentifierRegexp.test(key) ? key : `"${key}"`;
|
|
125
|
-
return
|
|
125
|
+
return `${doc}\n${processedKey}${isRequired ? '' : '?'}: ${resolveValue(prop)};`;
|
|
126
126
|
})
|
|
127
127
|
.join('\n');
|
|
128
128
|
}
|
|
@@ -189,7 +189,10 @@ export const getParamsInPath = (path) => {
|
|
|
189
189
|
*/
|
|
190
190
|
export const generateInterface = (name, schema) => {
|
|
191
191
|
const scalar = getScalar(schema);
|
|
192
|
-
return
|
|
192
|
+
return `
|
|
193
|
+
${formatDescription(schema.description)}
|
|
194
|
+
export interface ${pascal(name)} ${scalar}
|
|
195
|
+
`;
|
|
193
196
|
};
|
|
194
197
|
/**
|
|
195
198
|
* Propagate every `discriminator.propertyName` mapping to the original ref
|
|
@@ -288,7 +291,7 @@ export const generateResponsesDefinition = (responses = {}) => {
|
|
|
288
291
|
export const formatDescription = (description, tabSize = 0) => description
|
|
289
292
|
? `/**\n${description
|
|
290
293
|
.split('\n')
|
|
291
|
-
.map((i) => `${' '.repeat(tabSize)} *
|
|
294
|
+
.map((i) => `${' '.repeat(tabSize)} * ${i}`)
|
|
292
295
|
.join('\n')}\n${' '.repeat(tabSize)} */${' '.repeat(tabSize)}`
|
|
293
296
|
: '';
|
|
294
297
|
/**
|
|
@@ -321,6 +324,13 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
321
324
|
}
|
|
322
325
|
}), 'in');
|
|
323
326
|
const headerParams = header.filter((p) => !headerFilters?.includes(p.name));
|
|
327
|
+
let enabled = [];
|
|
328
|
+
[...queryParams, ...pathParams, ...headerParams].forEach((item) => {
|
|
329
|
+
if (item.required) {
|
|
330
|
+
enabled.push(`["${item.name}"]`);
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
const enabledParam = `!!props${enabled.join(' && !!props')}`;
|
|
324
334
|
const paramsTypes = paramsInPath
|
|
325
335
|
.map((p) => {
|
|
326
336
|
try {
|
|
@@ -376,17 +386,17 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
376
386
|
const headerParam = headerType && headerType !== 'void' ? `${headerType};` : '';
|
|
377
387
|
const queryParam = queryParamsType && queryParamsType !== 'void' ? `${queryParamsType}` : '';
|
|
378
388
|
const requestBodyComponent = requestBodyTypes && requestBodyTypes !== 'void' ? `${requestBodyTypes}` : '';
|
|
379
|
-
let AxiosErrorType = true ? 'AxiosError<AxiosErrorType | unknown>' : `AxiosError<any>`;
|
|
380
389
|
// QUERIES
|
|
381
390
|
if (!requestBodyComponent && paramsInPath.length && !queryParam && !headerParam) {
|
|
382
391
|
output += `
|
|
383
|
-
|
|
392
|
+
// type1
|
|
393
|
+
type ${componentName}Return = ${genericsTypes}
|
|
384
394
|
type ${componentName}Variables = {
|
|
385
395
|
${paramsTypes}
|
|
386
396
|
}
|
|
387
397
|
|
|
388
398
|
use${componentName}Query.fetch = async (props: ${componentName}Variables ) => {
|
|
389
|
-
const result = await api.${verb}<${componentName}
|
|
399
|
+
const result = await api.${verb}<${componentName}Return>(\`${route.replace(/\{/g, '{props.')}\`);
|
|
390
400
|
return result.data;
|
|
391
401
|
}
|
|
392
402
|
use${componentName}Query.baseKey = (): QueryKey => ["${componentName.toLowerCase()}"];
|
|
@@ -394,35 +404,39 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
394
404
|
|
|
395
405
|
use${componentName}Query.updateCache = (
|
|
396
406
|
params: ${componentName}Variables,
|
|
397
|
-
updater: Updater<${componentName}
|
|
407
|
+
updater: Updater<${componentName}Return | undefined, ${componentName}Return>,
|
|
398
408
|
options?: SetDataOptions | undefined
|
|
399
|
-
) => queryClient.setQueryData<${componentName}
|
|
409
|
+
) => queryClient.setQueryData<${componentName}Return>(use${componentName}Query.queryKey(params), updater, options);
|
|
400
410
|
|
|
401
411
|
use${componentName}Query.prefetch = (params: ${componentName}Variables) =>
|
|
402
|
-
queryClient.prefetchQuery<${componentName}
|
|
412
|
+
queryClient.prefetchQuery<${componentName}Return>(use${componentName}Query.queryKey(params), ()=> use${componentName}Query.fetch(params));
|
|
403
413
|
|
|
414
|
+
use${componentName}Query.cancelQueries = (params: ${componentName}Variables) => queryClient.cancelQueries(use${componentName}Query.queryKey(params))
|
|
404
415
|
use${componentName}Query.invalidate = (params: ${componentName}Variables) =>
|
|
405
|
-
queryClient.invalidateQueries<${componentName}
|
|
416
|
+
queryClient.invalidateQueries<${componentName}Return>(use${componentName}Query.queryKey(params));
|
|
406
417
|
|
|
407
|
-
type ${componentName}QueryProps<T = ${componentName}
|
|
408
|
-
options?: UseQueryOptions<${componentName}
|
|
418
|
+
type ${componentName}QueryProps<T = ${componentName}Return> = ${componentName}Variables & {
|
|
419
|
+
options?: UseQueryOptions<${componentName}Return, AxiosError, T, any>
|
|
409
420
|
}
|
|
410
|
-
export function use${componentName}Query<T = ${componentName}
|
|
421
|
+
export function use${componentName}Query<T = ${componentName}Return>({ options = {}, ...props }: ${componentName}QueryProps<T>) {
|
|
411
422
|
return useQuery(use${componentName}Query.queryKey(props), async () => use${componentName}Query.fetch(props),
|
|
412
|
-
{ enabled:
|
|
413
|
-
|
|
423
|
+
{ enabled: ${enabledParam}, ...options }
|
|
424
|
+
);}
|
|
414
425
|
|
|
415
426
|
type ${componentName}MutationProps<T> = {
|
|
416
|
-
options?: UseMutationOptions<${componentName}
|
|
427
|
+
options?: UseMutationOptions<${componentName}Return, AxiosError, ${componentName}Variables, T>
|
|
417
428
|
}
|
|
418
|
-
export function use${componentName}Mutation<T = ${componentName}
|
|
429
|
+
export function use${componentName}Mutation<T = ${componentName}Return>(props?: ${componentName}MutationProps<T>) {
|
|
419
430
|
return useMutation(async (data) => use${componentName}Query.fetch(data),
|
|
420
431
|
props?.options
|
|
421
432
|
)};`;
|
|
422
433
|
}
|
|
423
434
|
if (!requestBodyComponent && paramsInPath.length && queryParam && !headerParam) {
|
|
424
435
|
output += `
|
|
425
|
-
|
|
436
|
+
import queryString from 'query-string';
|
|
437
|
+
|
|
438
|
+
// type2
|
|
439
|
+
type ${componentName}Return = ${genericsTypes}
|
|
426
440
|
type ${componentName}Variables = {
|
|
427
441
|
${paramsTypes}
|
|
428
442
|
${queryParamsType};
|
|
@@ -431,7 +445,7 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
431
445
|
use${componentName}Query.fetch = async (props:${componentName}Variables) => {
|
|
432
446
|
const {${paramsInPath.join(', ')}, ...queryParams} = props
|
|
433
447
|
const params = queryString.stringify(queryParams);
|
|
434
|
-
const result = await api.${verb}<${componentName}
|
|
448
|
+
const result = await api.${verb}<${componentName}Return>(\`${route}?\${params}\`)
|
|
435
449
|
return result.data;
|
|
436
450
|
}
|
|
437
451
|
|
|
@@ -440,72 +454,80 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
440
454
|
|
|
441
455
|
use${componentName}Query.updateCache = (
|
|
442
456
|
params: ${componentName}Variables,
|
|
443
|
-
updater: Updater<${componentName}
|
|
457
|
+
updater: Updater<${componentName}Return | undefined, ${componentName}Return>,
|
|
444
458
|
options?: SetDataOptions | undefined
|
|
445
|
-
) => queryClient.setQueryData<${componentName}
|
|
459
|
+
) => queryClient.setQueryData<${componentName}Return>(use${componentName}Query.queryKey(params), updater, options);
|
|
446
460
|
|
|
447
461
|
use${componentName}Query.prefetch = (params: ${componentName}Variables) =>
|
|
448
|
-
queryClient.prefetchQuery<${componentName}
|
|
462
|
+
queryClient.prefetchQuery<${componentName}Return>(use${componentName}Query.queryKey(params), ()=> use${componentName}Query.fetch(params));
|
|
449
463
|
|
|
464
|
+
use${componentName}Query.cancelQueries = (params: ${componentName}Variables) => queryClient.cancelQueries(use${componentName}Query.queryKey(params))
|
|
450
465
|
use${componentName}Query.invalidate = (params: ${componentName}Variables) =>
|
|
451
|
-
queryClient.invalidateQueries<${componentName}
|
|
466
|
+
queryClient.invalidateQueries<${componentName}Return>(use${componentName}Query.queryKey(params));
|
|
452
467
|
|
|
453
|
-
type ${componentName}QueryProps<T = ${componentName}
|
|
454
|
-
options?: UseQueryOptions<${componentName}
|
|
468
|
+
type ${componentName}QueryProps<T = ${componentName}Return> = ${componentName}Variables & {
|
|
469
|
+
options?: UseQueryOptions<${componentName}Return, AxiosError, T, any>
|
|
455
470
|
}
|
|
456
|
-
export function use${componentName}Query<T = ${componentName}
|
|
457
|
-
return useQuery(use${componentName}Query.queryKey(props), async () => use${componentName}Query.fetch(props),
|
|
471
|
+
export function use${componentName}Query<T = ${componentName}Return>({ options = {}, ...props }: ${componentName}QueryProps<T>) {
|
|
472
|
+
return useQuery(use${componentName}Query.queryKey(props), async () => use${componentName}Query.fetch(props),
|
|
473
|
+
{ enabled: ${enabledParam}, ...options }
|
|
458
474
|
);}
|
|
459
475
|
|
|
460
476
|
type ${componentName}MutationProps<T> = {
|
|
461
|
-
options?: UseMutationOptions<${componentName}
|
|
477
|
+
options?: UseMutationOptions<${componentName}Return, AxiosError, ${componentName}Variables, T>
|
|
462
478
|
}
|
|
463
|
-
export function use${componentName}Mutation<T = ${componentName}
|
|
479
|
+
export function use${componentName}Mutation<T = ${componentName}Return>(props?: ${componentName}MutationProps<T>) {
|
|
464
480
|
return useMutation(async (data) => use${componentName}Query.fetch(data),
|
|
465
481
|
props?.options
|
|
466
482
|
)};`;
|
|
467
483
|
}
|
|
468
484
|
if (!requestBodyComponent && !paramsInPath.length && !queryParam && !headerParam) {
|
|
469
485
|
output += `
|
|
470
|
-
|
|
486
|
+
// type3
|
|
487
|
+
type ${componentName}Return = ${genericsTypes}
|
|
471
488
|
use${componentName}Query.fetch = async () => {
|
|
472
|
-
const result = await api.${verb}<${componentName}
|
|
489
|
+
const result = await api.${verb}<${componentName}Return>(\`${route}\`);
|
|
473
490
|
return result.data;
|
|
474
491
|
}
|
|
475
492
|
use${componentName}Query.baseKey = (): QueryKey => ["${componentName.toLowerCase()}"];
|
|
476
493
|
use${componentName}Query.queryKey = (): QueryKey => use${componentName}Query.baseKey()
|
|
477
494
|
|
|
478
495
|
use${componentName}Query.updateCache = (
|
|
479
|
-
params:
|
|
480
|
-
updater: Updater<${componentName}
|
|
496
|
+
params: undefined,
|
|
497
|
+
updater: Updater<${componentName}Return | undefined, ${componentName}Return>,
|
|
481
498
|
options?: SetDataOptions | undefined
|
|
482
|
-
) => queryClient.setQueryData<${componentName}
|
|
499
|
+
) => queryClient.setQueryData<${componentName}Return>(use${componentName}Query.queryKey(), updater, options);
|
|
483
500
|
|
|
484
|
-
use${componentName}Query.prefetch = (
|
|
485
|
-
queryClient.prefetchQuery<${componentName}
|
|
501
|
+
use${componentName}Query.prefetch = () =>
|
|
502
|
+
queryClient.prefetchQuery<${componentName}Return>(use${componentName}Query.queryKey(), ()=> use${componentName}Query.fetch());
|
|
486
503
|
|
|
487
|
-
use${componentName}Query.
|
|
488
|
-
|
|
504
|
+
use${componentName}Query.cancelQueries = () => queryClient.cancelQueries(use${componentName}Query.queryKey())
|
|
505
|
+
use${componentName}Query.invalidate = () =>
|
|
506
|
+
queryClient.invalidateQueries<${componentName}Return>(use${componentName}Query.queryKey());
|
|
489
507
|
|
|
490
508
|
|
|
491
|
-
type ${componentName}QueryProps<T = ${componentName}
|
|
492
|
-
options?: UseQueryOptions<${componentName}
|
|
509
|
+
type ${componentName}QueryProps<T = ${componentName}Return> = {
|
|
510
|
+
options?: UseQueryOptions<${componentName}Return, AxiosError, T, any>
|
|
493
511
|
}
|
|
494
|
-
export function use${componentName}Query<T = ${componentName}
|
|
512
|
+
export function use${componentName}Query<T = ${componentName}Return>(props?: ${componentName}QueryProps<T>) {
|
|
495
513
|
return useQuery(use${componentName}Query.queryKey(), use${componentName}Query.fetch, props?.options
|
|
496
514
|
);}
|
|
497
515
|
|
|
498
516
|
type ${componentName}MutationProps<T> = {
|
|
499
|
-
options?: UseMutationOptions<${componentName}
|
|
517
|
+
options?: UseMutationOptions<${componentName}Return, AxiosError, void, T>
|
|
500
518
|
}
|
|
501
|
-
export function use${componentName}Mutation<T = ${componentName}
|
|
519
|
+
export function use${componentName}Mutation<T = ${componentName}Return>(props?: ${componentName}MutationProps<T>) {
|
|
502
520
|
return useMutation(async () => use${componentName}Query.fetch(),
|
|
503
521
|
props?.options
|
|
504
522
|
)};`;
|
|
505
523
|
}
|
|
506
524
|
if (!requestBodyComponent && !paramsInPath.length && queryParam && !headerParam) {
|
|
507
525
|
output += `
|
|
508
|
-
|
|
526
|
+
// type4
|
|
527
|
+
import queryString from 'query-string';
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
type ${componentName}Return = ${genericsTypes}
|
|
509
531
|
type ${componentName}Variables = {
|
|
510
532
|
${queryParamsType}
|
|
511
533
|
}
|
|
@@ -514,7 +536,7 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
514
536
|
const params = queryString.stringify({${queryParams
|
|
515
537
|
.map((param) => `"${param.name}": props["${param.name}"]`)
|
|
516
538
|
.join(',')}});
|
|
517
|
-
const result = await api.${verb}<${componentName}
|
|
539
|
+
const result = await api.${verb}<${componentName}Return>(\`${route}?\${params}\`)
|
|
518
540
|
return result.data;
|
|
519
541
|
}
|
|
520
542
|
|
|
@@ -523,22 +545,23 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
523
545
|
|
|
524
546
|
use${componentName}Query.updateCache = (
|
|
525
547
|
params: ${componentName}Variables,
|
|
526
|
-
updater: Updater<${componentName}
|
|
548
|
+
updater: Updater<${componentName}Return | undefined, ${componentName}Return>,
|
|
527
549
|
options?: SetDataOptions | undefined
|
|
528
|
-
) => queryClient.setQueryData<${componentName}
|
|
550
|
+
) => queryClient.setQueryData<${componentName}Return>(use${componentName}Query.queryKey(params), updater, options);
|
|
529
551
|
|
|
530
552
|
use${componentName}Query.prefetch = (params: ${componentName}Variables) =>
|
|
531
|
-
queryClient.prefetchQuery<${componentName}
|
|
553
|
+
queryClient.prefetchQuery<${componentName}Return>(use${componentName}Query.queryKey(params), ()=> use${componentName}Query.fetch(params));
|
|
532
554
|
|
|
555
|
+
use${componentName}Query.cancelQueries = (params: ${componentName}Variables) => queryClient.cancelQueries(use${componentName}Query.queryKey(params))
|
|
533
556
|
use${componentName}Query.invalidate = (params: ${componentName}Variables) =>
|
|
534
|
-
queryClient.invalidateQueries<${componentName}
|
|
557
|
+
queryClient.invalidateQueries<${componentName}Return>(use${componentName}Query.queryKey(params));
|
|
535
558
|
|
|
536
|
-
export function use${componentName}Query<T = ${componentName}
|
|
559
|
+
export function use${componentName}Query<T = ${componentName}Return>({ options = {}, ...props }: ${componentName}Variables & { options?: UseQueryOptions<${componentName}Return, AxiosError, T, any>}) {
|
|
537
560
|
return useQuery(use${componentName}Query.queryKey(props), async () => use${componentName}Query.fetch(props),
|
|
538
|
-
{ enabled:
|
|
561
|
+
{ enabled: ${enabledParam}, ...options }
|
|
539
562
|
);}
|
|
540
563
|
|
|
541
|
-
export function use${componentName}Mutation<T = ${componentName}
|
|
564
|
+
export function use${componentName}Mutation<T = ${componentName}Return>(props?: { options?: UseMutationOptions<${componentName}Return, AxiosError, ${componentName}Variables, T>}) {
|
|
542
565
|
return useMutation(async (data) => use${componentName}Query.fetch(data),
|
|
543
566
|
props?.options
|
|
544
567
|
)};
|
|
@@ -546,11 +569,12 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
546
569
|
}
|
|
547
570
|
if (requestBodyComponent && !paramsInPath.length && !queryParam && !headerParam) {
|
|
548
571
|
output += `
|
|
549
|
-
|
|
572
|
+
// type5
|
|
573
|
+
type ${componentName}Return = ${genericsTypes}
|
|
550
574
|
type ${componentName}Variables = ${requestBodyComponent};
|
|
551
575
|
|
|
552
576
|
use${componentName}Query.fetch = async (body: ${componentName}Variables) => {
|
|
553
|
-
const result = await api.${verb}<${componentName}
|
|
577
|
+
const result = await api.${verb}<${componentName}Return>(\`${route}\`, body)
|
|
554
578
|
return result.data
|
|
555
579
|
}
|
|
556
580
|
|
|
@@ -559,44 +583,51 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
559
583
|
|
|
560
584
|
use${componentName}Query.updateCache = (
|
|
561
585
|
params: ${componentName}Variables,
|
|
562
|
-
updater: Updater<${componentName}
|
|
586
|
+
updater: Updater<${componentName}Return | undefined, ${componentName}Return>,
|
|
563
587
|
options?: SetDataOptions | undefined
|
|
564
|
-
) => queryClient.setQueryData<${componentName}
|
|
588
|
+
) => queryClient.setQueryData<${componentName}Return>(use${componentName}Query.queryKey(params), updater, options);
|
|
565
589
|
|
|
566
590
|
use${componentName}Query.prefetch = (params: ${componentName}Variables) =>
|
|
567
|
-
queryClient.prefetchQuery<${componentName}
|
|
591
|
+
queryClient.prefetchQuery<${componentName}Return>(use${componentName}Query.queryKey(params), ()=> use${componentName}Query.fetch(params));
|
|
568
592
|
|
|
593
|
+
use${componentName}Query.cancelQueries = (params: ${componentName}Variables) => queryClient.cancelQueries(use${componentName}Query.queryKey(params))
|
|
569
594
|
use${componentName}Query.invalidate = (params: ${componentName}Variables) =>
|
|
570
|
-
queryClient.invalidateQueries<${componentName}
|
|
595
|
+
queryClient.invalidateQueries<${componentName}Return>(use${componentName}Query.queryKey(params));
|
|
571
596
|
|
|
572
597
|
|
|
573
|
-
type ${componentName}QueryProps<T = ${componentName}
|
|
574
|
-
options?: UseQueryOptions<${componentName}
|
|
598
|
+
type ${componentName}QueryProps<T = ${componentName}Return> = ${componentName}Variables & {
|
|
599
|
+
options?: UseQueryOptions<${componentName}Return, AxiosError, T, any>
|
|
575
600
|
}
|
|
576
|
-
export function use${componentName}Query<T = ${componentName}
|
|
601
|
+
export function use${componentName}Query<T = ${componentName}Return>({ options = {}, ...body }: ${componentName}QueryProps<T>) {
|
|
577
602
|
return useQuery(use${componentName}Query.queryKey(body), async () => use${componentName}Query.fetch(body), options
|
|
578
603
|
);}
|
|
579
604
|
|
|
580
605
|
type ${componentName}MutationProps<T> = {
|
|
581
|
-
options?: UseMutationOptions<${componentName}
|
|
606
|
+
options?: UseMutationOptions<${componentName}Return, AxiosError, ${componentName}Variables, T>
|
|
582
607
|
}
|
|
583
|
-
export function use${componentName}Mutation<T = ${componentName}
|
|
608
|
+
export function use${componentName}Mutation<T = ${componentName}Return>(props?: ${componentName}MutationProps<T>) {
|
|
584
609
|
return useMutation(async (body) => use${componentName}Query.fetch(body),
|
|
585
610
|
props?.options
|
|
586
611
|
)};`;
|
|
587
612
|
}
|
|
588
613
|
if (requestBodyComponent && paramsInPath.length && !queryParam && !headerParam) {
|
|
589
614
|
output += `
|
|
590
|
-
|
|
591
|
-
type ${componentName}Variables = ${requestBodyComponent} & {${paramsTypes}}
|
|
615
|
+
import queryString from 'query-string';
|
|
592
616
|
|
|
593
|
-
|
|
594
|
-
|
|
617
|
+
// type6
|
|
618
|
+
type ${componentName}Return = ${genericsTypes}
|
|
619
|
+
type ${componentName}Variables = {
|
|
620
|
+
body: ${requestBodyComponent}
|
|
621
|
+
${paramsTypes}
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
type ${componentName}QueryProps<T = ${componentName}Return> = ${componentName}Variables & {
|
|
625
|
+
options?: UseQueryOptions<${componentName}Return, AxiosError, T, any>
|
|
595
626
|
}
|
|
596
627
|
|
|
597
628
|
use${componentName}Query.fetch = async (props: ${componentName}Variables) => {
|
|
598
629
|
const {${paramsInPath.join(', ')}, ...body} = props
|
|
599
|
-
const result = await api.${verb}<${componentName}
|
|
630
|
+
const result = await api.${verb}<${componentName}Return>(\`${route}\`, body)
|
|
600
631
|
return result.data
|
|
601
632
|
}
|
|
602
633
|
use${componentName}Query.baseKey = (): QueryKey => ["${componentName.toLowerCase()}"];
|
|
@@ -604,48 +635,51 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
604
635
|
|
|
605
636
|
use${componentName}Query.updateCache = (
|
|
606
637
|
params: ${componentName}Variables,
|
|
607
|
-
updater: Updater<${componentName}
|
|
638
|
+
updater: Updater<${componentName}Return | undefined, ${componentName}Return>,
|
|
608
639
|
options?: SetDataOptions | undefined
|
|
609
|
-
) => queryClient.setQueryData<${componentName}
|
|
640
|
+
) => queryClient.setQueryData<${componentName}Return>(use${componentName}Query.queryKey(params), updater, options);
|
|
610
641
|
|
|
611
642
|
use${componentName}Query.prefetch = (params: ${componentName}Variables) =>
|
|
612
|
-
queryClient.prefetchQuery<${componentName}
|
|
643
|
+
queryClient.prefetchQuery<${componentName}Return>(use${componentName}Query.queryKey(params), ()=> use${componentName}Query.fetch(params));
|
|
613
644
|
|
|
645
|
+
use${componentName}Query.cancelQueries = (params: ${componentName}Variables) => queryClient.cancelQueries(use${componentName}Query.queryKey(params))
|
|
614
646
|
use${componentName}Query.invalidate = (params: ${componentName}Variables) =>
|
|
615
|
-
queryClient.invalidateQueries<${componentName}
|
|
647
|
+
queryClient.invalidateQueries<${componentName}Return>(use${componentName}Query.queryKey(params));
|
|
616
648
|
|
|
617
649
|
|
|
618
|
-
export function use${componentName}Query<T = ${componentName}
|
|
619
|
-
return useQuery(use${componentName}Query.queryKey(props), async () => use${componentName}Query.fetch(props),
|
|
650
|
+
export function use${componentName}Query<T = ${componentName}Return>({ options = {}, ...props }: ${componentName}QueryProps<T>) {
|
|
651
|
+
return useQuery(use${componentName}Query.queryKey(props), async () => use${componentName}Query.fetch(props),
|
|
652
|
+
{ enabled: ${enabledParam}, ...options }
|
|
620
653
|
);}
|
|
621
654
|
|
|
622
655
|
type ${componentName}MutationProps<T> = {
|
|
623
|
-
options?: UseMutationOptions<${componentName}
|
|
656
|
+
options?: UseMutationOptions<${componentName}Return, AxiosError, ${componentName}Variables, T>
|
|
624
657
|
}
|
|
625
|
-
export function use${componentName}Mutation<T = ${componentName}
|
|
658
|
+
export function use${componentName}Mutation<T = ${componentName}Return>(props?: ${componentName}MutationProps<T>) {
|
|
626
659
|
return useMutation(async (body) => use${componentName}Query.fetch(body),
|
|
627
660
|
props?.options
|
|
628
661
|
)};`;
|
|
629
662
|
}
|
|
630
663
|
if (requestBodyComponent && !paramsInPath.length && queryParam && !headerParam) {
|
|
631
664
|
output += `
|
|
632
|
-
|
|
633
|
-
|
|
665
|
+
import queryString from 'query-string';
|
|
666
|
+
|
|
667
|
+
// type7
|
|
668
|
+
type ${componentName}Return = ${genericsTypes}
|
|
669
|
+
type ${componentName}Variables = {
|
|
670
|
+
body: ${requestBodyComponent}
|
|
634
671
|
${queryParamsType}
|
|
635
672
|
}
|
|
636
673
|
|
|
637
|
-
type ${componentName}QueryProps<T = ${componentName}
|
|
638
|
-
options?: UseQueryOptions<${componentName}
|
|
674
|
+
type ${componentName}QueryProps<T = ${componentName}Return> = ${componentName}Variables & {
|
|
675
|
+
options?: UseQueryOptions<${componentName}Return, AxiosError, T, any>
|
|
639
676
|
}
|
|
640
677
|
|
|
641
678
|
use${componentName}Query.fetch = async (props: ${componentName}Variables) => {
|
|
642
|
-
const {${queryParams
|
|
643
|
-
.map((param) => `["${param.name}"]: ${param.name.replaceAll('-', '')}`)
|
|
644
|
-
.join(',')}, ...body} = props
|
|
645
679
|
const params = queryString.stringify({
|
|
646
680
|
${queryParams.map((param) => `["${param.name}"]: props["${param.name}"]`).join(',')}
|
|
647
681
|
});
|
|
648
|
-
const result = await api.${verb}<${componentName}
|
|
682
|
+
const result = await api.${verb}<${componentName}Return>(\`${route}?\${params}\`, props.body)
|
|
649
683
|
return result.data
|
|
650
684
|
}
|
|
651
685
|
use${componentName}Query.baseKey = (): QueryKey => ["${componentName.toLowerCase()}"];
|
|
@@ -653,28 +687,28 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
653
687
|
|
|
654
688
|
use${componentName}Query.updateCache = (
|
|
655
689
|
params: ${componentName}Variables,
|
|
656
|
-
updater: Updater<${componentName}
|
|
690
|
+
updater: Updater<${componentName}Return | undefined, ${componentName}Return>,
|
|
657
691
|
options?: SetDataOptions | undefined
|
|
658
|
-
) => queryClient.setQueryData<${componentName}
|
|
692
|
+
) => queryClient.setQueryData<${componentName}Return>(use${componentName}Query.queryKey(params), updater, options);
|
|
659
693
|
|
|
660
694
|
use${componentName}Query.prefetch = (params: ${componentName}Variables) =>
|
|
661
|
-
queryClient.prefetchQuery<${componentName}
|
|
695
|
+
queryClient.prefetchQuery<${componentName}Return>(use${componentName}Query.queryKey(params), ()=> use${componentName}Query.fetch(params));
|
|
662
696
|
|
|
697
|
+
use${componentName}Query.cancelQueries = (params: ${componentName}Variables) => queryClient.cancelQueries(use${componentName}Query.queryKey(params))
|
|
663
698
|
use${componentName}Query.invalidate = (params: ${componentName}Variables) =>
|
|
664
|
-
queryClient.invalidateQueries<${componentName}
|
|
699
|
+
queryClient.invalidateQueries<${componentName}Return>(use${componentName}Query.queryKey(params));
|
|
665
700
|
|
|
666
701
|
|
|
667
|
-
export function use${componentName}Query<T = ${componentName}
|
|
668
|
-
return useQuery(use${componentName}Query.queryKey(props), async () => use${componentName}Query.fetch(props),
|
|
669
|
-
|
|
670
|
-
.join(' && !!props')}, ...options }
|
|
702
|
+
export function use${componentName}Query<T = ${componentName}Return>({ options = {}, ...props }: ${componentName}QueryProps<T>) {
|
|
703
|
+
return useQuery(use${componentName}Query.queryKey(props), async () => use${componentName}Query.fetch(props),
|
|
704
|
+
{ enabled: ${enabledParam}, ...options }
|
|
671
705
|
);}
|
|
672
706
|
|
|
673
707
|
|
|
674
708
|
type ${componentName}MutationProps<T> = {
|
|
675
|
-
options?: UseMutationOptions<${componentName}
|
|
709
|
+
options?: UseMutationOptions<${componentName}Return, AxiosError, ${componentName}Variables, T>
|
|
676
710
|
}
|
|
677
|
-
export function use${componentName}Mutation<T = ${componentName}
|
|
711
|
+
export function use${componentName}Mutation<T = ${componentName}Return>(props?: ${componentName}MutationProps<T>) {
|
|
678
712
|
return useMutation(async (body) => use${componentName}Query.fetch(body),
|
|
679
713
|
props?.options
|
|
680
714
|
)};`;
|
|
@@ -696,13 +730,13 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
696
730
|
}
|
|
697
731
|
if (!requestBodyComponent && !paramsInPath.length && !queryParam && headerParam) {
|
|
698
732
|
output += `
|
|
699
|
-
type ${componentName}
|
|
733
|
+
type ${componentName}Return = ${genericsTypes}
|
|
700
734
|
type ${componentName}Variables = {
|
|
701
735
|
${headerParam}
|
|
702
736
|
};
|
|
703
737
|
|
|
704
738
|
use${componentName}Query.fetch = async (headers: ${componentName}Variables) => {
|
|
705
|
-
const result = await api.${verb}<${componentName}
|
|
739
|
+
const result = await api.${verb}<${componentName}Return>(\`${route}\`, {headers: headers});
|
|
706
740
|
return result.data;
|
|
707
741
|
}
|
|
708
742
|
|
|
@@ -711,38 +745,39 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
711
745
|
|
|
712
746
|
use${componentName}Query.updateCache = (
|
|
713
747
|
params: ${componentName}Variables,
|
|
714
|
-
updater: Updater<${componentName}
|
|
748
|
+
updater: Updater<${componentName}Return | undefined, ${componentName}Return>,
|
|
715
749
|
options?: SetDataOptions | undefined
|
|
716
|
-
) => queryClient.setQueryData<${componentName}
|
|
750
|
+
) => queryClient.setQueryData<${componentName}Return>(use${componentName}Query.queryKey(params), updater, options);
|
|
717
751
|
|
|
718
752
|
use${componentName}Query.prefetch = (params: ${componentName}Variables) =>
|
|
719
|
-
queryClient.prefetchQuery<${componentName}
|
|
753
|
+
queryClient.prefetchQuery<${componentName}Return>(use${componentName}Query.queryKey(params), ()=> use${componentName}Query.fetch(params));
|
|
720
754
|
|
|
755
|
+
use${componentName}Query.cancelQueries = (params: ${componentName}Variables) => queryClient.cancelQueries(use${componentName}Query.queryKey(params))
|
|
721
756
|
use${componentName}Query.invalidate = (params: ${componentName}Variables) =>
|
|
722
|
-
queryClient.invalidateQueries<${componentName}
|
|
757
|
+
queryClient.invalidateQueries<${componentName}Return>(use${componentName}Query.queryKey(params));
|
|
723
758
|
|
|
724
759
|
|
|
725
|
-
type ${componentName}QueryProps<T = ${componentName}
|
|
726
|
-
options?: UseQueryOptions<${componentName}
|
|
760
|
+
type ${componentName}QueryProps<T = ${componentName}Return> = ${componentName}Variables & {
|
|
761
|
+
options?: UseQueryOptions<${componentName}Return, AxiosError, T, any>
|
|
727
762
|
}
|
|
728
|
-
export function use${componentName}Query<T = ${componentName}
|
|
763
|
+
export function use${componentName}Query<T = ${componentName}Return>({ options = {}, ...props }: ${componentName}QueryProps<T>) {
|
|
729
764
|
return useQuery(use${componentName}Query.queryKey(props), async () => use${componentName}Query.fetch(props),
|
|
730
|
-
{ enabled:
|
|
765
|
+
{ enabled: ${enabledParam}, ...options }
|
|
731
766
|
);}
|
|
732
767
|
|
|
733
|
-
|
|
734
|
-
|
|
735
768
|
type ${componentName}MutationProps<T> = {
|
|
736
|
-
options?: UseMutationOptions<${componentName}
|
|
769
|
+
options?: UseMutationOptions<${componentName}Return, AxiosError, ${componentName}Variables, T>
|
|
737
770
|
}
|
|
738
|
-
export function use${componentName}Mutation<T = ${componentName}
|
|
771
|
+
export function use${componentName}Mutation<T = ${componentName}Return>(props?: ${componentName}MutationProps<T>) {
|
|
739
772
|
return useMutation(async (data) => use${componentName}Query.fetch(data),
|
|
740
773
|
props?.options
|
|
741
774
|
)};`;
|
|
742
775
|
}
|
|
743
776
|
if (!requestBodyComponent && !paramsInPath.length && queryParam && headerParam) {
|
|
744
777
|
output += `
|
|
745
|
-
|
|
778
|
+
import queryString from 'query-string';
|
|
779
|
+
|
|
780
|
+
type ${componentName}Return = ${genericsTypes}
|
|
746
781
|
|
|
747
782
|
type ${componentName}Variables = {
|
|
748
783
|
${headerParam}
|
|
@@ -756,7 +791,7 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
756
791
|
const headers = {
|
|
757
792
|
${headerParams.map((p) => `"${p.name}": data["${p.name}"]`).join(',')}
|
|
758
793
|
}
|
|
759
|
-
const result = await api.${verb}<${componentName}
|
|
794
|
+
const result = await api.${verb}<${componentName}Return>(\`${route}?\${params}\`, {headers})
|
|
760
795
|
return result.data;
|
|
761
796
|
}
|
|
762
797
|
use${componentName}Query.baseKey = (): QueryKey => ["${componentName.toLowerCase()}"];
|
|
@@ -764,40 +799,40 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
764
799
|
|
|
765
800
|
use${componentName}Query.updateCache = (
|
|
766
801
|
params: ${componentName}Variables,
|
|
767
|
-
updater: Updater<${componentName}
|
|
802
|
+
updater: Updater<${componentName}Return | undefined, ${componentName}Return>,
|
|
768
803
|
options?: SetDataOptions | undefined
|
|
769
|
-
) => queryClient.setQueryData<${componentName}
|
|
804
|
+
) => queryClient.setQueryData<${componentName}Return>(use${componentName}Query.queryKey(params), updater, options);
|
|
770
805
|
|
|
771
806
|
use${componentName}Query.prefetch = (params: ${componentName}Variables) =>
|
|
772
|
-
queryClient.prefetchQuery<${componentName}
|
|
807
|
+
queryClient.prefetchQuery<${componentName}Return>(use${componentName}Query.queryKey(params), ()=> use${componentName}Query.fetch(params));
|
|
773
808
|
|
|
774
|
-
use${componentName}Query.
|
|
775
|
-
|
|
809
|
+
use${componentName}Query.cancelQueries = (params: ${componentName}Variables) => queryClient.cancelQueries(use${componentName}Query.queryKey(params))
|
|
810
|
+
use${componentName}Query.invalidate = (params: ${componentName}Variables) =>
|
|
811
|
+
queryClient.invalidateQueries<${componentName}Return>(use${componentName}Query.queryKey(params));
|
|
776
812
|
|
|
777
|
-
type ${componentName}QueryProps<T = ${componentName}
|
|
778
|
-
options?: UseQueryOptions<${componentName}
|
|
813
|
+
type ${componentName}QueryProps<T = ${componentName}Return> = ${componentName}Variables & {
|
|
814
|
+
options?: UseQueryOptions<${componentName}Return, AxiosError, T, any>
|
|
779
815
|
}
|
|
780
|
-
export function use${componentName}Query<T = ${componentName}
|
|
816
|
+
export function use${componentName}Query<T = ${componentName}Return>({ options = {}, ...props }: ${componentName}QueryProps<T>) {
|
|
781
817
|
return useQuery(use${componentName}Query.queryKey(props), async () => use${componentName}Query.fetch(props),
|
|
782
|
-
{
|
|
783
|
-
.map((param) => `["${param.name}"]`)
|
|
784
|
-
.join(' && !!props')}, ...options }
|
|
818
|
+
{ enabled: ${enabledParam}, ...options }
|
|
785
819
|
);}
|
|
786
820
|
|
|
787
821
|
type ${componentName}MutationProps<T> = {
|
|
788
|
-
options?: UseMutationOptions<${componentName}
|
|
822
|
+
options?: UseMutationOptions<${componentName}Return, AxiosError, ${componentName}Variables, T>
|
|
789
823
|
}
|
|
790
824
|
|
|
791
|
-
export function use${componentName}Mutation<T = ${componentName}
|
|
825
|
+
export function use${componentName}Mutation<T = ${componentName}Return>(props?: ${componentName}MutationProps<T>) {
|
|
792
826
|
return useMutation(async (data) => use${componentName}Query.fetch(data),
|
|
793
827
|
props?.options
|
|
794
828
|
)};`;
|
|
795
829
|
}
|
|
796
830
|
if (requestBodyComponent && !paramsInPath.length && !queryParam && headerParam) {
|
|
797
831
|
output += `
|
|
798
|
-
type ${componentName}
|
|
832
|
+
type ${componentName}Return = ${genericsTypes}
|
|
799
833
|
|
|
800
|
-
type ${componentName}Variables =
|
|
834
|
+
type ${componentName}Variables = {
|
|
835
|
+
body: ${requestBodyComponent}
|
|
801
836
|
${headerParam}
|
|
802
837
|
};
|
|
803
838
|
|
|
@@ -805,7 +840,7 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
805
840
|
const headers = {
|
|
806
841
|
${headerParams.map((param) => `"${param.name}": body["${param.name}"]`).join(',')}
|
|
807
842
|
}
|
|
808
|
-
const result = await api.${verb}<${componentName}
|
|
843
|
+
const result = await api.${verb}<${componentName}Return>(\`${route}\`, body, {headers})
|
|
809
844
|
return result.data
|
|
810
845
|
}
|
|
811
846
|
|
|
@@ -814,30 +849,30 @@ export const generateRestfulComponent = ({ operation, verb, route, operationIds,
|
|
|
814
849
|
|
|
815
850
|
use${componentName}Query.updateCache = (
|
|
816
851
|
params: ${componentName}Variables,
|
|
817
|
-
updater: Updater<${componentName}
|
|
852
|
+
updater: Updater<${componentName}Return | undefined, ${componentName}Return>,
|
|
818
853
|
options?: SetDataOptions | undefined
|
|
819
|
-
) => queryClient.setQueryData<${componentName}
|
|
854
|
+
) => queryClient.setQueryData<${componentName}Return>(use${componentName}Query.queryKey(params), updater, options);
|
|
820
855
|
|
|
821
856
|
use${componentName}Query.prefetch = (params: ${componentName}Variables) =>
|
|
822
|
-
queryClient.prefetchQuery<${componentName}
|
|
857
|
+
queryClient.prefetchQuery<${componentName}Return>(use${componentName}Query.queryKey(params), ()=> use${componentName}Query.fetch(params));
|
|
823
858
|
|
|
859
|
+
use${componentName}Query.cancelQueries = (params: ${componentName}Variables) => queryClient.cancelQueries(use${componentName}Query.queryKey(params))
|
|
824
860
|
use${componentName}Query.invalidate = (params: ${componentName}Variables) =>
|
|
825
|
-
queryClient.invalidateQueries<${componentName}
|
|
861
|
+
queryClient.invalidateQueries<${componentName}Return>(use${componentName}Query.queryKey(params));
|
|
826
862
|
|
|
827
|
-
type ${componentName}QueryProps<T = ${componentName}
|
|
828
|
-
options?: UseQueryOptions<${componentName}
|
|
863
|
+
type ${componentName}QueryProps<T = ${componentName}Return> = ${componentName}Variables & {
|
|
864
|
+
options?: UseQueryOptions<${componentName}Return, AxiosError, T, any>
|
|
829
865
|
}
|
|
830
|
-
export function use${componentName}Query<T = ${componentName}
|
|
831
|
-
return useQuery(use${componentName}Query.queryKey(body), async () => use${componentName}Query.fetch(body),
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
);}
|
|
866
|
+
export function use${componentName}Query<T = ${componentName}Return>({ options = {}, ...body }: ${componentName}QueryProps<T>) {
|
|
867
|
+
return useQuery(use${componentName}Query.queryKey(body), async () => use${componentName}Query.fetch(body),
|
|
868
|
+
{ enabled: ${enabledParam}, ...options }
|
|
869
|
+
);}
|
|
835
870
|
|
|
836
871
|
|
|
837
872
|
type ${componentName}MutationProps<T> = {
|
|
838
|
-
options?: UseMutationOptions<${componentName}
|
|
873
|
+
options?: UseMutationOptions<${componentName}Return, AxiosError, ${componentName}Variables, T>
|
|
839
874
|
}
|
|
840
|
-
export function use${componentName}Mutation<T = ${componentName}
|
|
875
|
+
export function use${componentName}Mutation<T = ${componentName}Return>(props?: ${componentName}MutationProps<T>) {
|
|
841
876
|
return useMutation(async (body) => use${componentName}Query.fetch(body),
|
|
842
877
|
props?.options
|
|
843
878
|
)};`;
|
|
@@ -886,9 +921,8 @@ export const importOpenApi = async ({ data, format, apiDirectory, queryClientDir
|
|
|
886
921
|
} from 'react-query';
|
|
887
922
|
import { Updater } from 'react-query/types/core/utils';
|
|
888
923
|
|
|
889
|
-
import
|
|
890
|
-
import {
|
|
891
|
-
import { api, AxiosErrorType } from '${apiDirectory}';
|
|
924
|
+
import { AxiosError } from 'axios';
|
|
925
|
+
import { api } from '${apiDirectory}';
|
|
892
926
|
import { queryClient } from '${queryClientDir}';
|
|
893
927
|
|
|
894
928
|
// SCEHMAS
|