@graphql-box/cache-manager 2.4.2 → 3.1.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 (58) hide show
  1. package/lib/browser/index.js +1 -1
  2. package/lib/browser/index.js.map +1 -1
  3. package/lib/browser/production.analysis.txt +63 -27
  4. package/lib/main/helpers/isFirstResponseChunk.js +11 -0
  5. package/lib/main/helpers/isFirstResponseChunk.js.map +1 -0
  6. package/lib/main/helpers/isLastResponseChunk.js +11 -0
  7. package/lib/main/helpers/isLastResponseChunk.js.map +1 -0
  8. package/lib/main/helpers/isNotLastResponseChunk.js +11 -0
  9. package/lib/main/helpers/isNotLastResponseChunk.js.map +1 -0
  10. package/lib/main/helpers/isNotResponseChunk.js +11 -0
  11. package/lib/main/helpers/isNotResponseChunk.js.map +1 -0
  12. package/lib/main/helpers/mergeResponseDataSets.js +53 -0
  13. package/lib/main/helpers/mergeResponseDataSets.js.map +1 -0
  14. package/lib/main/helpers/normalizePatchResponseData.js +10 -5
  15. package/lib/main/helpers/normalizePatchResponseData.js.map +1 -1
  16. package/lib/main/main/index.js +145 -121
  17. package/lib/main/main/index.js.map +1 -1
  18. package/lib/module/helpers/isFirstResponseChunk.js +2 -0
  19. package/lib/module/helpers/isFirstResponseChunk.js.map +1 -0
  20. package/lib/module/helpers/isLastResponseChunk.js +2 -0
  21. package/lib/module/helpers/isLastResponseChunk.js.map +1 -0
  22. package/lib/module/helpers/isNotLastResponseChunk.js +2 -0
  23. package/lib/module/helpers/isNotLastResponseChunk.js.map +1 -0
  24. package/lib/module/helpers/isNotResponseChunk.js +2 -0
  25. package/lib/module/helpers/isNotResponseChunk.js.map +1 -0
  26. package/lib/module/helpers/mergeResponseDataSets.js +41 -0
  27. package/lib/module/helpers/mergeResponseDataSets.js.map +1 -0
  28. package/lib/module/helpers/normalizePatchResponseData.js +10 -5
  29. package/lib/module/helpers/normalizePatchResponseData.js.map +1 -1
  30. package/lib/module/main/index.js +142 -121
  31. package/lib/module/main/index.js.map +1 -1
  32. package/lib/types/defs/index.d.ts +3 -10
  33. package/lib/types/defs/index.d.ts.map +1 -1
  34. package/lib/types/helpers/isFirstResponseChunk.d.ts +5 -0
  35. package/lib/types/helpers/isFirstResponseChunk.d.ts.map +1 -0
  36. package/lib/types/helpers/isLastResponseChunk.d.ts +5 -0
  37. package/lib/types/helpers/isLastResponseChunk.d.ts.map +1 -0
  38. package/lib/types/helpers/isNotLastResponseChunk.d.ts +5 -0
  39. package/lib/types/helpers/isNotLastResponseChunk.d.ts.map +1 -0
  40. package/lib/types/helpers/isNotResponseChunk.d.ts +5 -0
  41. package/lib/types/helpers/isNotResponseChunk.d.ts.map +1 -0
  42. package/lib/types/helpers/mergeResponseDataSets.d.ts +4 -0
  43. package/lib/types/helpers/mergeResponseDataSets.d.ts.map +1 -0
  44. package/lib/types/helpers/normalizePatchResponseData.d.ts +2 -8
  45. package/lib/types/helpers/normalizePatchResponseData.d.ts.map +1 -1
  46. package/lib/types/main/index.d.ts +7 -5
  47. package/lib/types/main/index.d.ts.map +1 -1
  48. package/package.json +4 -4
  49. package/src/__snapshots__/index.test.ts.snap +12481 -11881
  50. package/src/defs/index.ts +14 -22
  51. package/src/helpers/isFirstResponseChunk.ts +5 -0
  52. package/src/helpers/isLastResponseChunk.ts +5 -0
  53. package/src/helpers/isNotLastResponseChunk.ts +5 -0
  54. package/src/helpers/isNotResponseChunk.ts +5 -0
  55. package/src/helpers/mergeResponseDataSets.ts +35 -0
  56. package/src/helpers/normalizePatchResponseData.ts +8 -1
  57. package/src/index.test.ts +191 -115
  58. package/src/main/index.ts +171 -137
