Skip to content

Commit

Permalink
fix response cache extension type (#1883)
Browse files Browse the repository at this point in the history
* fix response cache extension type

* add changeset
  • Loading branch information
EmrysMyrddin committed Jun 20, 2023
1 parent 413853d commit 84eb5b4
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 44 deletions.
5 changes: 5 additions & 0 deletions .changeset/thin-fishes-unite.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@envelop/response-cache': patch
---

fix response cache extensions type
73 changes: 29 additions & 44 deletions packages/plugins/response-cache/src/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ export type ResponseCacheExtensions =
ttl: number;
}
| {
invalidatedEntities: string[];
invalidatedEntities: CacheEntityRecord[];
};

export type ResponseCacheExecutionResult = ExecutionResult<
Expand Down Expand Up @@ -389,16 +389,11 @@ export function useResponseCache<PluginContext extends Record<string, any> = {}>

cache.invalidate(identifier.values());
if (includeExtensionMetadata) {
setResult({
...processedResult,
extensions: {
...processedResult.extensions,
responseCache: {
...processedResult.extensions?.responseCache,
invalidatedEntities: Array.from(identifier.values()),
},
},
});
setResult(
resultWithMetadata(processedResult, {
invalidatedEntities: Array.from(identifier.values()),
}),
);
}
},
};
Expand All @@ -417,16 +412,9 @@ export function useResponseCache<PluginContext extends Record<string, any> = {}>

if (cachedResponse != null) {
if (includeExtensionMetadata) {
onExecuteParams.setResultAndStopExecution({
...cachedResponse,
extensions: {
...cachedResponse.extensions,
responseCache: {
...cachedResponse.extensions?.responseCache,
hit: true,
},
},
});
onExecuteParams.setResultAndStopExecution(
resultWithMetadata(cachedResponse, { hit: true }),
);
} else {
onExecuteParams.setResultAndStopExecution(cachedResponse);
}
Expand Down Expand Up @@ -478,42 +466,39 @@ export function useResponseCache<PluginContext extends Record<string, any> = {}>

if (finalTtl === 0) {
if (includeExtensionMetadata) {
setResult({
...processedResult,
extensions: {
...processedResult.extensions,
responseCache: {
...processedResult.extensions?.responseCache,
hit: false,
didCache: false,
},
},
});
setResult(resultWithMetadata(processedResult, { hit: false, didCache: false }));
}
return;
}

cache.set(cacheKey, processedResult, identifier.values(), finalTtl);
if (includeExtensionMetadata) {
setResult({
...processedResult,
extensions: {
...processedResult.extensions,
responseCache: {
...processedResult.extensions?.responseCache,
hit: false,
didCache: true,
ttl: finalTtl,
},
},
});
setResult(
resultWithMetadata(processedResult, { hit: false, didCache: true, ttl: finalTtl }),
);
}
},
};
},
};
}

function resultWithMetadata(
result: ExecutionResult,
metadata: ResponseCacheExtensions,
): ResponseCacheExecutionResult {
return {
...result,
extensions: {
...result.extensions,
responseCache: {
...(result as ResponseCacheExecutionResult).extensions?.responseCache,
...metadata,
},
},
};
}

function calculateTtl(typeTtl: number, currentTtl: number | undefined): number {
if (typeof currentTtl === 'number') {
return Math.min(currentTtl, typeTtl);
Expand Down

0 comments on commit 84eb5b4

Please sign in to comment.