Skip to content

Apollo Angular SSR use state transfer: not respect default cache policy cache-first, have to add manual on each request #1765

Description

@hiepxanh

Describe the bug

As Apollo Client describe, it default policy is cache-first which is not really understand why not working on apollo angular universal if I use TransferState.

image

To Reproduce
Steps to reproduce the behavior:

  • add SSR and apollo-angular Store rehydration#
  • make request, it cached on server, check the request, it still make the request to server on client again.
  • console.log(this.apollo.client.cache.readQuery(query)) can see the cache result still here.
  • add cache-first to the query. Client apollo happy now and don't make request.

Expected behavior

  • I do not need to add cache-first on every request.
    I don't know is that by design or miss take. the Apollo Angular change it?
    if it by design. we should note the developer. "You should add fetchPolicy: 'cache-first' if you want your query read the cache from
    on the document.

Environment:

dependencies:
@angular/cli 13.1.2
@angular/core 13.2.1
@apollo/client 3.5.8
apollo-angular 3.0.0
graphql 15.8.0
typescript 4.5.4

Additional context

I'm willing to check source code. I already look in source code and don't find that Apollo Angular change anything relevant to fetchPolicy. I still cannot find the reason. I can make a PR which have some test case if you like. or an other PR for document if you think we need notice developer should add cache-first if you want to cache.
BTW, what is the default cache policy of Apollo Angular? did I miss something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions