Skip to main content

Apollo v3 cache on client and on server

 


On server

apollo-server-caching


On client

Following this strategy, Apollo will be forced to refetch certain queries if the user re-requests them, but won’t trigger potentially hundreds of requests just because a user might re-request them later. And this allows us to leave the default  in place so that we can benefit from caching when the user is not adding data via mutations.

This code assumes we want to flush out any responses to any queries that are cached via the  key but we can also be more targeted if we like.


Comments

Popular posts from this blog

fs.writeFile - permission issue on GCP (Google Cloud Run)

error on this: fs . writeFile ( fileName , pdfBytes , err => { if ( err ) { console . log ( err . message ) reject ( err . message ) } else resolve ( fileName ) }) #1 It looks like when deployed into Cloud Run it also requires the extra permission "Service Account Token Creator" to run  getSignedUrl . Locally for some reason this role is not required. #2 Only the directory  /tmp  is writable in Cloud Run. So, change the default write location to write into this directory. However, you have to be aware of 2 things: Cloud Run is stateless, that means when a new instance is created, the container start from scratch, with an empty  /tmp  directory /tmp  directory is an in-memory file system. The maximum allowed memory on Cloud Run is 2Gb, your app memory footprint included. In addition of your file and Airflow, not sure that you will have a lot of space. A final remark. Cloud Run is active only when it...

A component is changing an uncontrolled input of type text to be controlled error in ReactJS - Formik

 https://stackoverflow.com/questions/47012169/a-component-is-changing-an-uncontrolled-input-of-type-text-to-be-controlled-erro default value can't be undefined  case 'listingBrokerOfficeName' : value = ( listingBroker || {}). officeName break change to: case 'listingBrokerOfficeName' : value = ( listingBroker || {}). officeName || '' break

renew token on graphQL error - apollo client with Firebase authentication

const errorLink = onError( ( { graphQLErrors, networkError, operation, forward } ) => {  https://able.bio/AnasT/apollo-graphql-async-access-token-refresh--470t1c8 apollo client with Firebase authentication https://dgraph.io/docs/graphql/todo-app-tutorial/todo-firebase-jwt/ Concurrent Requests https://able.bio/AnasT/apollo-graphql-async-access-token-refresh--470t1c8 const errorLink = onError( ( { graphQLErrors, networkError, operation, forward } ) => { if (graphQLErrors) { for ( let err of graphQLErrors) { switch (err.extensions.code) { case 'UNAUTHENTICATED' : // error code is set to UNAUTHENTICATED // when AuthenticationError thrown in resolver let forward$; if (!isRefreshing) { isRefreshing = true ; forward$ = fromPromise( getNewToken() .then( ( { accessToken, refreshToken } ) => { // Store t...