From bfd8db4e4bee61d3909eb7143bc3427f0ffe19e2 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Sun, 4 Jul 2021 23:00:21 +0200 Subject: [PATCH] fea(useMutation): throws option --- packages/vue-apollo-composable/src/useMutation.ts | 5 ++++- packages/vue-apollo-composable/src/util/useEventHook.ts | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/vue-apollo-composable/src/useMutation.ts b/packages/vue-apollo-composable/src/useMutation.ts index ffbfe9d..37ed4d4 100644 --- a/packages/vue-apollo-composable/src/useMutation.ts +++ b/packages/vue-apollo-composable/src/useMutation.ts @@ -14,6 +14,7 @@ export interface UseMutationOptions< TVariables = OperationVariables > extends Omit, 'mutation'> { clientId?: string + throws?: 'auto' | 'always' | 'never' } type DocumentParameter = DocumentNode | Ref | ReactiveFunction | TypedDocumentNode | Ref> | ReactiveFunction> @@ -96,7 +97,9 @@ export function useMutation< error.value = e loading.value = false errorEvent.trigger(e) - throw e + if (currentOptions.throws === 'always' || (currentOptions.throws !== 'never' && !errorEvent.getCount())) { + throw e + } } } diff --git a/packages/vue-apollo-composable/src/util/useEventHook.ts b/packages/vue-apollo-composable/src/util/useEventHook.ts index 73cec42..43bd7d1 100644 --- a/packages/vue-apollo-composable/src/util/useEventHook.ts +++ b/packages/vue-apollo-composable/src/util/useEventHook.ts @@ -21,9 +21,14 @@ export function useEventHook () { } } + function getCount () { + return fns.length + } + return { on, off, trigger, + getCount, } }