package/src/index.test.ts CHANGED
@@ -4,6 +4,7 @@ import {
4
4
  DEFAULT_TYPE_ID_KEY,
5
5
  DehydratedCacheMetadata,
6
6
  MUTATION,
7
+ RawResponseDataWithMaybeCacheMetadata,
7
8
  RequestData,
8
9
  ResponseData,
9
10
  SUBSCRIPTION,
@@ -31,13 +32,15 @@ describe("@graphql-box/cache-manager >>", () => {
31
32
  });
32
33
 
33
34
  describe("resolveRequest >>", () => {
34
- let responseData: ResponseData;
35
+ let responseData: ResponseData | undefined;
35
36
  let requestData: RequestData;
36
37
 
37
38
  describe("mutation >> nested interface >>", () => {
38
39
  describe("cascading cache control >>", () => {
39
40
  beforeAll(async () => {
40
- cacheManager = await CacheManager.init({
41
+ responseData = undefined;
42
+
43
+ cacheManager = new CacheManager({
41
44
  cache: new Cachemap({
42
45
  name: "cachemap",
43
46
  store: map(),
@@ -49,7 +52,7 @@ describe("@graphql-box/cache-manager >>", () => {
49
52
 
50
53
  requestData = getRequestData(parsedRequests.nestedInterfaceMutation);
51
54
 
52
- responseData = await cacheManager.resolveRequest(
55
+ responseData = await cacheManager.cacheResponse(
53
56
  requestData,
54
57
  responses.nestedInterfaceMutation,
55
58
  { awaitDataCaching: true },
@@ -68,7 +71,9 @@ describe("@graphql-box/cache-manager >>", () => {
68
71
 
69
72
  describe("type cache directives >>", () => {
70
73
  beforeAll(async () => {
71
- cacheManager = await CacheManager.init({
74
+ responseData = undefined;
75
+
76
+ cacheManager = new CacheManager({
72
77
  cache: new Cachemap({
73
78
  name: "cachemap",
74
79
  store: map(),
@@ -86,7 +91,7 @@ describe("@graphql-box/cache-manager >>", () => {
86
91
 
87
92
  requestData = getRequestData(parsedRequests.nestedInterfaceMutation);
88
93
 
89
- responseData = await cacheManager.resolveRequest(
94
+ responseData = await cacheManager.cacheResponse(
90
95
  requestData,
91
96
  responses.nestedInterfaceMutation,
92
97
  { awaitDataCaching: true },
@@ -107,7 +112,9 @@ describe("@graphql-box/cache-manager >>", () => {
107
112
  describe("subscription >> nested type >>", () => {
108
113
  describe("cascading cache control >>", () => {
109
114
  beforeAll(async () => {
110
- cacheManager = await CacheManager.init({
115
+ responseData = undefined;
116
+
117
+ cacheManager = new CacheManager({
111
118
  cache: new Cachemap({
112
119
  name: "cachemap",
113
120
  store: map(),
@@ -119,7 +126,7 @@ describe("@graphql-box/cache-manager >>", () => {
119
126
 
120
127
  requestData = getRequestData(parsedRequests.nestedTypeSubscription);
121
128
 
122
- responseData = await cacheManager.resolveRequest(
129
+ responseData = await cacheManager.cacheResponse(
123
130
  requestData,
124
131
  responses.nestedTypeSubscription,
125
132
  { awaitDataCaching: true },
@@ -138,7 +145,9 @@ describe("@graphql-box/cache-manager >>", () => {
138
145
 
139
146
  describe("type cache directives >>", () => {
140
147
  beforeAll(async () => {
141
- cacheManager = await CacheManager.init({
148
+ responseData = undefined;
149
+
150
+ cacheManager = new CacheManager({
142
151
  cache: new Cachemap({
143
152
  name: "cachemap",
144
153
  store: map(),
@@ -153,7 +162,7 @@ describe("@graphql-box/cache-manager >>", () => {
153
162
 
154
163
  requestData = getRequestData(parsedRequests.nestedTypeSubscription);
155
164
 
156
- responseData = await cacheManager.resolveRequest(
165
+ responseData = await cacheManager.cacheResponse(
157
166
  requestData,
158
167
  responses.nestedTypeSubscription,
159
168
  { awaitDataCaching: true },
@@ -173,14 +182,16 @@ describe("@graphql-box/cache-manager >>", () => {
173
182
  });
174
183
 
175
184
  describe("resolveQuery >>", () => {
176
- let responseData: ResponseData;
185
+ let responseData: ResponseData | undefined;
177
186
  let requestData: RequestData;
178
187
 
179
188
  describe("not filtered >>", () => {
180
189
  describe("single type >>", () => {
181
190
  describe("cascading cache control >>", () => {
182
191
  beforeAll(async () => {
183
- cacheManager = await CacheManager.init({
192
+ responseData = undefined;
193
+
194
+ cacheManager = new CacheManager({
184
195
  cache: new Cachemap({
185
196
  name: "cachemap",
186
197
  store: map(),
@@ -192,7 +203,7 @@ describe("@graphql-box/cache-manager >>", () => {
192
203
 
193
204
  requestData = getRequestData(parsedRequests.singleTypeQuery);
194
205
 
195
- responseData = await cacheManager.resolveQuery(
206
+ responseData = await cacheManager.cacheQuery(
196
207
  requestData,
197
208
  requestData,
198
209
  responses.singleTypeQuery,
@@ -212,7 +223,9 @@ describe("@graphql-box/cache-manager >>", () => {
212
223
 
213
224
  describe("type cache directives >>", () => {
214
225
  beforeAll(async () => {
215
- cacheManager = await CacheManager.init({
226
+ responseData = undefined;
227
+
228
+ cacheManager = new CacheManager({
216
229
  cache: new Cachemap({
217
230
  name: "cachemap",
218
231
  store: map(),
@@ -226,7 +239,7 @@ describe("@graphql-box/cache-manager >>", () => {
226
239
 
227
240
  requestData = getRequestData(parsedRequests.singleTypeQuery);
228
241
 
229
- responseData = await cacheManager.resolveQuery(
242
+ responseData = await cacheManager.cacheQuery(
230
243
  requestData,
231
244
  requestData,
232
245
  responses.singleTypeQuery,
@@ -248,7 +261,9 @@ describe("@graphql-box/cache-manager >>", () => {
248
261
  describe("nested type with edges >>", () => {
249
262
  describe("cascading cache control >>", () => {
250
263
  beforeAll(async () => {
251
- cacheManager = await CacheManager.init({
264
+ responseData = undefined;
265
+
266
+ cacheManager = new CacheManager({
252
267
  cache: new Cachemap({
253
268
  name: "cachemap",
254
269
  store: map(),
@@ -260,7 +275,7 @@ describe("@graphql-box/cache-manager >>", () => {
260
275
 
261
276
  requestData = getRequestData(parsedRequests.nestedTypeQuery);
262
277
 
263
- responseData = await cacheManager.resolveQuery(
278
+ responseData = await cacheManager.cacheQuery(
264
279
  requestData,
265
280
  requestData,
266
281
  responses.nestedTypeQuery,
@@ -280,7 +295,9 @@ describe("@graphql-box/cache-manager >>", () => {
280
295
 
281
296
  describe("type cache directives >>", () => {
282
297
  beforeAll(async () => {
283
- cacheManager = await CacheManager.init({
298
+ responseData = undefined;
299
+
300
+ cacheManager = new CacheManager({
284
301
  cache: new Cachemap({
285
302
  name: "cachemap",
286
303
  store: map(),
@@ -297,7 +314,7 @@ describe("@graphql-box/cache-manager >>", () => {
297
314
 
298
315
  requestData = getRequestData(parsedRequests.nestedTypeQuery);
299
316
 
300
- responseData = await cacheManager.resolveQuery(
317
+ responseData = await cacheManager.cacheQuery(
301
318
  requestData,
302
319
  requestData,
303
320
  responses.nestedTypeQuery,
@@ -319,7 +336,9 @@ describe("@graphql-box/cache-manager >>", () => {
319
336
  describe("nested union with edges >>", () => {
320
337
  describe("cascading cache control >>", () => {
321
338
  beforeAll(async () => {
322
- cacheManager = await CacheManager.init({
339
+ responseData = undefined;
340
+
341
+ cacheManager = new CacheManager({
323
342
  cache: new Cachemap({
324
343
  name: "cachemap",
325
344
  store: map(),
@@ -331,7 +350,7 @@ describe("@graphql-box/cache-manager >>", () => {
331
350
 
332
351
  requestData = getRequestData(parsedRequests.nestedUnionQuery);
333
352
 
334
- responseData = await cacheManager.resolveQuery(
353
+ responseData = await cacheManager.cacheQuery(
335
354
  requestData,
336
355
  requestData,
337
356
  responses.nestedUnionQuery,
@@ -351,7 +370,9 @@ describe("@graphql-box/cache-manager >>", () => {
351
370
 
352
371
  describe("type cache directives >>", () => {
353
372
  beforeAll(async () => {
354
- cacheManager = await CacheManager.init({
373
+ responseData = undefined;
374
+
375
+ cacheManager = new CacheManager({
355
376
  cache: new Cachemap({
356
377
  name: "cachemap",
357
378
  store: map(),
@@ -366,7 +387,7 @@ describe("@graphql-box/cache-manager >>", () => {
366
387
 
367
388
  requestData = getRequestData(parsedRequests.nestedUnionQuery);
368
389
 
369
- responseData = await cacheManager.resolveQuery(
390
+ responseData = await cacheManager.cacheQuery(
370
391
  requestData,
371
392
  requestData,
372
393
  responses.nestedUnionQuery,
@@ -390,10 +411,11 @@ describe("@graphql-box/cache-manager >>", () => {
390
411
  describe("single type >>", () => {
391
412
  describe("cascading cache control >>", () => {
392
413
  beforeAll(async () => {
414
+ responseData = undefined;
393
415
  // @ts-ignore
394
416
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
395
417
 
396
- cacheManager = await CacheManager.init({
418
+ cacheManager = new CacheManager({
397
419
  cache: new Cachemap({
398
420
  name: "cachemap",
399
421
  store: map(),
@@ -405,7 +427,7 @@ describe("@graphql-box/cache-manager >>", () => {
405
427
 
406
428
  requestData = getRequestData(parsedRequests.singleTypeQuerySet.initial);
407
429
 
408
- responseData = await cacheManager.resolveQuery(
430
+ await cacheManager.cacheQuery(
409
431
  requestData,
410
432
  requestData,
411
433
  responses.singleTypeQuerySet.initial,
@@ -421,10 +443,10 @@ describe("@graphql-box/cache-manager >>", () => {
421
443
  data,
422
444
  });
423
445
 
424
- responseData = await cacheManager.resolveQuery(
446
+ responseData = await cacheManager.cacheQuery(
425
447
  getRequestData(parsedRequests.singleTypeQuerySet.full),
426
448
  getRequestData(parsedRequests.singleTypeQuerySet.updated),
427
- responses.singleTypeQuerySet.updated,
449
+ responses.singleTypeQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
428
450
  { awaitDataCaching: true },
429
451
  getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery, queryFiltered: true }),
430
452
  );
@@ -441,10 +463,11 @@ describe("@graphql-box/cache-manager >>", () => {
441
463
 
442
464
  describe("type cache directives >>", () => {
443
465
  beforeAll(async () => {
466
+ responseData = undefined;
444
467
  // @ts-ignore
445
468
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
446
469
 
447
- cacheManager = await CacheManager.init({
470
+ cacheManager = new CacheManager({
448
471
  cache: new Cachemap({
449
472
  name: "cachemap",
450
473
  store: map(),
@@ -458,7 +481,7 @@ describe("@graphql-box/cache-manager >>", () => {
458
481
 
459
482
  requestData = getRequestData(parsedRequests.singleTypeQuerySet.initial);
460
483
 
461
- responseData = await cacheManager.resolveQuery(
484
+ await cacheManager.cacheQuery(
462
485
  requestData,
463
486
  requestData,
464
487
  responses.singleTypeQuerySet.initial,
@@ -474,10 +497,10 @@ describe("@graphql-box/cache-manager >>", () => {
474
497
  data,
475
498
  });
476
499
 
477
- responseData = await cacheManager.resolveQuery(
500
+ responseData = await cacheManager.cacheQuery(
478
501
  getRequestData(parsedRequests.singleTypeQuerySet.full),
479
502
  getRequestData(parsedRequests.singleTypeQuerySet.updated),
480
- responses.singleTypeQuerySet.updated,
503
+ responses.singleTypeQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
481
504
  { awaitDataCaching: true },
482
505
  getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery, queryFiltered: true }),
483
506
  );
@@ -496,10 +519,11 @@ describe("@graphql-box/cache-manager >>", () => {
496
519
  describe("nested type with edges >>", () => {
497
520
  describe("cascading cache control >>", () => {
498
521
  beforeAll(async () => {
522
+ responseData = undefined;
499
523
  // @ts-ignore
500
524
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
501
525
 
502
- cacheManager = await CacheManager.init({
526
+ cacheManager = new CacheManager({
503
527
  cache: new Cachemap({
504
528
  name: "cachemap",
505
529
  store: map(),
@@ -511,7 +535,7 @@ describe("@graphql-box/cache-manager >>", () => {
511
535
 
512
536
  requestData = getRequestData(parsedRequests.nestedTypeQuerySet.initial);
513
537
 
514
- responseData = await cacheManager.resolveQuery(
538
+ await cacheManager.cacheQuery(
515
539
  requestData,
516
540
  requestData,
517
541
  responses.nestedTypeQuerySet.initial,
@@ -527,10 +551,10 @@ describe("@graphql-box/cache-manager >>", () => {
527
551
  data,
528
552
  });
529
553
 
530
- responseData = await cacheManager.resolveQuery(
554
+ responseData = await cacheManager.cacheQuery(
531
555
  getRequestData(parsedRequests.nestedTypeQuerySet.full),
532
556
  getRequestData(parsedRequests.nestedTypeQuerySet.updated),
533
- responses.nestedTypeQuerySet.updated,
557
+ responses.nestedTypeQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
534
558
  { awaitDataCaching: true },
535
559
  getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery, queryFiltered: true }),
536
560
  );
@@ -547,10 +571,11 @@ describe("@graphql-box/cache-manager >>", () => {
547
571
 
548
572
  describe("type cache directives >>", () => {
549
573
  beforeAll(async () => {
574
+ responseData = undefined;
550
575
  // @ts-ignore
551
576
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
552
577
 
553
- cacheManager = await CacheManager.init({
578
+ cacheManager = new CacheManager({
554
579
  cache: new Cachemap({
555
580
  name: "cachemap",
556
581
  store: map(),
@@ -567,7 +592,7 @@ describe("@graphql-box/cache-manager >>", () => {
567
592
 
568
593
  requestData = getRequestData(parsedRequests.nestedTypeQuerySet.initial);
569
594
 
570
- responseData = await cacheManager.resolveQuery(
595
+ await cacheManager.cacheQuery(
571
596
  requestData,
572
597
  requestData,
573
598
  responses.nestedTypeQuerySet.initial,
@@ -583,10 +608,10 @@ describe("@graphql-box/cache-manager >>", () => {
583
608
  data,
584
609
  });
585
610
 
586
- responseData = await cacheManager.resolveQuery(
611
+ responseData = await cacheManager.cacheQuery(
587
612
  getRequestData(parsedRequests.nestedTypeQuerySet.full),
588
613
  getRequestData(parsedRequests.nestedTypeQuerySet.updated),
589
- responses.nestedTypeQuerySet.updated,
614
+ responses.nestedTypeQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
590
615
  { awaitDataCaching: true },
591
616
  getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery, queryFiltered: true }),
592
617
  );
@@ -605,10 +630,11 @@ describe("@graphql-box/cache-manager >>", () => {
605
630
  describe("nested union with edges >>", () => {
606
631
  describe("cascading cache control >>", () => {
607
632
  beforeAll(async () => {
633
+ responseData = undefined;
608
634
  // @ts-ignore
609
635
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
610
636
 
611
- cacheManager = await CacheManager.init({
637
+ cacheManager = new CacheManager({
612
638
  cache: new Cachemap({
613
639
  name: "cachemap",
614
640
  store: map(),
@@ -620,7 +646,7 @@ describe("@graphql-box/cache-manager >>", () => {
620
646
 
621
647
  requestData = getRequestData(parsedRequests.nestedUnionQuerySet.initial);
622
648
 
623
- responseData = await cacheManager.resolveQuery(
649
+ await cacheManager.cacheQuery(
624
650
  requestData,
625
651
  requestData,
626
652
  responses.nestedUnionQuerySet.initial,
@@ -636,10 +662,10 @@ describe("@graphql-box/cache-manager >>", () => {
636
662
  data,
637
663
  });
638
664
 
639
- responseData = await cacheManager.resolveQuery(
665
+ responseData = await cacheManager.cacheQuery(
640
666
  getRequestData(parsedRequests.nestedUnionQuerySet.full),
641
667
  getRequestData(parsedRequests.nestedUnionQuerySet.updated),
642
- responses.nestedUnionQuerySet.updated,
668
+ responses.nestedUnionQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
643
669
  { awaitDataCaching: true },
644
670
  getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery, queryFiltered: true }),
645
671
  );
@@ -656,10 +682,11 @@ describe("@graphql-box/cache-manager >>", () => {
656
682
 
657
683
  describe("type cache directives >>", () => {
658
684
  beforeAll(async () => {
685
+ responseData = undefined;
659
686
  // @ts-ignore
660
687
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
661
688
 
662
- cacheManager = await CacheManager.init({
689
+ cacheManager = new CacheManager({
663
690
  cache: new Cachemap({
664
691
  name: "cachemap",
665
692
  store: map(),
@@ -674,7 +701,7 @@ describe("@graphql-box/cache-manager >>", () => {
674
701
 
675
702
  requestData = getRequestData(parsedRequests.nestedUnionQuerySet.initial);
676
703
 
677
- responseData = await cacheManager.resolveQuery(
704
+ await cacheManager.cacheQuery(
678
705
  requestData,
679
706
  requestData,
680
707
  responses.nestedUnionQuerySet.initial,
@@ -690,10 +717,10 @@ describe("@graphql-box/cache-manager >>", () => {
690
717
  data,
691
718
  });
692
719
 
693
- responseData = await cacheManager.resolveQuery(
720
+ responseData = await cacheManager.cacheQuery(
694
721
  getRequestData(parsedRequests.nestedUnionQuerySet.full),
695
722
  getRequestData(parsedRequests.nestedUnionQuerySet.updated),
696
- responses.nestedUnionQuerySet.updated,
723
+ responses.nestedUnionQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
697
724
  { awaitDataCaching: true },
698
725
  getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery, queryFiltered: true }),
699
726
  );
@@ -711,11 +738,13 @@ describe("@graphql-box/cache-manager >>", () => {
711
738
 
712
739
  describe("defer >>", () => {
713
740
  describe("cascading cache control >>", () => {
741
+ const responseDataSet: ResponseData[] = [];
742
+
714
743
  beforeAll(async () => {
715
744
  // @ts-ignore
716
745
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
717
746
 
718
- cacheManager = await CacheManager.init({
747
+ cacheManager = new CacheManager({
719
748
  cache: new Cachemap({
720
749
  name: "cachemap",
721
750
  store: map(),
@@ -727,12 +756,12 @@ describe("@graphql-box/cache-manager >>", () => {
727
756
 
728
757
  requestData = getRequestData(parsedRequests.deferQuerySet.initial);
729
758
 
730
- responseData = await cacheManager.resolveQuery(
759
+ await cacheManager.cacheQuery(
731
760
  requestData,
732
761
  requestData,
733
762
  responses.deferQuerySet.initial,
734
763
  { awaitDataCaching: true },
735
- getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery }),
764
+ getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true }),
736
765
  );
737
766
 
738
767
  const { cacheMetadata, data } = responses.deferQuerySet.partial;
@@ -743,17 +772,34 @@ describe("@graphql-box/cache-manager >>", () => {
743
772
  data,
744
773
  });
745
774
 
746
- responseData = await cacheManager.resolveQuery(
747
- getRequestData(parsedRequests.deferQuerySet.full),
748
- getRequestData(parsedRequests.deferQuerySet.updated),
749
- responses.deferQuerySet.updated,
750
- { awaitDataCaching: true },
751
- getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, queryFiltered: true }),
752
- );
775
+ await new Promise((resolve: (value: void) => void) => {
776
+ const updateResponses = [...(responses.deferQuerySet.updated as RawResponseDataWithMaybeCacheMetadata[])];
777
+
778
+ const interval = setInterval(async () => {
779
+ const result = await cacheManager.cacheQuery(
780
+ getRequestData(parsedRequests.deferQuerySet.full),
781
+ getRequestData(parsedRequests.deferQuerySet.updated),
782
+ updateResponses.shift() as RawResponseDataWithMaybeCacheMetadata,
783
+ { awaitDataCaching: true },
784
+ getRequestContext({
785
+ fieldTypeMap: requestFieldTypeMaps.deferQuery,
786
+ hasDeferOrStream: true,
787
+ queryFiltered: true,
788
+ }),
789
+ );
790
+
791
+ responseDataSet.push(result);
792
+
793
+ if (!updateResponses.length) {
794
+ clearInterval(interval);
795
+ resolve();
796
+ }
797
+ }, 50);
798
+ });
753
799
  });
754
800
 
755
801
  it("correct response data", () => {
756
- expect(responseData).toMatchSnapshot();
802
+ expect(responseDataSet).toMatchSnapshot();
757
803
  });
758
804
 
759
805
  it("correct cache data", async () => {
@@ -765,12 +811,14 @@ describe("@graphql-box/cache-manager >>", () => {
765
811
  });
766
812
 
767
813
  describe("analyzeQuery >>", () => {
768
- let analyzeQueryResult: AnalyzeQueryResult;
814
+ let analyzeQueryResult: AnalyzeQueryResult | undefined;
769
815
 
770
816
  describe("no matching data >>", () => {
771
817
  describe("single type >>", () => {
772
818
  beforeAll(async () => {
773
- cacheManager = await CacheManager.init({
819
+ analyzeQueryResult = undefined;
820
+
821
+ cacheManager = new CacheManager({
774
822
  cache: new Cachemap({
775
823
  name: "cachemap",
776
824
  store: map(),
@@ -787,18 +835,20 @@ describe("@graphql-box/cache-manager >>", () => {
787
835
  });
788
836
 
789
837
  it("correct request data", () => {
790
- const { ast, ...otherProps } = analyzeQueryResult.updated as RequestData;
838
+ const { ast, ...otherProps } = analyzeQueryResult?.updated as RequestData;
791
839
  expect(otherProps).toMatchSnapshot();
792
840
  });
793
841
 
794
842
  it("no response data", () => {
795
- expect(analyzeQueryResult.response).toBeUndefined();
843
+ expect(analyzeQueryResult?.response).toBeUndefined();
796
844
  });
797
845
  });
798
846
 
799
847
  describe("nested type with edges >>", () => {
800
848
  beforeAll(async () => {
801
- cacheManager = await CacheManager.init({
849
+ analyzeQueryResult = undefined;
850
+
851
+ cacheManager = new CacheManager({
802
852
  cache: new Cachemap({
803
853
  name: "cachemap",
804
854
  store: map(),
@@ -815,18 +865,20 @@ describe("@graphql-box/cache-manager >>", () => {
815
865
  });
816
866
 
817
867
  it("correct request data", () => {
818
- const { ast, ...otherProps } = analyzeQueryResult.updated as RequestData;
868
+ const { ast, ...otherProps } = analyzeQueryResult?.updated as RequestData;
819
869
  expect(otherProps).toMatchSnapshot();
820
870
  });
821
871
 
822
872
  it("no response data", () => {
823
- expect(analyzeQueryResult.response).toBeUndefined();
873
+ expect(analyzeQueryResult?.response).toBeUndefined();
824
874
  });
825
875
  });
826
876
 
827
877
  describe("nested union with edges >>", () => {
828
878
  beforeAll(async () => {
829
- cacheManager = await CacheManager.init({
879
+ analyzeQueryResult = undefined;
880
+
881
+ cacheManager = new CacheManager({
830
882
  cache: new Cachemap({
831
883
  name: "cachemap",
832
884
  store: map(),
@@ -843,18 +895,20 @@ describe("@graphql-box/cache-manager >>", () => {
843
895
  });
844
896
 
845
897
  it("correct request data", () => {
846
- const { ast, ...otherProps } = analyzeQueryResult.updated as RequestData;
898
+ const { ast, ...otherProps } = analyzeQueryResult?.updated as RequestData;
847
899
  expect(otherProps).toMatchSnapshot();
848
900
  });
849
901
 
850
902
  it("no response data", () => {
851
- expect(analyzeQueryResult.response).toBeUndefined();
903
+ expect(analyzeQueryResult?.response).toBeUndefined();
852
904
  });
853
905
  });
854
906
 
855
907
  describe("defer >>", () => {
856
908
  beforeAll(async () => {
857
- cacheManager = await CacheManager.init({
909
+ analyzeQueryResult = undefined;
910
+
911
+ cacheManager = new CacheManager({
858
912
  cache: new Cachemap({
859
913
  name: "cachemap",
860
914
  store: map(),
@@ -866,17 +920,17 @@ describe("@graphql-box/cache-manager >>", () => {
866
920
  analyzeQueryResult = await cacheManager.analyzeQuery(
867
921
  getRequestData(parsedRequests.deferQuery),
868
922
  { awaitDataCaching: true },
869
- getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery }),
923
+ getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true }),
870
924
  );
871
925
  });
872
926
 
873
927
  it("correct request data", () => {
874
- const { ast, ...otherProps } = analyzeQueryResult.updated as RequestData;
928
+ const { ast, ...otherProps } = analyzeQueryResult?.updated as RequestData;
875
929
  expect(otherProps).toMatchSnapshot();
876
930
  });
877
931
 
878
932
  it("no response data", () => {
879
- expect(analyzeQueryResult.response).toBeUndefined();
933
+ expect(analyzeQueryResult?.response).toBeUndefined();
880
934
  });
881
935
  });
882
936
  });
@@ -884,10 +938,11 @@ describe("@graphql-box/cache-manager >>", () => {
884
938
  describe("entire matching data >>", () => {
885
939
  describe("single type >>", () => {
886
940
  beforeAll(async () => {
941
+ analyzeQueryResult = undefined;
887
942
  // @ts-ignore
888
943
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
889
944
 
890
- cacheManager = await CacheManager.init({
945
+ cacheManager = new CacheManager({
891
946
  cache: new Cachemap({
892
947
  name: "cachemap",
893
948
  store: map(),
@@ -901,7 +956,7 @@ describe("@graphql-box/cache-manager >>", () => {
901
956
 
902
957
  const requestData = getRequestData(parsedRequests.singleTypeQuery);
903
958
 
904
- await cacheManager.resolveQuery(
959
+ await cacheManager.cacheQuery(
905
960
  requestData,
906
961
  requestData,
907
962
  responses.singleTypeQuery,
@@ -917,11 +972,11 @@ describe("@graphql-box/cache-manager >>", () => {
917
972
  });
918
973
 
919
974
  it("no request data", () => {
920
- expect(analyzeQueryResult.updated).toBeUndefined();
975
+ expect(analyzeQueryResult?.updated).toBeUndefined();
921
976
  });
922
977
 
923
978
  it("correct response data", () => {
924
- expect(analyzeQueryResult.response).toMatchSnapshot();
979
+ expect(analyzeQueryResult?.response).toMatchSnapshot();
925
980
  });
926
981
 
927
982
  it("correct cache data", async () => {
@@ -931,10 +986,11 @@ describe("@graphql-box/cache-manager >>", () => {
931
986
 
932
987
  describe("nested type with edges >>", () => {
933
988
  beforeAll(async () => {
989
+ analyzeQueryResult = undefined;
934
990
  // @ts-ignore
935
991
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
936
992
 
937
- cacheManager = await CacheManager.init({
993
+ cacheManager = new CacheManager({
938
994
  cache: new Cachemap({
939
995
  name: "cachemap",
940
996
  store: map(),
@@ -951,7 +1007,7 @@ describe("@graphql-box/cache-manager >>", () => {
951
1007
 
952
1008
  const requestData = getRequestData(parsedRequests.nestedTypeQuery);
953
1009
 
954
- await cacheManager.resolveQuery(
1010
+ await cacheManager.cacheQuery(
955
1011
  requestData,
956
1012
  requestData,
957
1013
  responses.nestedTypeQuery,
@@ -967,11 +1023,11 @@ describe("@graphql-box/cache-manager >>", () => {
967
1023
  });
968
1024
 
969
1025
  it("no request data", () => {
970
- expect(analyzeQueryResult.updated).toBeUndefined();
1026
+ expect(analyzeQueryResult?.updated).toBeUndefined();
971
1027
  });
972
1028
 
973
1029
  it("correct response data", () => {
974
- expect(analyzeQueryResult.response).toMatchSnapshot();
1030
+ expect(analyzeQueryResult?.response).toMatchSnapshot();
975
1031
  });
976
1032
 
977
1033
  it("correct cache data", async () => {
@@ -981,10 +1037,11 @@ describe("@graphql-box/cache-manager >>", () => {
981
1037
 
982
1038
  describe("nested union with edges >>", () => {
983
1039
  beforeAll(async () => {
1040
+ analyzeQueryResult = undefined;
984
1041
  // @ts-ignore
985
1042
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
986
1043
 
987
- cacheManager = await CacheManager.init({
1044
+ cacheManager = new CacheManager({
988
1045
  cache: new Cachemap({
989
1046
  name: "cachemap",
990
1047
  store: map(),
@@ -999,7 +1056,7 @@ describe("@graphql-box/cache-manager >>", () => {
999
1056
 
1000
1057
  const requestData = getRequestData(parsedRequests.nestedUnionQuery);
1001
1058
 
1002
- await cacheManager.resolveQuery(
1059
+ await cacheManager.cacheQuery(
1003
1060
  requestData,
1004
1061
  requestData,
1005
1062
  responses.nestedUnionQuery,
@@ -1015,11 +1072,11 @@ describe("@graphql-box/cache-manager >>", () => {
1015
1072
  });
1016
1073
 
1017
1074
  it("no request data", () => {
1018
- expect(analyzeQueryResult.updated).toBeUndefined();
1075
+ expect(analyzeQueryResult?.updated).toBeUndefined();
1019
1076
  });
1020
1077
 
1021
1078
  it("correct response data", () => {
1022
- expect(analyzeQueryResult.response).toMatchSnapshot();
1079
+ expect(analyzeQueryResult?.response).toMatchSnapshot();
1023
1080
  });
1024
1081
 
1025
1082
  it("correct cache data", async () => {
@@ -1029,10 +1086,11 @@ describe("@graphql-box/cache-manager >>", () => {
1029
1086
 
1030
1087
  describe("defer >>", () => {
1031
1088
  beforeAll(async () => {
1089
+ analyzeQueryResult = undefined;
1032
1090
  // @ts-ignore
1033
1091
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
1034
1092
 
1035
- cacheManager = await CacheManager.init({
1093
+ cacheManager = new CacheManager({
1036
1094
  cache: new Cachemap({
1037
1095
  name: "cachemap",
1038
1096
  store: map(),
@@ -1042,29 +1100,43 @@ describe("@graphql-box/cache-manager >>", () => {
1042
1100
  typeIDKey: DEFAULT_TYPE_ID_KEY,
1043
1101
  });
1044
1102
 
1045
- const requestData = getRequestData(parsedRequests.deferQuery);
1046
-
1047
- await cacheManager.resolveQuery(
1048
- requestData,
1049
- requestData,
1050
- responses.deferQuery,
1051
- { awaitDataCaching: true },
1052
- getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery }),
1053
- );
1103
+ const requestData = getRequestData(parsedRequests.deferQuerySet.updated);
1104
+
1105
+ await new Promise((resolve: (value: void) => void) => {
1106
+ const updateResponses = [...(responses.deferQuerySet.updated as RawResponseDataWithMaybeCacheMetadata[])];
1107
+
1108
+ const interval = setInterval(async () => {
1109
+ await cacheManager.cacheQuery(
1110
+ requestData,
1111
+ requestData,
1112
+ updateResponses.shift() as RawResponseDataWithMaybeCacheMetadata,
1113
+ { awaitDataCaching: true },
1114
+ getRequestContext({
1115
+ fieldTypeMap: requestFieldTypeMaps.deferQuery,
1116
+ hasDeferOrStream: true,
1117
+ }),
1118
+ );
1119
+
1120
+ if (!updateResponses.length) {
1121
+ clearInterval(interval);
1122
+ resolve();
1123
+ }
1124
+ }, 50);
1125
+ });
1054
1126
 
1055
1127
  analyzeQueryResult = await cacheManager.analyzeQuery(
1056
- getRequestData(parsedRequests.deferQuery),
1128
+ requestData,
1057
1129
  { awaitDataCaching: true },
1058
- getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery }),
1130
+ getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true }),
1059
1131
  );
1060
1132
  });
1061
1133
 
1062
1134
  it("no request data", () => {
1063
- expect(analyzeQueryResult.updated).toBeUndefined();
1135
+ expect(analyzeQueryResult?.updated).toBeUndefined();
1064
1136
  });
1065
1137
 
1066
1138
  it("correct response data", () => {
1067
- expect(analyzeQueryResult.response).toMatchSnapshot();
1139
+ expect(analyzeQueryResult?.response).toMatchSnapshot();
1068
1140
  });
1069
1141
 
1070
1142
  it("correct cache data", async () => {
@@ -1076,10 +1148,11 @@ describe("@graphql-box/cache-manager >>", () => {
1076
1148
  describe("some matching data >>", () => {
1077
1149
  describe("single type >>", () => {
1078
1150
  beforeAll(async () => {
1151
+ analyzeQueryResult = undefined;
1079
1152
  // @ts-ignore
1080
1153
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
1081
1154
 
1082
- cacheManager = await CacheManager.init({
1155
+ cacheManager = new CacheManager({
1083
1156
  cache: new Cachemap({
1084
1157
  name: "cachemap",
1085
1158
  store: map(),
@@ -1093,7 +1166,7 @@ describe("@graphql-box/cache-manager >>", () => {
1093
1166
 
1094
1167
  const requestData = getRequestData(parsedRequests.singleTypeQuerySet.initial);
1095
1168
 
1096
- await cacheManager.resolveQuery(
1169
+ await cacheManager.cacheQuery(
1097
1170
  requestData,
1098
1171
  requestData,
1099
1172
  responses.singleTypeQuerySet.initial,
@@ -1109,12 +1182,12 @@ describe("@graphql-box/cache-manager >>", () => {
1109
1182
  });
1110
1183
 
1111
1184
  it("correct request data", () => {
1112
- const { ast, ...otherProps } = analyzeQueryResult.updated as RequestData;
1185
+ const { ast, ...otherProps } = analyzeQueryResult?.updated as RequestData;
1113
1186
  expect(otherProps).toMatchSnapshot();
1114
1187
  });
1115
1188
 
1116
1189
  it("no response data", () => {
1117
- expect(analyzeQueryResult.response).toBeUndefined();
1190
+ expect(analyzeQueryResult?.response).toBeUndefined();
1118
1191
  });
1119
1192
 
1120
1193
  it("correct cache data", async () => {
@@ -1129,10 +1202,11 @@ describe("@graphql-box/cache-manager >>", () => {
1129
1202
 
1130
1203
  describe("nested type with edges >", () => {
1131
1204
  beforeAll(async () => {
1205
+ analyzeQueryResult = undefined;
1132
1206
  // @ts-ignore
1133
1207
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
1134
1208
 
1135
- cacheManager = await CacheManager.init({
1209
+ cacheManager = new CacheManager({
1136
1210
  cache: new Cachemap({
1137
1211
  name: "cachemap",
1138
1212
  store: map(),
@@ -1149,7 +1223,7 @@ describe("@graphql-box/cache-manager >>", () => {
1149
1223
 
1150
1224
  const requestData = getRequestData(parsedRequests.nestedTypeQuerySet.initial);
1151
1225
 
1152
- await cacheManager.resolveQuery(
1226
+ await cacheManager.cacheQuery(
1153
1227
  requestData,
1154
1228
  requestData,
1155
1229
  responses.nestedTypeQuerySet.initial,
@@ -1165,12 +1239,12 @@ describe("@graphql-box/cache-manager >>", () => {
1165
1239
  });
1166
1240
 
1167
1241
  it("correct request data", () => {
1168
- const { ast, ...otherProps } = analyzeQueryResult.updated as RequestData;
1242
+ const { ast, ...otherProps } = analyzeQueryResult?.updated as RequestData;
1169
1243
  expect(otherProps).toMatchSnapshot();
1170
1244
  });
1171
1245
 
1172
1246
  it("no response data", () => {
1173
- expect(analyzeQueryResult.response).toBeUndefined();
1247
+ expect(analyzeQueryResult?.response).toBeUndefined();
1174
1248
  });
1175
1249
 
1176
1250
  it("correct cache data", async () => {
@@ -1185,10 +1259,11 @@ describe("@graphql-box/cache-manager >>", () => {
1185
1259
 
1186
1260
  describe("nested union with edges >>", () => {
1187
1261
  beforeAll(async () => {
1262
+ analyzeQueryResult = undefined;
1188
1263
  // @ts-ignore
1189
1264
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
1190
1265
 
1191
- cacheManager = await CacheManager.init({
1266
+ cacheManager = new CacheManager({
1192
1267
  cache: new Cachemap({
1193
1268
  name: "cachemap",
1194
1269
  store: map(),
@@ -1203,7 +1278,7 @@ describe("@graphql-box/cache-manager >>", () => {
1203
1278
 
1204
1279
  const requestData = getRequestData(parsedRequests.nestedUnionQuerySet.initial);
1205
1280
 
1206
- await cacheManager.resolveQuery(
1281
+ await cacheManager.cacheQuery(
1207
1282
  requestData,
1208
1283
  requestData,
1209
1284
  responses.nestedUnionQuerySet.initial,
@@ -1219,12 +1294,12 @@ describe("@graphql-box/cache-manager >>", () => {
1219
1294
  });
1220
1295
 
1221
1296
  it("correct request data", () => {
1222
- const { ast, ...otherProps } = analyzeQueryResult.updated as RequestData;
1297
+ const { ast, ...otherProps } = analyzeQueryResult?.updated as RequestData;
1223
1298
  expect(otherProps).toMatchSnapshot();
1224
1299
  });
1225
1300
 
1226
1301
  it("no response data", () => {
1227
- expect(analyzeQueryResult.response).toBeUndefined();
1302
+ expect(analyzeQueryResult?.response).toBeUndefined();
1228
1303
  });
1229
1304
 
1230
1305
  it("correct cache data", async () => {
@@ -1239,10 +1314,11 @@ describe("@graphql-box/cache-manager >>", () => {
1239
1314
 
1240
1315
  describe("defer >>", () => {
1241
1316
  beforeAll(async () => {
1317
+ analyzeQueryResult = undefined;
1242
1318
  // @ts-ignore
1243
1319
  jest.spyOn(CacheManager, "_isValid").mockReturnValue(true);
1244
1320
 
1245
- cacheManager = await CacheManager.init({
1321
+ cacheManager = new CacheManager({
1246
1322
  cache: new Cachemap({
1247
1323
  name: "cachemap",
1248
1324
  store: map(),
@@ -1254,28 +1330,28 @@ describe("@graphql-box/cache-manager >>", () => {
1254
1330
 
1255
1331
  const requestData = getRequestData(parsedRequests.deferQuerySet.initial);
1256
1332
 
1257
- await cacheManager.resolveQuery(
1333
+ await cacheManager.cacheQuery(
1258
1334
  requestData,
1259
1335
  requestData,
1260
1336
  responses.deferQuerySet.initial,
1261
1337
  { awaitDataCaching: true },
1262
- getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery }),
1338
+ getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true }),
1263
1339
  );
1264
1340
 
1265
1341
  analyzeQueryResult = await cacheManager.analyzeQuery(
1266
1342
  getRequestData(parsedRequests.deferQuery),
1267
1343
  { awaitDataCaching: true },
1268
- getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery }),
1344
+ getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true }),
1269
1345
  );
1270
1346
  });
1271
1347
 
1272
1348
  it("correct request data", () => {
1273
- const { ast, ...otherProps } = analyzeQueryResult.updated as RequestData;
1349
+ const { ast, ...otherProps } = analyzeQueryResult?.updated as RequestData;
1274
1350
  expect(otherProps).toMatchSnapshot();
1275
1351
  });
1276
1352
 
1277
1353
  it("no response data", () => {
1278
- expect(analyzeQueryResult.response).toBeUndefined();
1354
+ expect(analyzeQueryResult?.response).toBeUndefined();
1279
1355
  });
1280
1356
 
1281
1357
  it("correct cache data", async () => {