I am extracting my apollo cache with the following function:
It returns an object with all the apollo cache entries. Nested objects though only contain the __ref property.
Is there an easy way to resolve those references? Couldn’t find anything in the documentation or in other posts.
I think I could use readFragment or readQuery with the __ref value since that is the cache id of the object that I need. But I want to resolve all those references when I use extract without having to need to create a query or fragment for every single __typename.
Hello! The cache object you obtain from
cache.extract() should contain those referenced objects as other top-level keys. Which is to say, any time you encounter a
__ref, you can index into that same cache object to resolve it:
const cacheRepresentation = cache.extract();
const deviceCategory = cacheRepresentation["DeviceCategory:/api..."];
Is this helpful, or do you need to use references from your extracted object to read into the actual
Also keep in mind the following:
- Sometimes dangling references exist in the cache if the referenced object has been evicted.
- The resolved object might also contain unresolved references.
- Circular references can and often do occur within the cache (because they often occur in GraphQL).