Skip to content

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

@hiepxanh

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions