1 year ago

#386321

test-img

rmartrenado

Apollo cache typePolicies: same field on multiple parents/queries

I have the same fields on multiple parents (different objects) in Apollo cache.

I want to do some logic in the merge function in typePolicies.

However, when these fields are repeated on many places coming from different queries, I find myself having to repeat code like this:

typePolicies: {
    RiesgoComercialAbr: {
      fields: {
        situacion: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
        posicionamiento: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
        ratingRiesgoCese: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
        scoreLiquidez: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
      },
    },
    RiesgoComercialAut: {
      fields: {
        situacion: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
        posicionamiento: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
        ratingRiesgoCese: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
        scoreLiquidez: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
      },
    },
    RiesgoComercialInf: {
      fields: {
        situacion: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
        posicionamiento: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
        ratingRiesgoCese: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
        scoreLiquidez: {
          merge(existing = [], incoming = [], { variables }) {
            debugger;
            return incoming;
          },
        },
      },
    },
}

Is there any way to globally work on these merge functions for these fields?

Thank you very much

javascript

reactjs

apollo

apollo-client

0 Answers

Your Answer

Accepted video resources