Logos DX
    Preparing search index...

    Function useMutation

    • Apollo-style mutation hook — idle until mutate() is called. Returns { data, loading, failure, mutate, reset, cancel, called }.

      mutate() never rejects — it resolves with the parsed response body on success, or undefined on any failure. failure narrows on kind: 'transport' (no response exists — abort, timeout, connection lost) carries error: FetchError; 'http' (server answered outside 2xx) carries response, the resolved ok-false FetchResponse.

      const { mutate, loading, failure } = useMutation<User>(api, 'post', '/users', {
          emitOnSuccess: 'users.created',
      }, observer);
      
      const user = await mutate({ name: 'Alice' });
      
      if (!user) {
          if (failure?.kind === 'http') console.error(failure.response.status);
          if (failure?.kind === 'transport') console.error(failure.error.message);
          return;
      }
      

      Type Parameters

      Parameters

      • engine: FetchEngine<H, P, S, RH>

        FetchEngine instance

      • method: "post" | "put" | "delete" | "patch"

        HTTP method (post, put, delete, patch)

      • path: string

        Request path

      • Optionaloptions: MutationOptions<H, P, E>

        Mutation options (defaults, emitOnSuccess)

      • Optionalobserver: ObserverEngine<E>

        Optional ObserverEngine for emitOnSuccess

      Returns MutationResult<T, RH>