@openapi-qraft/tanstack-query-react-plugin 2.5.0-beta.3 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/generateCode.d.ts +5 -0
  3. package/dist/generateCode.d.ts.map +1 -1
  4. package/dist/generateCode.js +23 -21
  5. package/dist/generateCode.js.map +1 -1
  6. package/dist/lib/parseOptionSubValues.d.ts +11 -0
  7. package/dist/lib/parseOptionSubValues.d.ts.map +1 -0
  8. package/dist/lib/parseOptionSubValues.js +30 -0
  9. package/dist/lib/parseOptionSubValues.js.map +1 -0
  10. package/dist/plugin.d.ts.map +1 -1
  11. package/dist/plugin.js +62 -1
  12. package/dist/plugin.js.map +1 -1
  13. package/dist/ts-factory/getCallbackNames.d.ts +5 -0
  14. package/dist/ts-factory/getCallbackNames.d.ts.map +1 -0
  15. package/dist/ts-factory/getCallbackNames.js +35 -0
  16. package/dist/ts-factory/getCallbackNames.js.map +1 -0
  17. package/dist/ts-factory/getCreateAPIClientFactory.d.ts +11 -0
  18. package/dist/ts-factory/getCreateAPIClientFactory.d.ts.map +1 -0
  19. package/dist/ts-factory/getCreateAPIClientFactory.js +254 -0
  20. package/dist/ts-factory/getCreateAPIClientFactory.js.map +1 -0
  21. package/dist/ts-factory/getCreatePredefinedParametersRequestFnFactory.d.ts +1 -1
  22. package/dist/ts-factory/getIndexFactory.d.ts +7 -1
  23. package/dist/ts-factory/getIndexFactory.d.ts.map +1 -1
  24. package/dist/ts-factory/getIndexFactory.js +4 -4
  25. package/dist/ts-factory/getIndexFactory.js.map +1 -1
  26. package/dist/ts-factory/getServiceFactory.d.ts +1 -1
  27. package/dist/ts-factory/getServiceFactory.d.ts.map +1 -1
  28. package/dist/ts-factory/getServiceFactory.js +32 -84
  29. package/dist/ts-factory/getServiceFactory.js.map +1 -1
  30. package/dist/ts-factory/getServiceIndexFactory.d.ts +1 -1
  31. package/dist/ts-factory/serviceOperationNodes.d.ts +11 -0
  32. package/dist/ts-factory/serviceOperationNodes.d.ts.map +1 -0
  33. package/dist/ts-factory/serviceOperationNodes.js +68 -0
  34. package/dist/ts-factory/serviceOperationNodes.js.map +1 -0
  35. package/package.json +4 -4
  36. package/src/generateCode.ts +33 -25
  37. package/src/lib/parseOptionSubValues.ts +44 -0
  38. package/src/plugin.ts +124 -1
  39. package/src/ts-factory/getCallbackNames.ts +45 -0
  40. package/src/ts-factory/getCreateAPIClientFactory.ts +1014 -0
  41. package/src/ts-factory/getIndexFactory.ts +25 -11
  42. package/src/ts-factory/getServiceFactory.ts +126 -138
  43. package/src/ts-factory/serviceOperationNodes.ts +73 -0
  44. package/dist/ts-factory/getClientFactory.d.ts +0 -8
  45. package/dist/ts-factory/getClientFactory.d.ts.map +0 -1
  46. package/dist/ts-factory/getClientFactory.js +0 -92
  47. package/dist/ts-factory/getClientFactory.js.map +0 -1
  48. package/src/ts-factory/getClientFactory.ts +0 -344
