@@ -182,7 +182,7 @@ export type ResponseCacheExtensions =
182
182
ttl : number ;
183
183
}
184
184
| {
185
- invalidatedEntities : string [ ] ;
185
+ invalidatedEntities : CacheEntityRecord [ ] ;
186
186
} ;
187
187
188
188
export type ResponseCacheExecutionResult = ExecutionResult <
@@ -389,16 +389,11 @@ export function useResponseCache<PluginContext extends Record<string, any> = {}>
389
389
390
390
cache . invalidate ( identifier . values ( ) ) ;
391
391
if ( includeExtensionMetadata ) {
392
- setResult ( {
393
- ...processedResult ,
394
- extensions : {
395
- ...processedResult . extensions ,
396
- responseCache : {
397
- ...processedResult . extensions ?. responseCache ,
398
- invalidatedEntities : Array . from ( identifier . values ( ) ) ,
399
- } ,
400
- } ,
401
- } ) ;
392
+ setResult (
393
+ resultWithMetadata ( processedResult , {
394
+ invalidatedEntities : Array . from ( identifier . values ( ) ) ,
395
+ } ) ,
396
+ ) ;
402
397
}
403
398
} ,
404
399
} ;
@@ -417,16 +412,9 @@ export function useResponseCache<PluginContext extends Record<string, any> = {}>
417
412
418
413
if ( cachedResponse != null ) {
419
414
if ( includeExtensionMetadata ) {
420
- onExecuteParams . setResultAndStopExecution ( {
421
- ...cachedResponse ,
422
- extensions : {
423
- ...cachedResponse . extensions ,
424
- responseCache : {
425
- ...cachedResponse . extensions ?. responseCache ,
426
- hit : true ,
427
- } ,
428
- } ,
429
- } ) ;
415
+ onExecuteParams . setResultAndStopExecution (
416
+ resultWithMetadata ( cachedResponse , { hit : true } ) ,
417
+ ) ;
430
418
} else {
431
419
onExecuteParams . setResultAndStopExecution ( cachedResponse ) ;
432
420
}
@@ -478,42 +466,39 @@ export function useResponseCache<PluginContext extends Record<string, any> = {}>
478
466
479
467
if ( finalTtl === 0 ) {
480
468
if ( includeExtensionMetadata ) {
481
- setResult ( {
482
- ...processedResult ,
483
- extensions : {
484
- ...processedResult . extensions ,
485
- responseCache : {
486
- ...processedResult . extensions ?. responseCache ,
487
- hit : false ,
488
- didCache : false ,
489
- } ,
490
- } ,
491
- } ) ;
469
+ setResult ( resultWithMetadata ( processedResult , { hit : false , didCache : false } ) ) ;
492
470
}
493
471
return ;
494
472
}
495
473
496
474
cache . set ( cacheKey , processedResult , identifier . values ( ) , finalTtl ) ;
497
475
if ( includeExtensionMetadata ) {
498
- setResult ( {
499
- ...processedResult ,
500
- extensions : {
501
- ...processedResult . extensions ,
502
- responseCache : {
503
- ...processedResult . extensions ?. responseCache ,
504
- hit : false ,
505
- didCache : true ,
506
- ttl : finalTtl ,
507
- } ,
508
- } ,
509
- } ) ;
476
+ setResult (
477
+ resultWithMetadata ( processedResult , { hit : false , didCache : true , ttl : finalTtl } ) ,
478
+ ) ;
510
479
}
511
480
} ,
512
481
} ;
513
482
} ,
514
483
} ;
515
484
}
516
485
486
+ function resultWithMetadata (
487
+ result : ExecutionResult ,
488
+ metadata : ResponseCacheExtensions ,
489
+ ) : ResponseCacheExecutionResult {
490
+ return {
491
+ ...result ,
492
+ extensions : {
493
+ ...result . extensions ,
494
+ responseCache : {
495
+ ...( result as ResponseCacheExecutionResult ) . extensions ?. responseCache ,
496
+ ...metadata ,
497
+ } ,
498
+ } ,
499
+ } ;
500
+ }
501
+
517
502
function calculateTtl ( typeTtl : number , currentTtl : number | undefined ) : number {
518
503
if ( typeof currentTtl === 'number' ) {
519
504
return Math . min ( currentTtl , typeTtl ) ;
0 commit comments