timhall / svelte-apollo

Svelte integration for Apollo GraphQL
MIT License
944 stars 68 forks source link

svelte-apollo does not respect error policies #123

Open ritchieanesco opened 2 years ago

ritchieanesco commented 2 years ago

Svelte apollo does not seem to correctly handle the error policies. See here

Looking at the code: https://github.com/timhall/svelte-apollo/blob/master/packages/svelte-apollo/src/observable.ts#L58-L63

Below is pseudo code proposing checks for the different policies:

  if (result.errors) {

    let error = new ApolloError({ graphQLErrors: result.errors });
    if ( errorPolicy === "all") {

      set({ loading: false, data: results.data, error });

    } else if ( errorPolicy === "ignore") {

      error = new ApolloError({ clientErrors: result.errors });
      set({ loading: false, data: results.data, error });

    } else {

      // "none": default policy
      set({ loading: false, data: undefined, error });
    }

  } else {
    set({ loading: false, data: result.data, error: undefined });
  }