@@ -0,0 +1,1014 @@
1
+ import ts from 'typescript';
2
+
3
+ type Options = {
4
+ servicesDirName: string;
5
+ explicitImportExtensions: '.js' | '.ts' | undefined;
6
+ defaultClientCallbacks: string[] | ['all'] | ['none'] | undefined;
7
+ defaultClientServices: string[] | ['all'] | ['none'] | undefined;
8
+ createAPIClientFnName: string;
9
+ };
10
+
11
+ export const getCreateAPIClientFactory = (options: Options) => {
12
+ return [
13
+ ...getOperationClientImportsFactory(options),
14
+ ...getCreateOperationClientFunctionFactory(options),
15
+ ];
16
+ };
17
+
18
+ const getOperationClientImportsFactory = ({
19
+ servicesDirName,
20
+ explicitImportExtensions,
21
+ defaultClientCallbacks,
22
+ defaultClientServices,
23
+ }: Options) => {
24
+ const factory = ts.factory;
25
+
26
+ const shouldImportAllCallbacks = defaultClientCallbacks?.some(
27
+ (name) => name === 'all'
28
+ );
29
+ const shouldImportAllServices = defaultClientServices?.some(
30
+ (name) => name === 'all'
31
+ );
32
+
33
+ const clientCallbacks =
34
+ defaultClientCallbacks?.filter(
35
+ (name) => name !== 'all' && name !== 'none'
36
+ ) || [];
37
+
38
+ const imports: ts.Statement[] = [
39
+ factory.createImportDeclaration(
40
+ undefined,
41
+ factory.createImportClause(
42
+ true,
43
+ undefined,
44
+ factory.createNamedImports(
45
+ [
46
+ factory.createImportSpecifier(
47
+ false,
48
+ undefined,
49
+ factory.createIdentifier('APIBasicClientServices')
50
+ ),
51
+ factory.createImportSpecifier(
52
+ false,
53
+ undefined,
54
+ factory.createIdentifier('APIBasicQueryClientServices')
55
+ ),
56
+ factory.createImportSpecifier(
57
+ false,
58
+ undefined,
59
+ factory.createIdentifier('APIDefaultQueryClientServices')
60
+ ),
61
+ shouldImportAllCallbacks
62
+ ? null
63
+ : factory.createImportSpecifier(
64
+ false,
65
+ undefined,
66
+ factory.createIdentifier('APIQueryClientServices')
67
+ ),
68
+ factory.createImportSpecifier(
69
+ false,
70
+ undefined,
71
+ factory.createIdentifier('APIUtilityClientServices')
72
+ ),
73
+ factory.createImportSpecifier(
74
+ false,
75
+ undefined,
76
+ factory.createIdentifier('CreateAPIBasicClientOptions')
77
+ ),
78
+ factory.createImportSpecifier(
79
+ false,
80
+ undefined,
81
+ factory.createIdentifier('CreateAPIBasicQueryClientOptions')
82
+ ),
83
+ factory.createImportSpecifier(
84
+ false,
85
+ undefined,
86
+ factory.createIdentifier('CreateAPIClientOptions')
87
+ ),
88
+ factory.createImportSpecifier(
89
+ false,
90
+ undefined,
91
+ factory.createIdentifier('CreateAPIQueryClientOptions')
92
+ ),
93
+ shouldImportAllServices
94
+ ? null
95
+ : factory.createImportSpecifier(
96
+ false,
97
+ undefined,
98
+ factory.createIdentifier('UnionServiceOperationsDeclaration')
99
+ ),
100
+ ].filter(nonNullable)
101
+ )
102
+ ),
103
+ factory.createStringLiteral('@openapi-qraft/react'),
104
+ undefined
105
+ ),
106
+ ];
107
+
108
+ imports.push(
109
+ factory.createImportDeclaration(
110
+ undefined,
111
+ factory.createImportClause(
112
+ !shouldImportAllCallbacks,
113
+ undefined,
114
+ factory.createNamespaceImport(factory.createIdentifier('allCallbacks'))
115
+ ),
116
+ factory.createStringLiteral('@openapi-qraft/react/callbacks/index'),
117
+ undefined
118
+ )
119
+ );
120
+
121
+ imports.push(
122
+ factory.createImportDeclaration(
123
+ undefined,
124
+ factory.createImportClause(
125
+ false,
126
+ undefined,
127
+ factory.createNamedImports([
128
+ factory.createImportSpecifier(
129
+ false,
130
+ undefined,
131
+ factory.createIdentifier('qraftAPIClient')
132
+ ),
133
+ ])
134
+ ),
135
+ factory.createStringLiteral('@openapi-qraft/react'),
136
+ undefined
137
+ )
138
+ );
139
+
140
+ if (!shouldImportAllCallbacks && clientCallbacks.length) {
141
+ imports.push(
142
+ factory.createImportDeclaration(
143
+ undefined,
144
+ factory.createImportClause(
145
+ false,
146
+ undefined,
147
+ factory.createNamedImports(
148
+ clientCallbacks.map((name) =>
149
+ factory.createImportSpecifier(
150
+ false,
151
+ undefined,
152
+ factory.createIdentifier(name)
153
+ )
154
+ )
155
+ )
156
+ ),
157
+ factory.createStringLiteral('@openapi-qraft/react/callbacks/index'),
158
+ undefined
159
+ )
160
+ );
161
+ }
162
+
163
+ if (!shouldImportAllCallbacks) {
164
+ imports.push(
165
+ factory.createVariableStatement(
166
+ undefined,
167
+ factory.createVariableDeclarationList(
168
+ [
169
+ factory.createVariableDeclaration(
170
+ factory.createIdentifier('defaultCallbacks'),
171
+ undefined,
172
+ undefined,
173
+ factory.createAsExpression(
174
+ factory.createObjectLiteralExpression(
175
+ clientCallbacks.map((name) =>
176
+ factory.createShorthandPropertyAssignment(
177
+ factory.createIdentifier(name),
178
+ undefined
179
+ )
180
+ ),
181
+ true
182
+ ),
183
+ factory.createTypeReferenceNode(
184
+ factory.createIdentifier('const'),
185
+ undefined
186
+ )
187
+ )
188
+ ),
189
+ ],
190
+ ts.NodeFlags.Const
191
+ )
192
+ )
193
+ );
194
+ }
195
+
196
+ if (shouldImportAllServices) {
197
+ imports.push(
198
+ factory.createImportDeclaration(
199
+ undefined,
200
+ factory.createImportClause(
201
+ false,
202
+ undefined,
203
+ factory.createNamedImports([
204
+ factory.createImportSpecifier(
205
+ false,
206
+ undefined,
207
+ factory.createIdentifier('services')
208
+ ),
209
+ ])
210
+ ),
211
+ factory.createStringLiteral(
212
+ `./${servicesDirName}/index${explicitImportExtensions ?? ''}`
213
+ ),
214
+ undefined
215
+ )
216
+ );
217
+ }
218
+
219
+ return imports;
220
+ };
221
+
222
+ const getCreateOperationClientFunctionFactory = ({
223
+ defaultClientCallbacks,
224
+ defaultClientServices,
225
+ createAPIClientFnName,
226
+ }: Options) => {
227
+ const factory = ts.factory;
228
+
229
+ const shouldImportAllCallbacks = defaultClientCallbacks?.some(
230
+ (name) => name === 'all'
231
+ );
232
+ const shouldImportAllServices = defaultClientServices?.some(
233
+ (name) => name === 'all'
234
+ );
235
+
236
+ const clientCallbacks =
237
+ defaultClientCallbacks?.filter(
238
+ (name) => name !== 'all' && name !== 'none'
239
+ ) || [];
240
+
241
+ return [
242
+ factory.createFunctionDeclaration(
243
+ [factory.createToken(ts.SyntaxKind.ExportKeyword)],
244
+ undefined,
245
+ factory.createIdentifier(createAPIClientFnName),
246
+ [
247
+ shouldImportAllServices
248
+ ? null
249
+ : factory.createTypeParameterDeclaration(
250
+ undefined,
251
+ factory.createIdentifier('Services'),
252
+ factory.createTypeReferenceNode(
253
+ factory.createIdentifier('UnionServiceOperationsDeclaration'),
254
+ [
255
+ factory.createTypeReferenceNode(
256
+ factory.createIdentifier('Services'),
257
+ undefined
258
+ ),
259
+ ]
260
+ ),
261
+ undefined
262
+ ),
263
+ ].filter(nonNullable),
264
+ [
265
+ shouldImportAllServices
266
+ ? null
267
+ : factory.createParameterDeclaration(
268
+ undefined,
269
+ undefined,
270
+ factory.createIdentifier('services'),
271
+ undefined,
272
+ factory.createTypeReferenceNode(
273
+ factory.createIdentifier('Services'),
274
+ undefined
275
+ ),
276
+ undefined
277
+ ),
278
+ factory.createParameterDeclaration(
279
+ undefined,
280
+ undefined,
281
+ factory.createIdentifier('options'),
282
+ undefined,
283
+ factory.createTypeReferenceNode(
284
+ factory.createIdentifier('CreateAPIQueryClientOptions'),
285
+ undefined
286
+ ),
287
+ undefined
288
+ ),
289
+ shouldImportAllCallbacks
290
+ ? null
291
+ : factory.createParameterDeclaration(
292
+ undefined,
293
+ undefined,
294
+ factory.createIdentifier('callbacks'),
295
+ shouldImportAllCallbacks
296
+ ? factory.createToken(ts.SyntaxKind.QuestionToken)
297
+ : undefined,
298
+ factory.createTypeReferenceNode(
299
+ factory.createIdentifier('AllCallbacks'),
300
+ undefined
301
+ ),
302
+ undefined
303
+ ),
304
+ ].filter(nonNullable),
305
+ factory.createTypeReferenceNode(
306
+ factory.createIdentifier('APIDefaultQueryClientServices'),
307
+ [
308
+ factory.createTypeReferenceNode(
309
+ factory.createIdentifier('Services'),
310
+ undefined
311
+ ),
312
+ ]
313
+ ),
314
+ undefined
315
+ ),
316
+ shouldImportAllCallbacks
317
+ ? null
318
+ : factory.createFunctionDeclaration(
319
+ [factory.createToken(ts.SyntaxKind.ExportKeyword)],
320
+ undefined,
321
+ factory.createIdentifier(createAPIClientFnName),
322
+ [
323
+ shouldImportAllServices
324
+ ? null
325
+ : factory.createTypeParameterDeclaration(
326
+ undefined,
327
+ factory.createIdentifier('Services'),
328
+ factory.createTypeReferenceNode(
329
+ factory.createIdentifier(
330
+ 'UnionServiceOperationsDeclaration'
331
+ ),
332
+ [
333
+ factory.createTypeReferenceNode(
334
+ factory.createIdentifier('Services'),
335
+ undefined
336
+ ),
337
+ ]
338
+ ),
339
+ undefined
340
+ ),
341
+ factory.createTypeParameterDeclaration(
342
+ undefined,
343
+ factory.createIdentifier('Callbacks'),
344
+ factory.createTypeReferenceNode(
345
+ factory.createIdentifier('Partial'),
346
+ [
347
+ factory.createTypeReferenceNode(
348
+ factory.createIdentifier('AllCallbacks'),
349
+ undefined
350
+ ),
351
+ ]
352
+ ),
353
+ factory.createTypeReferenceNode(
354
+ factory.createIdentifier(
355
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'DefaultCallbacks'
356
+ ),
357
+ undefined
358
+ )
359
+ ),
360
+ ].filter(nonNullable),
361
+ [
362
+ shouldImportAllServices
363
+ ? null
364
+ : factory.createParameterDeclaration(
365
+ undefined,
366
+ undefined,
367
+ factory.createIdentifier('services'),
368
+ undefined,
369
+ factory.createTypeReferenceNode(
370
+ factory.createIdentifier('Services'),
371
+ undefined
372
+ ),
373
+ undefined
374
+ ),
375
+ factory.createParameterDeclaration(
376
+ undefined,
377
+ undefined,
378
+ factory.createIdentifier('options'),
379
+ undefined,
380
+ factory.createTypeReferenceNode(
381
+ factory.createIdentifier('CreateAPIQueryClientOptions'),
382
+ undefined
383
+ ),
384
+ undefined
385
+ ),
386
+ factory.createParameterDeclaration(
387
+ undefined,
388
+ undefined,
389
+ factory.createIdentifier('callbacks'),
390
+ shouldImportAllCallbacks || clientCallbacks.length
391
+ ? factory.createToken(ts.SyntaxKind.QuestionToken)
392
+ : undefined,
393
+ factory.createTypeReferenceNode(
394
+ factory.createIdentifier('Callbacks'),
395
+ undefined
396
+ ),
397
+ undefined
398
+ ),
399
+ ].filter(nonNullable),
400
+ factory.createTypeReferenceNode(
401
+ factory.createIdentifier('APIQueryClientServices'),
402
+ [
403
+ factory.createTypeReferenceNode(
404
+ factory.createIdentifier('Services'),
405
+ undefined
406
+ ),
407
+ factory.createTypeReferenceNode(
408
+ factory.createIdentifier('Callbacks'),
409
+ undefined
410
+ ),
411
+ ]
412
+ ),
413
+ undefined
414
+ ),
415
+ factory.createFunctionDeclaration(
416
+ [factory.createToken(ts.SyntaxKind.ExportKeyword)],
417
+ undefined,
418
+ factory.createIdentifier(createAPIClientFnName),
419
+ [
420
+ shouldImportAllServices
421
+ ? null
422
+ : factory.createTypeParameterDeclaration(
423
+ undefined,
424
+ factory.createIdentifier('Services'),
425
+ factory.createTypeReferenceNode(
426
+ factory.createIdentifier('UnionServiceOperationsDeclaration'),
427
+ [
428
+ factory.createTypeReferenceNode(
429
+ factory.createIdentifier('Services'),
430
+ undefined
431
+ ),
432
+ ]
433
+ ),
434
+ undefined
435
+ ),
436
+ shouldImportAllCallbacks
437
+ ? null
438
+ : factory.createTypeParameterDeclaration(
439
+ undefined,
440
+ factory.createIdentifier('Callbacks'),
441
+ factory.createTypeReferenceNode(
442
+ factory.createIdentifier('Partial'),
443
+ [
444
+ factory.createTypeReferenceNode(
445
+ factory.createIdentifier('AllCallbacks'),
446
+ undefined
447
+ ),
448
+ ]
449
+ ),
450
+ factory.createTypeReferenceNode(
451
+ factory.createIdentifier(
452
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'DefaultCallbacks'
453
+ ),
454
+ undefined
455
+ )
456
+ ),
457
+ ].filter(nonNullable),
458
+ [
459
+ shouldImportAllServices
460
+ ? null
461
+ : factory.createParameterDeclaration(
462
+ undefined,
463
+ undefined,
464
+ factory.createIdentifier('services'),
465
+ undefined,
466
+ factory.createTypeReferenceNode(
467
+ factory.createIdentifier('Services'),
468
+ undefined
469
+ ),
470
+ undefined
471
+ ),
472
+ factory.createParameterDeclaration(
473
+ undefined,
474
+ undefined,
475
+ factory.createIdentifier('options'),
476
+ undefined,
477
+ factory.createTypeReferenceNode(
478
+ factory.createIdentifier('CreateAPIBasicQueryClientOptions'),
479
+ undefined
480
+ ),
481
+ undefined
482
+ ),
483
+ shouldImportAllCallbacks
484
+ ? null
485
+ : factory.createParameterDeclaration(
486
+ undefined,
487
+ undefined,
488
+ factory.createIdentifier('callbacks'),
489
+ shouldImportAllCallbacks || clientCallbacks.length
490
+ ? factory.createToken(ts.SyntaxKind.QuestionToken)
491
+ : undefined,
492
+ factory.createTypeReferenceNode(
493
+ factory.createIdentifier('Callbacks'),
494
+ undefined
495
+ ),
496
+ undefined
497
+ ),
498
+ ].filter(nonNullable),
499
+ factory.createTypeReferenceNode(
500
+ factory.createIdentifier('APIBasicQueryClientServices'),
501
+ [
502
+ factory.createTypeReferenceNode(
503
+ factory.createIdentifier('Services'),
504
+ undefined
505
+ ),
506
+ factory.createTypeReferenceNode(
507
+ factory.createIdentifier(
508
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'DefaultCallbacks'
509
+ ),
510
+ undefined
511
+ ),
512
+ ]
513
+ ),
514
+ undefined
515
+ ),
516
+ factory.createFunctionDeclaration(
517
+ [factory.createToken(ts.SyntaxKind.ExportKeyword)],
518
+ undefined,
519
+ factory.createIdentifier(createAPIClientFnName),
520
+ [
521
+ shouldImportAllServices
522
+ ? null
523
+ : factory.createTypeParameterDeclaration(
524
+ undefined,
525
+ factory.createIdentifier('Services'),
526
+ factory.createTypeReferenceNode(
527
+ factory.createIdentifier('UnionServiceOperationsDeclaration'),
528
+ [
529
+ factory.createTypeReferenceNode(
530
+ factory.createIdentifier('Services'),
531
+ undefined
532
+ ),
533
+ ]
534
+ ),
535
+ undefined
536
+ ),
537
+ shouldImportAllCallbacks
538
+ ? null
539
+ : factory.createTypeParameterDeclaration(
540
+ undefined,
541
+ factory.createIdentifier('Callbacks'),
542
+ factory.createTypeReferenceNode(
543
+ factory.createIdentifier('Partial'),
544
+ [
545
+ factory.createTypeReferenceNode(
546
+ factory.createIdentifier('AllCallbacks'),
547
+ undefined
548
+ ),
549
+ ]
550
+ ),
551
+ factory.createTypeReferenceNode(
552
+ factory.createIdentifier(
553
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'DefaultCallbacks'
554
+ ),
555
+ undefined
556
+ )
557
+ ),
558
+ ].filter(nonNullable),
559
+ [
560
+ shouldImportAllServices
561
+ ? null
562
+ : factory.createParameterDeclaration(
563
+ undefined,
564
+ undefined,
565
+ factory.createIdentifier('services'),
566
+ undefined,
567
+ factory.createTypeReferenceNode(
568
+ factory.createIdentifier('Services'),
569
+ undefined
570
+ ),
571
+ undefined
572
+ ),
573
+ factory.createParameterDeclaration(
574
+ undefined,
575
+ undefined,
576
+ factory.createIdentifier('options'),
577
+ undefined,
578
+ factory.createTypeReferenceNode(
579
+ factory.createIdentifier('CreateAPIBasicClientOptions'),
580
+ undefined
581
+ ),
582
+ undefined
583
+ ),
584
+ shouldImportAllCallbacks
585
+ ? null
586
+ : factory.createParameterDeclaration(
587
+ undefined,
588
+ undefined,
589
+ factory.createIdentifier('callbacks'),
590
+ shouldImportAllCallbacks || clientCallbacks.length
591
+ ? factory.createToken(ts.SyntaxKind.QuestionToken)
592
+ : undefined,
593
+ factory.createTypeReferenceNode(
594
+ factory.createIdentifier('Callbacks'),
595
+ undefined
596
+ ),
597
+ undefined
598
+ ),
599
+ ].filter(nonNullable),
600
+ factory.createTypeReferenceNode(
601
+ factory.createIdentifier('APIBasicClientServices'),
602
+ [
603
+ factory.createTypeReferenceNode(
604
+ factory.createIdentifier('Services'),
605
+ undefined
606
+ ),
607
+ factory.createTypeReferenceNode(
608
+ factory.createIdentifier(
609
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'DefaultCallbacks'
610
+ ),
611
+ undefined
612
+ ),
613
+ ]
614
+ ),
615
+ undefined
616
+ ),
617
+ factory.createFunctionDeclaration(
618
+ [factory.createToken(ts.SyntaxKind.ExportKeyword)],
619
+ undefined,
620
+ factory.createIdentifier(createAPIClientFnName),
621
+ [
622
+ shouldImportAllServices
623
+ ? null
624
+ : factory.createTypeParameterDeclaration(
625
+ undefined,
626
+ factory.createIdentifier('Services'),
627
+ factory.createTypeReferenceNode(
628
+ factory.createIdentifier('UnionServiceOperationsDeclaration'),
629
+ [
630
+ factory.createTypeReferenceNode(
631
+ factory.createIdentifier('Services'),
632
+ undefined
633
+ ),
634
+ ]
635
+ ),
636
+ undefined
637
+ ),
638
+ shouldImportAllCallbacks
639
+ ? null
640
+ : factory.createTypeParameterDeclaration(
641
+ undefined,
642
+ factory.createIdentifier('Callbacks'),
643
+ factory.createTypeReferenceNode(
644
+ factory.createIdentifier('Partial'),
645
+ [
646
+ factory.createTypeReferenceNode(
647
+ factory.createIdentifier('AllCallbacks'),
648
+ undefined
649
+ ),
650
+ ]
651
+ ),
652
+ factory.createTypeReferenceNode(
653
+ factory.createIdentifier(
654
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'DefaultCallbacks'
655
+ ),
656
+ undefined
657
+ )
658
+ ),
659
+ ].filter(nonNullable),
660
+ [
661
+ shouldImportAllServices
662
+ ? null
663
+ : factory.createParameterDeclaration(
664
+ undefined,
665
+ undefined,
666
+ factory.createIdentifier('services'),
667
+ undefined,
668
+ factory.createTypeReferenceNode(
669
+ factory.createIdentifier('Services'),
670
+ undefined
671
+ ),
672
+ undefined
673
+ ),
674
+ shouldImportAllCallbacks
675
+ ? null
676
+ : factory.createParameterDeclaration(
677
+ undefined,
678
+ undefined,
679
+ factory.createIdentifier('callbacks'),
680
+ shouldImportAllCallbacks || clientCallbacks.length
681
+ ? factory.createToken(ts.SyntaxKind.QuestionToken)
682
+ : undefined,
683
+ factory.createTypeReferenceNode(
684
+ factory.createIdentifier('Callbacks'),
685
+ undefined
686
+ ),
687
+ undefined
688
+ ),
689
+ ].filter(nonNullable),
690
+ factory.createTypeReferenceNode(
691
+ factory.createIdentifier('APIUtilityClientServices'),
692
+ [
693
+ factory.createTypeReferenceNode(
694
+ factory.createIdentifier('Services'),
695
+ undefined
696
+ ),
697
+ factory.createTypeReferenceNode(
698
+ factory.createIdentifier(
699
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'Callbacks'
700
+ ),
701
+ undefined
702
+ ),
703
+ ]
704
+ ),
705
+ undefined
706
+ ),
707
+ factory.createFunctionDeclaration(
708
+ [factory.createToken(ts.SyntaxKind.ExportKeyword)],
709
+ undefined,
710
+ factory.createIdentifier(createAPIClientFnName),
711
+ [
712
+ shouldImportAllServices
713
+ ? null
714
+ : factory.createTypeParameterDeclaration(
715
+ undefined,
716
+ factory.createIdentifier('Services'),
717
+ factory.createTypeReferenceNode(
718
+ factory.createIdentifier('UnionServiceOperationsDeclaration'),
719
+ [
720
+ factory.createTypeReferenceNode(
721
+ factory.createIdentifier('Services'),
722
+ undefined
723
+ ),
724
+ ]
725
+ ),
726
+ undefined
727
+ ),
728
+ shouldImportAllCallbacks
729
+ ? null
730
+ : factory.createTypeParameterDeclaration(
731
+ undefined,
732
+ factory.createIdentifier('Callbacks'),
733
+ factory.createTypeReferenceNode(
734
+ factory.createIdentifier('Partial'),
735
+ [
736
+ factory.createTypeReferenceNode(
737
+ factory.createIdentifier('AllCallbacks'),
738
+ undefined
739
+ ),
740
+ ]
741
+ ),
742
+ factory.createTypeReferenceNode(
743
+ factory.createIdentifier(
744
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'DefaultCallbacks'
745
+ ),
746
+ undefined
747
+ )
748
+ ),
749
+ ].filter(nonNullable),
750
+ [
751
+ shouldImportAllServices
752
+ ? null
753
+ : factory.createParameterDeclaration(
754
+ undefined,
755
+ undefined,
756
+ factory.createIdentifier('services'),
757
+ undefined,
758
+ factory.createTypeReferenceNode(
759
+ factory.createIdentifier('Services'),
760
+ undefined
761
+ ),
762
+ undefined
763
+ ),
764
+ factory.createParameterDeclaration(
765
+ undefined,
766
+ undefined,
767
+ factory.createIdentifier(
768
+ shouldImportAllCallbacks ? 'options' : 'callbacksOrOptions'
769
+ ),
770
+ shouldImportAllCallbacks || clientCallbacks.length
771
+ ? factory.createToken(ts.SyntaxKind.QuestionToken)
772
+ : undefined,
773
+ factory.createUnionTypeNode(
774
+ [
775
+ factory.createTypeReferenceNode(
776
+ factory.createIdentifier('CreateAPIClientOptions'),
777
+ undefined
778
+ ),
779
+ shouldImportAllCallbacks
780
+ ? null
781
+ : factory.createTypeReferenceNode(
782
+ factory.createIdentifier('Callbacks'),
783
+ undefined
784
+ ),
785
+ ].filter(nonNullable)
786
+ )
787
+ ),
788
+ shouldImportAllCallbacks
789
+ ? null
790
+ : factory.createParameterDeclaration(
791
+ undefined,
792
+ undefined,
793
+ factory.createIdentifier('callbacks'),
794
+ undefined,
795
+ factory.createTypeReferenceNode(
796
+ factory.createIdentifier('Callbacks'),
797
+ undefined
798
+ ),
799
+ factory.createAsExpression(
800
+ factory.createIdentifier(
801
+ shouldImportAllCallbacks ? 'allCallbacks' : 'defaultCallbacks'
802
+ ),
803
+ factory.createTypeReferenceNode(
804
+ factory.createIdentifier('Callbacks'),
805
+ undefined
806
+ )
807
+ )
808
+ ),
809
+ ].filter(nonNullable),
810
+ factory.createUnionTypeNode(
811
+ [
812
+ factory.createTypeReferenceNode(
813
+ factory.createIdentifier('APIDefaultQueryClientServices'),
814
+ [
815
+ factory.createTypeReferenceNode(
816
+ factory.createIdentifier('Services'),
817
+ undefined
818
+ ),
819
+ ]
820
+ ),
821
+ shouldImportAllCallbacks
822
+ ? null
823
+ : factory.createTypeReferenceNode(
824
+ factory.createIdentifier('APIQueryClientServices'),
825
+ [
826
+ factory.createTypeReferenceNode(
827
+ factory.createIdentifier('Services'),
828
+ undefined
829
+ ),
830
+ factory.createTypeReferenceNode(
831
+ factory.createIdentifier('Callbacks'),
832
+ undefined
833
+ ),
834
+ ]
835
+ ),
836
+ factory.createTypeReferenceNode(
837
+ factory.createIdentifier('APIBasicQueryClientServices'),
838
+ [
839
+ factory.createTypeReferenceNode(
840
+ factory.createIdentifier('Services'),
841
+ undefined
842
+ ),
843
+ factory.createTypeReferenceNode(
844
+ factory.createIdentifier(
845
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'Callbacks'
846
+ ),
847
+ undefined
848
+ ),
849
+ ]
850
+ ),
851
+ factory.createTypeReferenceNode(
852
+ factory.createIdentifier('APIBasicClientServices'),
853
+ [
854
+ factory.createTypeReferenceNode(
855
+ factory.createIdentifier('Services'),
856
+ undefined
857
+ ),
858
+ factory.createTypeReferenceNode(
859
+ factory.createIdentifier(
860
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'Callbacks'
861
+ ),
862
+ undefined
863
+ ),
864
+ ]
865
+ ),
866
+ factory.createTypeReferenceNode(
867
+ factory.createIdentifier('APIUtilityClientServices'),
868
+ [
869
+ factory.createTypeReferenceNode(
870
+ factory.createIdentifier('Services'),
871
+ undefined
872
+ ),
873
+ factory.createTypeReferenceNode(
874
+ factory.createIdentifier(
875
+ shouldImportAllCallbacks ? 'AllCallbacks' : 'Callbacks'
876
+ ),
877
+ undefined
878
+ ),
879
+ ]
880
+ ),
881
+ ].filter(nonNullable)
882
+ ),
883
+ factory.createBlock(
884
+ [
885
+ factory.createIfStatement(
886
+ factory.createPrefixUnaryExpression(
887
+ ts.SyntaxKind.ExclamationToken,
888
+ factory.createIdentifier(
889
+ shouldImportAllCallbacks ? 'options' : 'callbacksOrOptions'
890
+ )
891
+ ),
892
+ factory.createReturnStatement(
893
+ factory.createCallExpression(
894
+ factory.createIdentifier('qraftAPIClient'),
895
+ undefined,
896
+ [
897
+ factory.createIdentifier('services'),
898
+ factory.createIdentifier(
899
+ shouldImportAllCallbacks ? 'allCallbacks' : 'callbacks'
900
+ ),
901
+ ]
902
+ )
903
+ ),
904
+ undefined
905
+ ),
906
+ factory.createIfStatement(
907
+ factory.createBinaryExpression(
908
+ factory.createStringLiteral('requestFn'),
909
+ factory.createToken(ts.SyntaxKind.InKeyword),
910
+ factory.createIdentifier(
911
+ shouldImportAllCallbacks ? 'options' : 'callbacksOrOptions'
912
+ )
913
+ ),
914
+ factory.createReturnStatement(
915
+ factory.createCallExpression(
916
+ factory.createIdentifier('qraftAPIClient'),
917
+ undefined,
918
+ [
919
+ factory.createIdentifier('services'),
920
+ factory.createIdentifier(
921
+ shouldImportAllCallbacks ? 'allCallbacks' : 'callbacks'
922
+ ),
923
+ factory.createIdentifier(
924
+ shouldImportAllCallbacks ? 'options' : 'callbacksOrOptions'
925
+ ),
926
+ ]
927
+ )
928
+ ),
929
+ undefined
930
+ ),
931
+ factory.createIfStatement(
932
+ factory.createBinaryExpression(
933
+ factory.createStringLiteral('queryClient'),
934
+ factory.createToken(ts.SyntaxKind.InKeyword),
935
+ factory.createIdentifier(
936
+ shouldImportAllCallbacks ? 'options' : 'callbacksOrOptions'
937
+ )
938
+ ),
939
+ factory.createReturnStatement(
940
+ factory.createCallExpression(
941
+ factory.createIdentifier('qraftAPIClient'),
942
+ undefined,
943
+ [
944
+ factory.createIdentifier('services'),
945
+ factory.createIdentifier(
946
+ shouldImportAllCallbacks ? 'allCallbacks' : 'callbacks'
947
+ ),
948
+ factory.createIdentifier(
949
+ shouldImportAllCallbacks ? 'options' : 'callbacksOrOptions'
950
+ ),
951
+ ]
952
+ )
953
+ ),
954
+ undefined
955
+ ),
956
+ factory.createReturnStatement(
957
+ factory.createCallExpression(
958
+ factory.createIdentifier('qraftAPIClient'),
959
+ undefined,
960
+ [
961
+ factory.createIdentifier('services'),
962
+ shouldImportAllCallbacks
963
+ ? factory.createIdentifier('allCallbacks')
964
+ : factory.createBinaryExpression(
965
+ factory.createIdentifier('callbacksOrOptions'),
966
+ factory.createToken(ts.SyntaxKind.QuestionQuestionToken),
967
+ factory.createIdentifier(
968
+ shouldImportAllCallbacks ? 'allCallbacks' : 'callbacks'
969
+ )
970
+ ),
971
+ ]
972
+ )
973
+ ),
974
+ ],
975
+ true
976
+ )
977
+ ),
978
+ shouldImportAllCallbacks
979
+ ? null
980
+ : factory.createTypeAliasDeclaration(
981
+ undefined,
982
+ factory.createIdentifier('DefaultCallbacks'),
983
+ undefined,
984
+ factory.createTypeQueryNode(
985
+ factory.createIdentifier('defaultCallbacks'),
986
+ undefined
987
+ )
988
+ ),
989
+ factory.createTypeAliasDeclaration(
990
+ undefined,
991
+ factory.createIdentifier('AllCallbacks'),
992
+ undefined,
993
+ factory.createTypeQueryNode(
994
+ factory.createIdentifier('allCallbacks'),
995
+ undefined
996
+ )
997
+ ),
998
+ shouldImportAllServices
999
+ ? factory.createTypeAliasDeclaration(
1000
+ undefined,
1001
+ factory.createIdentifier('Services'),
1002
+ undefined,
1003
+ factory.createTypeQueryNode(
1004
+ factory.createIdentifier('services'),
1005
+ undefined
1006
+ )
1007
+ )
1008
+ : null,
1009
+ ].filter(nonNullable);
1010
+ };
1011
+
1012
+ function nonNullable<T>(value: T | null | undefined): value is T {
1013
+ return value !== null && value !== undefined;
1014
+ }