Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
graphql-helpers.ts
export function removeFromCache<ReadQueryResponseT>(
toRemove: EntityObject,
readQuery: DocumentNode,
cache: ApolloCache<any>,
entityName: keyof ReadQueryResponseT
) {
const existingEntities = cache.readQuery<
Record<keyof ReadQueryResponseT, EntityObject[]>
>({
query: readQuery,
});
if (toRemove && existingEntities) {
cache.writeQuery({
query: readQuery,
data: {
[entityName]: existingEntities[entityName].filter(
(entity) => entity.id !== toRemove.id
),
},
});
cache.evict({ id: toRemove.id })
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment