@tanstack/vue-query 4.13.0 → 4.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ import type { QueryKey, QueryObserverOptions, InfiniteQueryObserverOptions } fro
2
2
  import type { Ref, UnwrapRef } from 'vue-demi';
3
3
  import type { QueryClient } from './queryClient';
4
4
  export declare type MaybeRef<T> = Ref<T> | T;
5
- export declare type MaybeRefDeep<T> = T extends Function ? T : MaybeRef<T extends object ? {
5
+ export declare type MaybeRefDeep<T> = MaybeRef<T extends object ? {
6
6
  [Property in keyof T]: MaybeRefDeep<T[Property]>;
7
7
  } : T>;
8
8
  export declare type WithQueryClientKey<T> = T & {
@@ -1,17 +1,20 @@
1
1
  import type { ToRefs } from 'vue-demi';
2
- import type { MutationFunction, MutationKey, MutationObserverOptions, MutateFunction, MutationObserverResult } from '@tanstack/query-core';
3
- import type { WithQueryClientKey } from './types';
2
+ import type { MutationFunction, MutationKey, MutateFunction, MutationObserverResult, MutationObserverOptions } from '@tanstack/query-core';
3
+ import type { WithQueryClientKey, MaybeRef, MaybeRefDeep } from './types';
4
4
  declare type MutationResult<TData, TError, TVariables, TContext> = Omit<MutationObserverResult<TData, TError, TVariables, TContext>, 'mutate' | 'reset'>;
5
5
  export declare type UseMutationOptions<TData, TError, TVariables, TContext> = WithQueryClientKey<MutationObserverOptions<TData, TError, TVariables, TContext>>;
6
+ export declare type VueMutationObserverOptions<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> = {
7
+ [Property in keyof UseMutationOptions<TData, TError, TVariables, TContext>]: MaybeRefDeep<UseMutationOptions<TData, TError, TVariables, TContext>[Property]>;
8
+ };
6
9
  declare type MutateSyncFunction<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> = (...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>) => void;
7
10
  export declare type UseMutationReturnType<TData, TError, TVariables, TContext, Result = MutationResult<TData, TError, TVariables, TContext>> = ToRefs<Readonly<Result>> & {
8
11
  mutate: MutateSyncFunction<TData, TError, TVariables, TContext>;
9
12
  mutateAsync: MutateFunction<TData, TError, TVariables, TContext>;
10
13
  reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset'];
11
14
  };
12
- export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(options: UseMutationOptions<TData, TError, TVariables, TContext>): UseMutationReturnType<TData, TError, TVariables, TContext>;
13
- export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationFn: MutationFunction<TData, TVariables>, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationFn'>): UseMutationReturnType<TData, TError, TVariables, TContext>;
14
- export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationKey: MutationKey, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey'>): UseMutationReturnType<TData, TError, TVariables, TContext>;
15
- export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationKey: MutationKey, mutationFn?: MutationFunction<TData, TVariables>, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey' | 'mutationFn'>): UseMutationReturnType<TData, TError, TVariables, TContext>;
16
- export declare function parseMutationArgs<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(arg1: MutationKey | MutationFunction<TData, TVariables> | UseMutationOptions<TData, TError, TVariables, TContext>, arg2?: MutationFunction<TData, TVariables> | UseMutationOptions<TData, TError, TVariables, TContext>, arg3?: UseMutationOptions<TData, TError, TVariables, TContext>): UseMutationOptions<TData, TError, TVariables, TContext>;
15
+ export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(options: MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>): UseMutationReturnType<TData, TError, TVariables, TContext>;
16
+ export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationFn: MaybeRef<MutationFunction<TData, TVariables>>, options?: MaybeRef<Omit<VueMutationObserverOptions<TData, TError, TVariables, TContext>, 'mutationFn'>>): UseMutationReturnType<TData, TError, TVariables, TContext>;
17
+ export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationKey: MaybeRef<MutationKey>, options?: MaybeRef<Omit<VueMutationObserverOptions<TData, TError, TVariables, TContext>, 'mutationKey'>>): UseMutationReturnType<TData, TError, TVariables, TContext>;
18
+ export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationKey: MaybeRef<MutationKey>, mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>, options?: MaybeRef<Omit<VueMutationObserverOptions<TData, TError, TVariables, TContext>, 'mutationKey' | 'mutationFn'>>): UseMutationReturnType<TData, TError, TVariables, TContext>;
19
+ export declare function parseMutationArgs<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(arg1: MaybeRef<MutationKey> | MaybeRef<MutationFunction<TData, TVariables>> | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>, arg2?: MaybeRef<MutationFunction<TData, TVariables>> | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>, arg3?: MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>): WithQueryClientKey<MutationObserverOptions<TData, TError, TVariables, TContext>>;
17
20
  export {};
@@ -1,15 +1,16 @@
1
- import { reactive, watch, onScopeDispose, toRefs, readonly } from 'vue-demi';
1
+ import { computed, reactive, watch, onScopeDispose, toRefs, readonly, isRef } from 'vue-demi';
2
2
  import { MutationObserver } from '@tanstack/query-core';
3
- import { updateState, isQueryKey, cloneDeepUnref } from './utils.esm.js';
3
+ import { updateState, isMutationKey, cloneDeepUnref } from './utils.esm.js';
4
4
  import { useQueryClient } from './useQueryClient.esm.js';
5
5
 
6
6
  function useMutation(arg1, arg2, arg3) {
7
- var _options$queryClient;
7
+ var _options$value$queryC;
8
8
 
9
- const options = parseMutationArgs(arg1, arg2, arg3);
10
- const queryClient = (_options$queryClient = options.queryClient) != null ? _options$queryClient : useQueryClient(options.queryClientKey);
11
- const defaultedOptions = queryClient.defaultMutationOptions(options);
12
- const observer = new MutationObserver(queryClient, defaultedOptions);
9
+ const options = computed(() => {
10
+ return parseMutationArgs(arg1, arg2, arg3);
11
+ });
12
+ const queryClient = (_options$value$queryC = options.value.queryClient) != null ? _options$value$queryC : useQueryClient(options.value.queryClientKey);
13
+ const observer = new MutationObserver(queryClient, queryClient.defaultMutationOptions(options.value));
13
14
  const state = reactive(observer.getCurrentResult());
14
15
  const unsubscribe = observer.subscribe(result => {
15
16
  updateState(state, result);
@@ -20,8 +21,8 @@ function useMutation(arg1, arg2, arg3) {
20
21
  });
21
22
  };
22
23
 
23
- watch([() => arg1, () => arg2, () => arg3], () => {
24
- observer.setOptions(queryClient.defaultMutationOptions(parseMutationArgs(arg1, arg2, arg3)));
24
+ watch(options, () => {
25
+ observer.setOptions(queryClient.defaultMutationOptions(options.value));
25
26
  }, {
26
27
  deep: true
27
28
  });
@@ -38,11 +39,14 @@ function useMutation(arg1, arg2, arg3) {
38
39
  function parseMutationArgs(arg1, arg2, arg3) {
39
40
  let options = arg1;
40
41
 
41
- if (isQueryKey(arg1)) {
42
- if (typeof arg2 === 'function') {
43
- options = { ...arg3,
42
+ if (isMutationKey(arg1)) {
43
+ const plainFn = isRef(arg2) ? arg2.value : arg2;
44
+ const plainOptions = isRef(arg3) ? arg3.value : arg3;
45
+
46
+ if (typeof plainFn === 'function') {
47
+ options = { ...plainOptions,
44
48
  mutationKey: arg1,
45
- mutationFn: arg2
49
+ mutationFn: plainFn
46
50
  };
47
51
  } else {
48
52
  options = { ...arg2,
@@ -51,9 +55,12 @@ function parseMutationArgs(arg1, arg2, arg3) {
51
55
  }
52
56
  }
53
57
 
54
- if (typeof arg1 === 'function') {
55
- options = { ...arg2,
56
- mutationFn: arg1
58
+ const plainFn = isRef(arg1) ? arg1.value : arg1;
59
+ const plainOptions = isRef(arg2) ? arg2.value : arg2;
60
+
61
+ if (typeof plainFn === 'function') {
62
+ options = { ...plainOptions,
63
+ mutationFn: plainFn
57
64
  };
58
65
  }
59
66
 
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.esm.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import { onScopeDispose, reactive, readonly, toRefs, watch } from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport type {\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutateFunction,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport { cloneDeepUnref, isQueryKey, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { WithQueryClientKey } from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = Omit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n mutationFn?: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MutationKey\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg2?:\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg3?: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = parseMutationArgs(arg1, arg2, arg3)\n const queryClient =\n options.queryClient ?? useQueryClient(options.queryClientKey)\n const defaultedOptions = queryClient.defaultMutationOptions(options)\n const observer = new MutationObserver(queryClient, defaultedOptions)\n\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n [() => arg1, () => arg2, () => arg3],\n () => {\n observer.setOptions(\n queryClient.defaultMutationOptions(parseMutationArgs(arg1, arg2, arg3)),\n )\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MutationKey\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg2?:\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg3?: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationOptions<TData, TError, TVariables, TContext> {\n let options = arg1\n\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n options = { ...arg3, mutationKey: arg1, mutationFn: arg2 }\n } else {\n options = { ...arg2, mutationKey: arg1 }\n }\n }\n\n if (typeof arg1 === 'function') {\n options = { ...arg2, mutationFn: arg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","parseMutationArgs","queryClient","useQueryClient","queryClientKey","defaultedOptions","defaultMutationOptions","observer","MutationObserver","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","deep","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset","isQueryKey","mutationKey","mutationFn","cloneDeepUnref"],"mappings":";;;;;AA2FO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAcuD;AAAA,EAAA,IAAA,oBAAA,CAAA;;EAC5D,MAAMC,OAAO,GAAGC,iBAAiB,CAACJ,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAjC,CAAA;EACA,MAAMG,WAAW,GACfF,CAAAA,oBAAAA,GAAAA,OAAO,CAACE,WADO,KACQC,IAAAA,GAAAA,oBAAAA,GAAAA,cAAc,CAACH,OAAO,CAACI,cAAT,CADvC,CAAA;AAEA,EAAA,MAAMC,gBAAgB,GAAGH,WAAW,CAACI,sBAAZ,CAAmCN,OAAnC,CAAzB,CAAA;EACA,MAAMO,QAAQ,GAAG,IAAIC,gBAAJ,CAAqBN,WAArB,EAAkCG,gBAAlC,CAAjB,CAAA;EAEA,MAAMI,KAAK,GAAGC,QAAQ,CAACH,QAAQ,CAACI,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGL,QAAQ,CAACM,SAAT,CAAoBC,MAAD,IAAY;AACjDC,IAAAA,WAAW,CAACN,KAAD,EAAQK,MAAR,CAAX,CAAA;AACD,GAFmB,CAApB,CAAA;;AAIA,EAAA,MAAME,MAAM,GAAG,CACbC,SADa,EAEbC,aAFa,KAGV;IACHX,QAAQ,CAACS,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAA0CC,CAAAA,KAA1C,CAAgD,MAAM;KAAtD,CAAA,CAAA;GAJF,CAAA;;AASAC,EAAAA,KAAK,CACH,CAAC,MAAMvB,IAAP,EAAa,MAAMC,IAAnB,EAAyB,MAAMC,IAA/B,CADG,EAEH,MAAM;AACJQ,IAAAA,QAAQ,CAACc,UAAT,CACEnB,WAAW,CAACI,sBAAZ,CAAmCL,iBAAiB,CAACJ,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAApD,CADF,CAAA,CAAA;AAGD,GANE,EAOH;AAAEuB,IAAAA,IAAI,EAAE,IAAA;AAAR,GAPG,CAAL,CAAA;AAUAC,EAAAA,cAAc,CAAC,MAAM;IACnBX,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,MAAMY,UAAU,GAAGC,MAAM,CAACC,QAAQ,CAACjB,KAAD,CAAT,CAAzB,CAAA;EAIA,OAAO,EACL,GAAGe,UADE;IAELR,MAFK;IAGLW,WAAW,EAAElB,KAAK,CAACO,MAHd;IAILY,KAAK,EAAEnB,KAAK,CAACmB,KAAAA;GAJf,CAAA;AAMD,CAAA;AAEM,SAAS3B,iBAAT,CAMLJ,IANK,EAULC,IAVK,EAaLC,IAbK,EAcoD;EACzD,IAAIC,OAAO,GAAGH,IAAd,CAAA;;AAEA,EAAA,IAAIgC,UAAU,CAAChC,IAAD,CAAd,EAAsB;AACpB,IAAA,IAAI,OAAOC,IAAP,KAAgB,UAApB,EAAgC;MAC9BE,OAAO,GAAG,EAAE,GAAGD,IAAL;AAAW+B,QAAAA,WAAW,EAAEjC,IAAxB;AAA8BkC,QAAAA,UAAU,EAAEjC,IAAAA;OAApD,CAAA;AACD,KAFD,MAEO;MACLE,OAAO,GAAG,EAAE,GAAGF,IAAL;AAAWgC,QAAAA,WAAW,EAAEjC,IAAAA;OAAlC,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;IAC9BG,OAAO,GAAG,EAAE,GAAGF,IAAL;AAAWiC,MAAAA,UAAU,EAAElC,IAAAA;KAAjC,CAAA;AACD,GAAA;;EAED,OAAOmC,cAAc,CAAChC,OAAD,CAArB,CAAA;AAMD;;;;"}
1
+ {"version":3,"file":"useMutation.esm.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n computed,\n isRef,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutateFunction,\n MutationObserverResult,\n MutationObserverOptions,\n} from '@tanstack/query-core'\nimport type { WithQueryClientKey, MaybeRef, MaybeRefDeep } from './types'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, updateState, isMutationKey } from './utils'\nimport { useQueryClient } from './useQueryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = Omit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n let options = arg1\n if (isMutationKey(arg1)) {\n const plainFn = isRef(arg2) ? arg2.value : arg2\n const plainOptions = isRef(arg3) ? arg3.value : arg3\n if (typeof plainFn === 'function') {\n options = { ...plainOptions, mutationKey: arg1, mutationFn: plainFn }\n } else {\n options = { ...arg2, mutationKey: arg1 }\n }\n }\n\n const plainFn = isRef(arg1) ? arg1.value : arg1\n const plainOptions = isRef(arg2) ? arg2.value : arg2\n if (typeof plainFn === 'function') {\n options = { ...plainOptions, mutationFn: plainFn }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","deep","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset","isMutationKey","plainFn","isRef","plainOptions","mutationKey","mutationFn","cloneDeepUnref"],"mappings":";;;;;AA2HO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAgBuD;AAAA,EAAA,IAAA,qBAAA,CAAA;;AAC5D,EAAA,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAM;AAC7B,IAAA,OAAOC,iBAAiB,CAACL,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAxB,CAAA;AACD,GAFuB,CAAxB,CAAA;AAGA,EAAA,MAAMI,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,cAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;AAEA,EAAA,MAAMC,QAAQ,GAAG,IAAIC,gBAAJ,CACfL,WADe,EAEfA,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAFe,CAAjB,CAAA;EAIA,MAAMM,KAAK,GAAGC,QAAQ,CAACJ,QAAQ,CAACK,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGN,QAAQ,CAACO,SAAT,CAAoBC,MAAD,IAAY;AACjDC,IAAAA,WAAW,CAACN,KAAD,EAAQK,MAAR,CAAX,CAAA;AACD,GAFmB,CAApB,CAAA;;AAIA,EAAA,MAAME,MAAM,GAAG,CACbC,SADa,EAEbC,aAFa,KAGV;IACHZ,QAAQ,CAACU,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAA0CC,CAAAA,KAA1C,CAAgD,MAAM;KAAtD,CAAA,CAAA;GAJF,CAAA;;EASAC,KAAK,CACHrB,OADG,EAEH,MAAM;IACJO,QAAQ,CAACe,UAAT,CAAoBnB,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAApB,CAAA,CAAA;AACD,GAJE,EAKH;AAAEmB,IAAAA,IAAI,EAAE,IAAA;AAAR,GALG,CAAL,CAAA;AAQAC,EAAAA,cAAc,CAAC,MAAM;IACnBX,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,MAAMY,UAAU,GAAGC,MAAM,CAACC,QAAQ,CAACjB,KAAD,CAAT,CAAzB,CAAA;EAIA,OAAO,EACL,GAAGe,UADE;IAELR,MAFK;IAGLW,WAAW,EAAElB,KAAK,CAACO,MAHd;IAILY,KAAK,EAAEnB,KAAK,CAACmB,KAAAA;GAJf,CAAA;AAMD,CAAA;AAEM,SAAS3B,iBAAT,CAMLL,IANK,EAULC,IAVK,EAaLC,IAbK,EAkBL;EACA,IAAIC,OAAO,GAAGH,IAAd,CAAA;;AACA,EAAA,IAAIiC,aAAa,CAACjC,IAAD,CAAjB,EAAyB;IACvB,MAAMkC,OAAO,GAAGC,KAAK,CAAClC,IAAD,CAAL,GAAcA,IAAI,CAACM,KAAnB,GAA2BN,IAA3C,CAAA;IACA,MAAMmC,YAAY,GAAGD,KAAK,CAACjC,IAAD,CAAL,GAAcA,IAAI,CAACK,KAAnB,GAA2BL,IAAhD,CAAA;;AACA,IAAA,IAAI,OAAOgC,OAAP,KAAmB,UAAvB,EAAmC;MACjC/B,OAAO,GAAG,EAAE,GAAGiC,YAAL;AAAmBC,QAAAA,WAAW,EAAErC,IAAhC;AAAsCsC,QAAAA,UAAU,EAAEJ,OAAAA;OAA5D,CAAA;AACD,KAFD,MAEO;MACL/B,OAAO,GAAG,EAAE,GAAGF,IAAL;AAAWoC,QAAAA,WAAW,EAAErC,IAAAA;OAAlC,CAAA;AACD,KAAA;AACF,GAAA;;EAED,MAAMkC,OAAO,GAAGC,KAAK,CAACnC,IAAD,CAAL,GAAcA,IAAI,CAACO,KAAnB,GAA2BP,IAA3C,CAAA;EACA,MAAMoC,YAAY,GAAGD,KAAK,CAAClC,IAAD,CAAL,GAAcA,IAAI,CAACM,KAAnB,GAA2BN,IAAhD,CAAA;;AACA,EAAA,IAAI,OAAOiC,OAAP,KAAmB,UAAvB,EAAmC;IACjC/B,OAAO,GAAG,EAAE,GAAGiC,YAAL;AAAmBE,MAAAA,UAAU,EAAEJ,OAAAA;KAAzC,CAAA;AACD,GAAA;;EAED,OAAOK,cAAc,CAACpC,OAAD,CAArB,CAAA;AAMD;;;;"}
@@ -8,12 +8,13 @@ var utils = require('./utils.js');
8
8
  var useQueryClient = require('./useQueryClient.js');
9
9
 
10
10
  function useMutation(arg1, arg2, arg3) {
11
- var _options$queryClient;
11
+ var _options$value$queryC;
12
12
 
13
- const options = parseMutationArgs(arg1, arg2, arg3);
14
- const queryClient = (_options$queryClient = options.queryClient) != null ? _options$queryClient : useQueryClient.useQueryClient(options.queryClientKey);
15
- const defaultedOptions = queryClient.defaultMutationOptions(options);
16
- const observer = new queryCore.MutationObserver(queryClient, defaultedOptions);
13
+ const options = vueDemi.computed(() => {
14
+ return parseMutationArgs(arg1, arg2, arg3);
15
+ });
16
+ const queryClient = (_options$value$queryC = options.value.queryClient) != null ? _options$value$queryC : useQueryClient.useQueryClient(options.value.queryClientKey);
17
+ const observer = new queryCore.MutationObserver(queryClient, queryClient.defaultMutationOptions(options.value));
17
18
  const state = vueDemi.reactive(observer.getCurrentResult());
18
19
  const unsubscribe = observer.subscribe(result => {
19
20
  utils.updateState(state, result);
@@ -24,8 +25,8 @@ function useMutation(arg1, arg2, arg3) {
24
25
  });
25
26
  };
26
27
 
27
- vueDemi.watch([() => arg1, () => arg2, () => arg3], () => {
28
- observer.setOptions(queryClient.defaultMutationOptions(parseMutationArgs(arg1, arg2, arg3)));
28
+ vueDemi.watch(options, () => {
29
+ observer.setOptions(queryClient.defaultMutationOptions(options.value));
29
30
  }, {
30
31
  deep: true
31
32
  });
@@ -42,11 +43,14 @@ function useMutation(arg1, arg2, arg3) {
42
43
  function parseMutationArgs(arg1, arg2, arg3) {
43
44
  let options = arg1;
44
45
 
45
- if (utils.isQueryKey(arg1)) {
46
- if (typeof arg2 === 'function') {
47
- options = { ...arg3,
46
+ if (utils.isMutationKey(arg1)) {
47
+ const plainFn = vueDemi.isRef(arg2) ? arg2.value : arg2;
48
+ const plainOptions = vueDemi.isRef(arg3) ? arg3.value : arg3;
49
+
50
+ if (typeof plainFn === 'function') {
51
+ options = { ...plainOptions,
48
52
  mutationKey: arg1,
49
- mutationFn: arg2
53
+ mutationFn: plainFn
50
54
  };
51
55
  } else {
52
56
  options = { ...arg2,
@@ -55,9 +59,12 @@ function parseMutationArgs(arg1, arg2, arg3) {
55
59
  }
56
60
  }
57
61
 
58
- if (typeof arg1 === 'function') {
59
- options = { ...arg2,
60
- mutationFn: arg1
62
+ const plainFn = vueDemi.isRef(arg1) ? arg1.value : arg1;
63
+ const plainOptions = vueDemi.isRef(arg2) ? arg2.value : arg2;
64
+
65
+ if (typeof plainFn === 'function') {
66
+ options = { ...plainOptions,
67
+ mutationFn: plainFn
61
68
  };
62
69
  }
63
70
 
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import { onScopeDispose, reactive, readonly, toRefs, watch } from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport type {\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutateFunction,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport { cloneDeepUnref, isQueryKey, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { WithQueryClientKey } from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = Omit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n mutationFn?: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MutationKey\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg2?:\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg3?: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = parseMutationArgs(arg1, arg2, arg3)\n const queryClient =\n options.queryClient ?? useQueryClient(options.queryClientKey)\n const defaultedOptions = queryClient.defaultMutationOptions(options)\n const observer = new MutationObserver(queryClient, defaultedOptions)\n\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n [() => arg1, () => arg2, () => arg3],\n () => {\n observer.setOptions(\n queryClient.defaultMutationOptions(parseMutationArgs(arg1, arg2, arg3)),\n )\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MutationKey\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg2?:\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg3?: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationOptions<TData, TError, TVariables, TContext> {\n let options = arg1\n\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n options = { ...arg3, mutationKey: arg1, mutationFn: arg2 }\n } else {\n options = { ...arg2, mutationKey: arg1 }\n }\n }\n\n if (typeof arg1 === 'function') {\n options = { ...arg2, mutationFn: arg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","parseMutationArgs","queryClient","useQueryClient","queryClientKey","defaultedOptions","defaultMutationOptions","observer","MutationObserver","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","deep","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset","isQueryKey","mutationKey","mutationFn","cloneDeepUnref"],"mappings":";;;;;;;;;AA2FO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAcuD;AAAA,EAAA,IAAA,oBAAA,CAAA;;EAC5D,MAAMC,OAAO,GAAGC,iBAAiB,CAACJ,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAjC,CAAA;EACA,MAAMG,WAAW,GACfF,CAAAA,oBAAAA,GAAAA,OAAO,CAACE,WADO,KACQC,IAAAA,GAAAA,oBAAAA,GAAAA,6BAAc,CAACH,OAAO,CAACI,cAAT,CADvC,CAAA;AAEA,EAAA,MAAMC,gBAAgB,GAAGH,WAAW,CAACI,sBAAZ,CAAmCN,OAAnC,CAAzB,CAAA;EACA,MAAMO,QAAQ,GAAG,IAAIC,0BAAJ,CAAqBN,WAArB,EAAkCG,gBAAlC,CAAjB,CAAA;EAEA,MAAMI,KAAK,GAAGC,gBAAQ,CAACH,QAAQ,CAACI,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGL,QAAQ,CAACM,SAAT,CAAoBC,MAAD,IAAY;AACjDC,IAAAA,iBAAW,CAACN,KAAD,EAAQK,MAAR,CAAX,CAAA;AACD,GAFmB,CAApB,CAAA;;AAIA,EAAA,MAAME,MAAM,GAAG,CACbC,SADa,EAEbC,aAFa,KAGV;IACHX,QAAQ,CAACS,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAA0CC,CAAAA,KAA1C,CAAgD,MAAM;KAAtD,CAAA,CAAA;GAJF,CAAA;;AASAC,EAAAA,aAAK,CACH,CAAC,MAAMvB,IAAP,EAAa,MAAMC,IAAnB,EAAyB,MAAMC,IAA/B,CADG,EAEH,MAAM;AACJQ,IAAAA,QAAQ,CAACc,UAAT,CACEnB,WAAW,CAACI,sBAAZ,CAAmCL,iBAAiB,CAACJ,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAApD,CADF,CAAA,CAAA;AAGD,GANE,EAOH;AAAEuB,IAAAA,IAAI,EAAE,IAAA;AAAR,GAPG,CAAL,CAAA;AAUAC,EAAAA,sBAAc,CAAC,MAAM;IACnBX,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,MAAMY,UAAU,GAAGC,cAAM,CAACC,gBAAQ,CAACjB,KAAD,CAAT,CAAzB,CAAA;EAIA,OAAO,EACL,GAAGe,UADE;IAELR,MAFK;IAGLW,WAAW,EAAElB,KAAK,CAACO,MAHd;IAILY,KAAK,EAAEnB,KAAK,CAACmB,KAAAA;GAJf,CAAA;AAMD,CAAA;AAEM,SAAS3B,iBAAT,CAMLJ,IANK,EAULC,IAVK,EAaLC,IAbK,EAcoD;EACzD,IAAIC,OAAO,GAAGH,IAAd,CAAA;;AAEA,EAAA,IAAIgC,gBAAU,CAAChC,IAAD,CAAd,EAAsB;AACpB,IAAA,IAAI,OAAOC,IAAP,KAAgB,UAApB,EAAgC;MAC9BE,OAAO,GAAG,EAAE,GAAGD,IAAL;AAAW+B,QAAAA,WAAW,EAAEjC,IAAxB;AAA8BkC,QAAAA,UAAU,EAAEjC,IAAAA;OAApD,CAAA;AACD,KAFD,MAEO;MACLE,OAAO,GAAG,EAAE,GAAGF,IAAL;AAAWgC,QAAAA,WAAW,EAAEjC,IAAAA;OAAlC,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;IAC9BG,OAAO,GAAG,EAAE,GAAGF,IAAL;AAAWiC,MAAAA,UAAU,EAAElC,IAAAA;KAAjC,CAAA;AACD,GAAA;;EAED,OAAOmC,oBAAc,CAAChC,OAAD,CAArB,CAAA;AAMD;;;;;"}
1
+ {"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n computed,\n isRef,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutateFunction,\n MutationObserverResult,\n MutationObserverOptions,\n} from '@tanstack/query-core'\nimport type { WithQueryClientKey, MaybeRef, MaybeRefDeep } from './types'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, updateState, isMutationKey } from './utils'\nimport { useQueryClient } from './useQueryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = Omit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n let options = arg1\n if (isMutationKey(arg1)) {\n const plainFn = isRef(arg2) ? arg2.value : arg2\n const plainOptions = isRef(arg3) ? arg3.value : arg3\n if (typeof plainFn === 'function') {\n options = { ...plainOptions, mutationKey: arg1, mutationFn: plainFn }\n } else {\n options = { ...arg2, mutationKey: arg1 }\n }\n }\n\n const plainFn = isRef(arg1) ? arg1.value : arg1\n const plainOptions = isRef(arg2) ? arg2.value : arg2\n if (typeof plainFn === 'function') {\n options = { ...plainOptions, mutationFn: plainFn }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","deep","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset","isMutationKey","plainFn","isRef","plainOptions","mutationKey","mutationFn","cloneDeepUnref"],"mappings":";;;;;;;;;AA2HO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAgBuD;AAAA,EAAA,IAAA,qBAAA,CAAA;;AAC5D,EAAA,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAM;AAC7B,IAAA,OAAOC,iBAAiB,CAACL,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAxB,CAAA;AACD,GAFuB,CAAxB,CAAA;AAGA,EAAA,MAAMI,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,6BAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;AAEA,EAAA,MAAMC,QAAQ,GAAG,IAAIC,0BAAJ,CACfL,WADe,EAEfA,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAFe,CAAjB,CAAA;EAIA,MAAMM,KAAK,GAAGC,gBAAQ,CAACJ,QAAQ,CAACK,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGN,QAAQ,CAACO,SAAT,CAAoBC,MAAD,IAAY;AACjDC,IAAAA,iBAAW,CAACN,KAAD,EAAQK,MAAR,CAAX,CAAA;AACD,GAFmB,CAApB,CAAA;;AAIA,EAAA,MAAME,MAAM,GAAG,CACbC,SADa,EAEbC,aAFa,KAGV;IACHZ,QAAQ,CAACU,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAA0CC,CAAAA,KAA1C,CAAgD,MAAM;KAAtD,CAAA,CAAA;GAJF,CAAA;;EASAC,aAAK,CACHrB,OADG,EAEH,MAAM;IACJO,QAAQ,CAACe,UAAT,CAAoBnB,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAApB,CAAA,CAAA;AACD,GAJE,EAKH;AAAEmB,IAAAA,IAAI,EAAE,IAAA;AAAR,GALG,CAAL,CAAA;AAQAC,EAAAA,sBAAc,CAAC,MAAM;IACnBX,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,MAAMY,UAAU,GAAGC,cAAM,CAACC,gBAAQ,CAACjB,KAAD,CAAT,CAAzB,CAAA;EAIA,OAAO,EACL,GAAGe,UADE;IAELR,MAFK;IAGLW,WAAW,EAAElB,KAAK,CAACO,MAHd;IAILY,KAAK,EAAEnB,KAAK,CAACmB,KAAAA;GAJf,CAAA;AAMD,CAAA;AAEM,SAAS3B,iBAAT,CAMLL,IANK,EAULC,IAVK,EAaLC,IAbK,EAkBL;EACA,IAAIC,OAAO,GAAGH,IAAd,CAAA;;AACA,EAAA,IAAIiC,mBAAa,CAACjC,IAAD,CAAjB,EAAyB;IACvB,MAAMkC,OAAO,GAAGC,aAAK,CAAClC,IAAD,CAAL,GAAcA,IAAI,CAACM,KAAnB,GAA2BN,IAA3C,CAAA;IACA,MAAMmC,YAAY,GAAGD,aAAK,CAACjC,IAAD,CAAL,GAAcA,IAAI,CAACK,KAAnB,GAA2BL,IAAhD,CAAA;;AACA,IAAA,IAAI,OAAOgC,OAAP,KAAmB,UAAvB,EAAmC;MACjC/B,OAAO,GAAG,EAAE,GAAGiC,YAAL;AAAmBC,QAAAA,WAAW,EAAErC,IAAhC;AAAsCsC,QAAAA,UAAU,EAAEJ,OAAAA;OAA5D,CAAA;AACD,KAFD,MAEO;MACL/B,OAAO,GAAG,EAAE,GAAGF,IAAL;AAAWoC,QAAAA,WAAW,EAAErC,IAAAA;OAAlC,CAAA;AACD,KAAA;AACF,GAAA;;EAED,MAAMkC,OAAO,GAAGC,aAAK,CAACnC,IAAD,CAAL,GAAcA,IAAI,CAACO,KAAnB,GAA2BP,IAA3C,CAAA;EACA,MAAMoC,YAAY,GAAGD,aAAK,CAAClC,IAAD,CAAL,GAAcA,IAAI,CAACM,KAAnB,GAA2BN,IAAhD,CAAA;;AACA,EAAA,IAAI,OAAOiC,OAAP,KAAmB,UAAvB,EAAmC;IACjC/B,OAAO,GAAG,EAAE,GAAGiC,YAAL;AAAmBE,MAAAA,UAAU,EAAEJ,OAAAA;KAAzC,CAAA;AACD,GAAA;;EAED,OAAOK,oBAAc,CAACpC,OAAD,CAArB,CAAA;AAMD;;;;;"}
@@ -1,15 +1,16 @@
1
- import { reactive, watch, onScopeDispose, toRefs, readonly } from 'vue-demi';
1
+ import { computed, reactive, watch, onScopeDispose, toRefs, readonly, isRef } from 'vue-demi';
2
2
  import { MutationObserver } from '@tanstack/query-core';
3
- import { updateState, isQueryKey, cloneDeepUnref } from './utils.mjs';
3
+ import { updateState, isMutationKey, cloneDeepUnref } from './utils.mjs';
4
4
  import { useQueryClient } from './useQueryClient.mjs';
5
5
 
6
6
  function useMutation(arg1, arg2, arg3) {
7
- var _options$queryClient;
7
+ var _options$value$queryC;
8
8
 
9
- const options = parseMutationArgs(arg1, arg2, arg3);
10
- const queryClient = (_options$queryClient = options.queryClient) != null ? _options$queryClient : useQueryClient(options.queryClientKey);
11
- const defaultedOptions = queryClient.defaultMutationOptions(options);
12
- const observer = new MutationObserver(queryClient, defaultedOptions);
9
+ const options = computed(() => {
10
+ return parseMutationArgs(arg1, arg2, arg3);
11
+ });
12
+ const queryClient = (_options$value$queryC = options.value.queryClient) != null ? _options$value$queryC : useQueryClient(options.value.queryClientKey);
13
+ const observer = new MutationObserver(queryClient, queryClient.defaultMutationOptions(options.value));
13
14
  const state = reactive(observer.getCurrentResult());
14
15
  const unsubscribe = observer.subscribe(result => {
15
16
  updateState(state, result);
@@ -20,8 +21,8 @@ function useMutation(arg1, arg2, arg3) {
20
21
  });
21
22
  };
22
23
 
23
- watch([() => arg1, () => arg2, () => arg3], () => {
24
- observer.setOptions(queryClient.defaultMutationOptions(parseMutationArgs(arg1, arg2, arg3)));
24
+ watch(options, () => {
25
+ observer.setOptions(queryClient.defaultMutationOptions(options.value));
25
26
  }, {
26
27
  deep: true
27
28
  });
@@ -38,11 +39,14 @@ function useMutation(arg1, arg2, arg3) {
38
39
  function parseMutationArgs(arg1, arg2, arg3) {
39
40
  let options = arg1;
40
41
 
41
- if (isQueryKey(arg1)) {
42
- if (typeof arg2 === 'function') {
43
- options = { ...arg3,
42
+ if (isMutationKey(arg1)) {
43
+ const plainFn = isRef(arg2) ? arg2.value : arg2;
44
+ const plainOptions = isRef(arg3) ? arg3.value : arg3;
45
+
46
+ if (typeof plainFn === 'function') {
47
+ options = { ...plainOptions,
44
48
  mutationKey: arg1,
45
- mutationFn: arg2
49
+ mutationFn: plainFn
46
50
  };
47
51
  } else {
48
52
  options = { ...arg2,
@@ -51,9 +55,12 @@ function parseMutationArgs(arg1, arg2, arg3) {
51
55
  }
52
56
  }
53
57
 
54
- if (typeof arg1 === 'function') {
55
- options = { ...arg2,
56
- mutationFn: arg1
58
+ const plainFn = isRef(arg1) ? arg1.value : arg1;
59
+ const plainOptions = isRef(arg2) ? arg2.value : arg2;
60
+
61
+ if (typeof plainFn === 'function') {
62
+ options = { ...plainOptions,
63
+ mutationFn: plainFn
57
64
  };
58
65
  }
59
66
 
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.mjs","sources":["../../src/useMutation.ts"],"sourcesContent":["import { onScopeDispose, reactive, readonly, toRefs, watch } from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport type {\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutateFunction,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport { cloneDeepUnref, isQueryKey, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { WithQueryClientKey } from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = Omit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n mutationFn?: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MutationKey\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg2?:\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg3?: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = parseMutationArgs(arg1, arg2, arg3)\n const queryClient =\n options.queryClient ?? useQueryClient(options.queryClientKey)\n const defaultedOptions = queryClient.defaultMutationOptions(options)\n const observer = new MutationObserver(queryClient, defaultedOptions)\n\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n [() => arg1, () => arg2, () => arg3],\n () => {\n observer.setOptions(\n queryClient.defaultMutationOptions(parseMutationArgs(arg1, arg2, arg3)),\n )\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MutationKey\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg2?:\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg3?: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationOptions<TData, TError, TVariables, TContext> {\n let options = arg1\n\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n options = { ...arg3, mutationKey: arg1, mutationFn: arg2 }\n } else {\n options = { ...arg2, mutationKey: arg1 }\n }\n }\n\n if (typeof arg1 === 'function') {\n options = { ...arg2, mutationFn: arg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","parseMutationArgs","queryClient","useQueryClient","queryClientKey","defaultedOptions","defaultMutationOptions","observer","MutationObserver","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","deep","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset","isQueryKey","mutationKey","mutationFn","cloneDeepUnref"],"mappings":";;;;;AA2FO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAcuD;AAAA,EAAA,IAAA,oBAAA,CAAA;;EAC5D,MAAMC,OAAO,GAAGC,iBAAiB,CAACJ,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAjC,CAAA;EACA,MAAMG,WAAW,GACfF,CAAAA,oBAAAA,GAAAA,OAAO,CAACE,WADO,KACQC,IAAAA,GAAAA,oBAAAA,GAAAA,cAAc,CAACH,OAAO,CAACI,cAAT,CADvC,CAAA;AAEA,EAAA,MAAMC,gBAAgB,GAAGH,WAAW,CAACI,sBAAZ,CAAmCN,OAAnC,CAAzB,CAAA;EACA,MAAMO,QAAQ,GAAG,IAAIC,gBAAJ,CAAqBN,WAArB,EAAkCG,gBAAlC,CAAjB,CAAA;EAEA,MAAMI,KAAK,GAAGC,QAAQ,CAACH,QAAQ,CAACI,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGL,QAAQ,CAACM,SAAT,CAAoBC,MAAD,IAAY;AACjDC,IAAAA,WAAW,CAACN,KAAD,EAAQK,MAAR,CAAX,CAAA;AACD,GAFmB,CAApB,CAAA;;AAIA,EAAA,MAAME,MAAM,GAAG,CACbC,SADa,EAEbC,aAFa,KAGV;IACHX,QAAQ,CAACS,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAA0CC,CAAAA,KAA1C,CAAgD,MAAM;KAAtD,CAAA,CAAA;GAJF,CAAA;;AASAC,EAAAA,KAAK,CACH,CAAC,MAAMvB,IAAP,EAAa,MAAMC,IAAnB,EAAyB,MAAMC,IAA/B,CADG,EAEH,MAAM;AACJQ,IAAAA,QAAQ,CAACc,UAAT,CACEnB,WAAW,CAACI,sBAAZ,CAAmCL,iBAAiB,CAACJ,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAApD,CADF,CAAA,CAAA;AAGD,GANE,EAOH;AAAEuB,IAAAA,IAAI,EAAE,IAAA;AAAR,GAPG,CAAL,CAAA;AAUAC,EAAAA,cAAc,CAAC,MAAM;IACnBX,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,MAAMY,UAAU,GAAGC,MAAM,CAACC,QAAQ,CAACjB,KAAD,CAAT,CAAzB,CAAA;EAIA,OAAO,EACL,GAAGe,UADE;IAELR,MAFK;IAGLW,WAAW,EAAElB,KAAK,CAACO,MAHd;IAILY,KAAK,EAAEnB,KAAK,CAACmB,KAAAA;GAJf,CAAA;AAMD,CAAA;AAEM,SAAS3B,iBAAT,CAMLJ,IANK,EAULC,IAVK,EAaLC,IAbK,EAcoD;EACzD,IAAIC,OAAO,GAAGH,IAAd,CAAA;;AAEA,EAAA,IAAIgC,UAAU,CAAChC,IAAD,CAAd,EAAsB;AACpB,IAAA,IAAI,OAAOC,IAAP,KAAgB,UAApB,EAAgC;MAC9BE,OAAO,GAAG,EAAE,GAAGD,IAAL;AAAW+B,QAAAA,WAAW,EAAEjC,IAAxB;AAA8BkC,QAAAA,UAAU,EAAEjC,IAAAA;OAApD,CAAA;AACD,KAFD,MAEO;MACLE,OAAO,GAAG,EAAE,GAAGF,IAAL;AAAWgC,QAAAA,WAAW,EAAEjC,IAAAA;OAAlC,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;IAC9BG,OAAO,GAAG,EAAE,GAAGF,IAAL;AAAWiC,MAAAA,UAAU,EAAElC,IAAAA;KAAjC,CAAA;AACD,GAAA;;EAED,OAAOmC,cAAc,CAAChC,OAAD,CAArB,CAAA;AAMD;;;;"}
1
+ {"version":3,"file":"useMutation.mjs","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n computed,\n isRef,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutateFunction,\n MutationObserverResult,\n MutationObserverOptions,\n} from '@tanstack/query-core'\nimport type { WithQueryClientKey, MaybeRef, MaybeRefDeep } from './types'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, updateState, isMutationKey } from './utils'\nimport { useQueryClient } from './useQueryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = Omit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n let options = arg1\n if (isMutationKey(arg1)) {\n const plainFn = isRef(arg2) ? arg2.value : arg2\n const plainOptions = isRef(arg3) ? arg3.value : arg3\n if (typeof plainFn === 'function') {\n options = { ...plainOptions, mutationKey: arg1, mutationFn: plainFn }\n } else {\n options = { ...arg2, mutationKey: arg1 }\n }\n }\n\n const plainFn = isRef(arg1) ? arg1.value : arg1\n const plainOptions = isRef(arg2) ? arg2.value : arg2\n if (typeof plainFn === 'function') {\n options = { ...plainOptions, mutationFn: plainFn }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","deep","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset","isMutationKey","plainFn","isRef","plainOptions","mutationKey","mutationFn","cloneDeepUnref"],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import type { QueryKey } from '@tanstack/query-core';
1
+ import type { QueryKey, MutationKey } from '@tanstack/query-core';
2
2
  import type { UnwrapRef } from 'vue-demi';
3
+ import type { MaybeRef } from './types';
3
4
  export declare const VUE_QUERY_CLIENT = "VUE_QUERY_CLIENT";
4
5
  export declare function getClientKey(key?: string): string;
5
6
  export declare function isQueryKey(value: unknown): value is QueryKey;
7
+ export declare function isMutationKey(value: unknown): value is MaybeRef<MutationKey>;
6
8
  export declare function updateState(state: Record<string, unknown>, update: Record<string, any>): void;
7
9
  export declare function cloneDeep<T>(value: T, customizer?: (val: unknown) => unknown | void): T;
8
10
  export declare function cloneDeepUnref<T>(obj: T): UnwrapRef<T>;
@@ -9,6 +9,9 @@ function getClientKey(key) {
9
9
  function isQueryKey(value) {
10
10
  return Array.isArray(value);
11
11
  }
12
+ function isMutationKey(value) {
13
+ return Array.isArray(isRef(value) ? value.value : value);
14
+ }
12
15
  function updateState(state, update) {
13
16
  Object.keys(state).forEach(key => {
14
17
  state[key] = update[key];
@@ -51,5 +54,5 @@ function isPlainObject(value) {
51
54
  return prototype === null || prototype === Object.prototype;
52
55
  }
53
56
 
54
- export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, isQueryKey, updateState };
57
+ export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, isMutationKey, isQueryKey, updateState };
55
58
  //# sourceMappingURL=utils.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.esm.js","sources":["../../src/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { QueryKey } from '@tanstack/query-core'\nimport { isRef, unref } from 'vue-demi'\nimport type { UnwrapRef } from 'vue-demi'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function updateState(\n state: Record<string, unknown>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\nexport function cloneDeep<T>(\n value: T,\n customizer?: (val: unknown) => unknown | void,\n): T {\n if (customizer) {\n const result = customizer(value)\n if (result !== undefined || isRef(value)) {\n return result as typeof value\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as typeof value\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n cloneDeep(val, customizer),\n ])\n return Object.fromEntries(entries)\n }\n\n return value\n}\n\nexport function cloneDeepUnref<T>(obj: T): UnwrapRef<T> {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n }) as UnwrapRef<typeof obj>\n}\n\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n"],"names":["VUE_QUERY_CLIENT","getClientKey","key","suffix","isQueryKey","value","Array","isArray","updateState","state","update","Object","keys","forEach","cloneDeep","customizer","result","undefined","isRef","map","val","isPlainObject","entries","fromEntries","cloneDeepUnref","obj","unref","prototype","toString","call","getPrototypeOf"],"mappings":";;AAAA;AAKO,MAAMA,gBAAgB,GAAG,mBAAzB;AAEA,SAASC,YAAT,CAAsBC,GAAtB,EAAoC;AACzC,EAAA,MAAMC,MAAM,GAAGD,GAAG,GAAOA,GAAAA,GAAAA,GAAP,GAAe,EAAjC,CAAA;EACA,OAAUF,EAAAA,GAAAA,gBAAV,GAA6BG,MAA7B,CAAA;AACD,CAAA;AAEM,SAASC,UAAT,CAAoBC,KAApB,EAAuD;AAC5D,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASG,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4BX,GAAD,IAAS;AAClCO,IAAAA,KAAK,CAACP,GAAD,CAAL,GAAaQ,MAAM,CAACR,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASY,SAAT,CACLT,KADK,EAELU,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACV,KAAD,CAAzB,CAAA;;IACA,IAAIW,MAAM,KAAKC,SAAX,IAAwBC,KAAK,CAACb,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOW,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIV,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACc,GAAN,CAAWC,GAAD,IAASN,SAAS,CAACM,GAAD,EAAML,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOV,KAAP,KAAiB,QAAjB,IAA6BgB,aAAa,CAAChB,KAAD,CAA9C,EAAuD;IACrD,MAAMiB,OAAO,GAAGX,MAAM,CAACW,OAAP,CAAejB,KAAf,CAAsBc,CAAAA,GAAtB,CAA0B,CAAC,CAACjB,GAAD,EAAMkB,GAAN,CAAD,KAAgB,CACxDlB,GADwD,EAExDY,SAAS,CAACM,GAAD,EAAML,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACY,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOjB,KAAP,CAAA;AACD,CAAA;AAEM,SAASmB,cAAT,CAA2BC,GAA3B,EAAiD;AACtD,EAAA,OAAOX,SAAS,CAACW,GAAD,EAAOL,GAAD,IAAS;AAC7B,IAAA,IAAIF,KAAK,CAACE,GAAD,CAAT,EAAgB;AACd,MAAA,OAAOI,cAAc,CAACE,KAAK,CAACN,GAAD,CAAN,CAArB,CAAA;AACD,KAAA;AACF,GAJe,CAAhB,CAAA;AAKD,CAAA;;AAED,SAASC,aAAT,CAAuBhB,KAAvB,EAAwD;EACtD,IAAIM,MAAM,CAACgB,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BxB,KAA/B,CAA0C,KAAA,iBAA9C,EAAiE;AAC/D,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,MAAMsB,SAAS,GAAGhB,MAAM,CAACmB,cAAP,CAAsBzB,KAAtB,CAAlB,CAAA;EACA,OAAOsB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKhB,MAAM,CAACgB,SAAlD,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"utils.esm.js","sources":["../../src/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { QueryKey, MutationKey } from '@tanstack/query-core'\nimport { isRef, unref } from 'vue-demi'\nimport type { UnwrapRef } from 'vue-demi'\nimport type { MaybeRef } from './types'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function isMutationKey(value: unknown): value is MaybeRef<MutationKey> {\n return Array.isArray(isRef(value) ? value.value : value)\n}\n\nexport function updateState(\n state: Record<string, unknown>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\nexport function cloneDeep<T>(\n value: T,\n customizer?: (val: unknown) => unknown | void,\n): T {\n if (customizer) {\n const result = customizer(value)\n if (result !== undefined || isRef(value)) {\n return result as typeof value\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as typeof value\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n cloneDeep(val, customizer),\n ])\n return Object.fromEntries(entries)\n }\n\n return value\n}\n\nexport function cloneDeepUnref<T>(obj: T): UnwrapRef<T> {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n }) as UnwrapRef<typeof obj>\n}\n\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n"],"names":["VUE_QUERY_CLIENT","getClientKey","key","suffix","isQueryKey","value","Array","isArray","isMutationKey","isRef","updateState","state","update","Object","keys","forEach","cloneDeep","customizer","result","undefined","map","val","isPlainObject","entries","fromEntries","cloneDeepUnref","obj","unref","prototype","toString","call","getPrototypeOf"],"mappings":";;AAAA;AAMO,MAAMA,gBAAgB,GAAG,mBAAzB;AAEA,SAASC,YAAT,CAAsBC,GAAtB,EAAoC;AACzC,EAAA,MAAMC,MAAM,GAAGD,GAAG,GAAOA,GAAAA,GAAAA,GAAP,GAAe,EAAjC,CAAA;EACA,OAAUF,EAAAA,GAAAA,gBAAV,GAA6BG,MAA7B,CAAA;AACD,CAAA;AAEM,SAASC,UAAT,CAAoBC,KAApB,EAAuD;AAC5D,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASG,aAAT,CAAuBH,KAAvB,EAAuE;AAC5E,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcE,KAAK,CAACJ,KAAD,CAAL,GAAeA,KAAK,CAACA,KAArB,GAA6BA,KAA3C,CAAP,CAAA;AACD,CAAA;AAEM,SAASK,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4Bb,GAAD,IAAS;AAClCS,IAAAA,KAAK,CAACT,GAAD,CAAL,GAAaU,MAAM,CAACV,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASc,SAAT,CACLX,KADK,EAELY,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACZ,KAAD,CAAzB,CAAA;;IACA,IAAIa,MAAM,KAAKC,SAAX,IAAwBV,KAAK,CAACJ,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOa,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIZ,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACe,GAAN,CAAWC,GAAD,IAASL,SAAS,CAACK,GAAD,EAAMJ,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOZ,KAAP,KAAiB,QAAjB,IAA6BiB,aAAa,CAACjB,KAAD,CAA9C,EAAuD;IACrD,MAAMkB,OAAO,GAAGV,MAAM,CAACU,OAAP,CAAelB,KAAf,CAAsBe,CAAAA,GAAtB,CAA0B,CAAC,CAAClB,GAAD,EAAMmB,GAAN,CAAD,KAAgB,CACxDnB,GADwD,EAExDc,SAAS,CAACK,GAAD,EAAMJ,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACW,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOlB,KAAP,CAAA;AACD,CAAA;AAEM,SAASoB,cAAT,CAA2BC,GAA3B,EAAiD;AACtD,EAAA,OAAOV,SAAS,CAACU,GAAD,EAAOL,GAAD,IAAS;AAC7B,IAAA,IAAIZ,KAAK,CAACY,GAAD,CAAT,EAAgB;AACd,MAAA,OAAOI,cAAc,CAACE,KAAK,CAACN,GAAD,CAAN,CAArB,CAAA;AACD,KAAA;AACF,GAJe,CAAhB,CAAA;AAKD,CAAA;;AAED,SAASC,aAAT,CAAuBjB,KAAvB,EAAwD;EACtD,IAAIQ,MAAM,CAACe,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BzB,KAA/B,CAA0C,KAAA,iBAA9C,EAAiE;AAC/D,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,MAAMuB,SAAS,GAAGf,MAAM,CAACkB,cAAP,CAAsB1B,KAAtB,CAAlB,CAAA;EACA,OAAOuB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKf,MAAM,CAACe,SAAlD,CAAA;AACD;;;;"}
@@ -13,6 +13,9 @@ function getClientKey(key) {
13
13
  function isQueryKey(value) {
14
14
  return Array.isArray(value);
15
15
  }
16
+ function isMutationKey(value) {
17
+ return Array.isArray(vueDemi.isRef(value) ? value.value : value);
18
+ }
16
19
  function updateState(state, update) {
17
20
  Object.keys(state).forEach(key => {
18
21
  state[key] = update[key];
@@ -59,6 +62,7 @@ exports.VUE_QUERY_CLIENT = VUE_QUERY_CLIENT;
59
62
  exports.cloneDeep = cloneDeep;
60
63
  exports.cloneDeepUnref = cloneDeepUnref;
61
64
  exports.getClientKey = getClientKey;
65
+ exports.isMutationKey = isMutationKey;
62
66
  exports.isQueryKey = isQueryKey;
63
67
  exports.updateState = updateState;
64
68
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { QueryKey } from '@tanstack/query-core'\nimport { isRef, unref } from 'vue-demi'\nimport type { UnwrapRef } from 'vue-demi'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function updateState(\n state: Record<string, unknown>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\nexport function cloneDeep<T>(\n value: T,\n customizer?: (val: unknown) => unknown | void,\n): T {\n if (customizer) {\n const result = customizer(value)\n if (result !== undefined || isRef(value)) {\n return result as typeof value\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as typeof value\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n cloneDeep(val, customizer),\n ])\n return Object.fromEntries(entries)\n }\n\n return value\n}\n\nexport function cloneDeepUnref<T>(obj: T): UnwrapRef<T> {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n }) as UnwrapRef<typeof obj>\n}\n\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n"],"names":["VUE_QUERY_CLIENT","getClientKey","key","suffix","isQueryKey","value","Array","isArray","updateState","state","update","Object","keys","forEach","cloneDeep","customizer","result","undefined","isRef","map","val","isPlainObject","entries","fromEntries","cloneDeepUnref","obj","unref","prototype","toString","call","getPrototypeOf"],"mappings":";;;;;;AAAA;AAKO,MAAMA,gBAAgB,GAAG,mBAAzB;AAEA,SAASC,YAAT,CAAsBC,GAAtB,EAAoC;AACzC,EAAA,MAAMC,MAAM,GAAGD,GAAG,GAAOA,GAAAA,GAAAA,GAAP,GAAe,EAAjC,CAAA;EACA,OAAUF,EAAAA,GAAAA,gBAAV,GAA6BG,MAA7B,CAAA;AACD,CAAA;AAEM,SAASC,UAAT,CAAoBC,KAApB,EAAuD;AAC5D,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASG,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4BX,GAAD,IAAS;AAClCO,IAAAA,KAAK,CAACP,GAAD,CAAL,GAAaQ,MAAM,CAACR,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASY,SAAT,CACLT,KADK,EAELU,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACV,KAAD,CAAzB,CAAA;;IACA,IAAIW,MAAM,KAAKC,SAAX,IAAwBC,aAAK,CAACb,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOW,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIV,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACc,GAAN,CAAWC,GAAD,IAASN,SAAS,CAACM,GAAD,EAAML,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOV,KAAP,KAAiB,QAAjB,IAA6BgB,aAAa,CAAChB,KAAD,CAA9C,EAAuD;IACrD,MAAMiB,OAAO,GAAGX,MAAM,CAACW,OAAP,CAAejB,KAAf,CAAsBc,CAAAA,GAAtB,CAA0B,CAAC,CAACjB,GAAD,EAAMkB,GAAN,CAAD,KAAgB,CACxDlB,GADwD,EAExDY,SAAS,CAACM,GAAD,EAAML,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACY,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOjB,KAAP,CAAA;AACD,CAAA;AAEM,SAASmB,cAAT,CAA2BC,GAA3B,EAAiD;AACtD,EAAA,OAAOX,SAAS,CAACW,GAAD,EAAOL,GAAD,IAAS;AAC7B,IAAA,IAAIF,aAAK,CAACE,GAAD,CAAT,EAAgB;AACd,MAAA,OAAOI,cAAc,CAACE,aAAK,CAACN,GAAD,CAAN,CAArB,CAAA;AACD,KAAA;AACF,GAJe,CAAhB,CAAA;AAKD,CAAA;;AAED,SAASC,aAAT,CAAuBhB,KAAvB,EAAwD;EACtD,IAAIM,MAAM,CAACgB,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BxB,KAA/B,CAA0C,KAAA,iBAA9C,EAAiE;AAC/D,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,MAAMsB,SAAS,GAAGhB,MAAM,CAACmB,cAAP,CAAsBzB,KAAtB,CAAlB,CAAA;EACA,OAAOsB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKhB,MAAM,CAACgB,SAAlD,CAAA;AACD;;;;;;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { QueryKey, MutationKey } from '@tanstack/query-core'\nimport { isRef, unref } from 'vue-demi'\nimport type { UnwrapRef } from 'vue-demi'\nimport type { MaybeRef } from './types'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function isMutationKey(value: unknown): value is MaybeRef<MutationKey> {\n return Array.isArray(isRef(value) ? value.value : value)\n}\n\nexport function updateState(\n state: Record<string, unknown>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\nexport function cloneDeep<T>(\n value: T,\n customizer?: (val: unknown) => unknown | void,\n): T {\n if (customizer) {\n const result = customizer(value)\n if (result !== undefined || isRef(value)) {\n return result as typeof value\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as typeof value\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n cloneDeep(val, customizer),\n ])\n return Object.fromEntries(entries)\n }\n\n return value\n}\n\nexport function cloneDeepUnref<T>(obj: T): UnwrapRef<T> {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n }) as UnwrapRef<typeof obj>\n}\n\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n"],"names":["VUE_QUERY_CLIENT","getClientKey","key","suffix","isQueryKey","value","Array","isArray","isMutationKey","isRef","updateState","state","update","Object","keys","forEach","cloneDeep","customizer","result","undefined","map","val","isPlainObject","entries","fromEntries","cloneDeepUnref","obj","unref","prototype","toString","call","getPrototypeOf"],"mappings":";;;;;;AAAA;AAMO,MAAMA,gBAAgB,GAAG,mBAAzB;AAEA,SAASC,YAAT,CAAsBC,GAAtB,EAAoC;AACzC,EAAA,MAAMC,MAAM,GAAGD,GAAG,GAAOA,GAAAA,GAAAA,GAAP,GAAe,EAAjC,CAAA;EACA,OAAUF,EAAAA,GAAAA,gBAAV,GAA6BG,MAA7B,CAAA;AACD,CAAA;AAEM,SAASC,UAAT,CAAoBC,KAApB,EAAuD;AAC5D,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASG,aAAT,CAAuBH,KAAvB,EAAuE;AAC5E,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcE,aAAK,CAACJ,KAAD,CAAL,GAAeA,KAAK,CAACA,KAArB,GAA6BA,KAA3C,CAAP,CAAA;AACD,CAAA;AAEM,SAASK,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4Bb,GAAD,IAAS;AAClCS,IAAAA,KAAK,CAACT,GAAD,CAAL,GAAaU,MAAM,CAACV,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASc,SAAT,CACLX,KADK,EAELY,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACZ,KAAD,CAAzB,CAAA;;IACA,IAAIa,MAAM,KAAKC,SAAX,IAAwBV,aAAK,CAACJ,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOa,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIZ,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACe,GAAN,CAAWC,GAAD,IAASL,SAAS,CAACK,GAAD,EAAMJ,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOZ,KAAP,KAAiB,QAAjB,IAA6BiB,aAAa,CAACjB,KAAD,CAA9C,EAAuD;IACrD,MAAMkB,OAAO,GAAGV,MAAM,CAACU,OAAP,CAAelB,KAAf,CAAsBe,CAAAA,GAAtB,CAA0B,CAAC,CAAClB,GAAD,EAAMmB,GAAN,CAAD,KAAgB,CACxDnB,GADwD,EAExDc,SAAS,CAACK,GAAD,EAAMJ,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACW,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOlB,KAAP,CAAA;AACD,CAAA;AAEM,SAASoB,cAAT,CAA2BC,GAA3B,EAAiD;AACtD,EAAA,OAAOV,SAAS,CAACU,GAAD,EAAOL,GAAD,IAAS;AAC7B,IAAA,IAAIZ,aAAK,CAACY,GAAD,CAAT,EAAgB;AACd,MAAA,OAAOI,cAAc,CAACE,aAAK,CAACN,GAAD,CAAN,CAArB,CAAA;AACD,KAAA;AACF,GAJe,CAAhB,CAAA;AAKD,CAAA;;AAED,SAASC,aAAT,CAAuBjB,KAAvB,EAAwD;EACtD,IAAIQ,MAAM,CAACe,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BzB,KAA/B,CAA0C,KAAA,iBAA9C,EAAiE;AAC/D,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,MAAMuB,SAAS,GAAGf,MAAM,CAACkB,cAAP,CAAsB1B,KAAtB,CAAlB,CAAA;EACA,OAAOuB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKf,MAAM,CAACe,SAAlD,CAAA;AACD;;;;;;;;;;"}
@@ -9,6 +9,9 @@ function getClientKey(key) {
9
9
  function isQueryKey(value) {
10
10
  return Array.isArray(value);
11
11
  }
12
+ function isMutationKey(value) {
13
+ return Array.isArray(isRef(value) ? value.value : value);
14
+ }
12
15
  function updateState(state, update) {
13
16
  Object.keys(state).forEach(key => {
14
17
  state[key] = update[key];
@@ -51,5 +54,5 @@ function isPlainObject(value) {
51
54
  return prototype === null || prototype === Object.prototype;
52
55
  }
53
56
 
54
- export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, isQueryKey, updateState };
57
+ export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, isMutationKey, isQueryKey, updateState };
55
58
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../src/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { QueryKey } from '@tanstack/query-core'\nimport { isRef, unref } from 'vue-demi'\nimport type { UnwrapRef } from 'vue-demi'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function updateState(\n state: Record<string, unknown>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\nexport function cloneDeep<T>(\n value: T,\n customizer?: (val: unknown) => unknown | void,\n): T {\n if (customizer) {\n const result = customizer(value)\n if (result !== undefined || isRef(value)) {\n return result as typeof value\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as typeof value\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n cloneDeep(val, customizer),\n ])\n return Object.fromEntries(entries)\n }\n\n return value\n}\n\nexport function cloneDeepUnref<T>(obj: T): UnwrapRef<T> {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n }) as UnwrapRef<typeof obj>\n}\n\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n"],"names":["VUE_QUERY_CLIENT","getClientKey","key","suffix","isQueryKey","value","Array","isArray","updateState","state","update","Object","keys","forEach","cloneDeep","customizer","result","undefined","isRef","map","val","isPlainObject","entries","fromEntries","cloneDeepUnref","obj","unref","prototype","toString","call","getPrototypeOf"],"mappings":";;AAAA;AAKO,MAAMA,gBAAgB,GAAG,mBAAzB;AAEA,SAASC,YAAT,CAAsBC,GAAtB,EAAoC;AACzC,EAAA,MAAMC,MAAM,GAAGD,GAAG,GAAOA,GAAAA,GAAAA,GAAP,GAAe,EAAjC,CAAA;EACA,OAAUF,EAAAA,GAAAA,gBAAV,GAA6BG,MAA7B,CAAA;AACD,CAAA;AAEM,SAASC,UAAT,CAAoBC,KAApB,EAAuD;AAC5D,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASG,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4BX,GAAD,IAAS;AAClCO,IAAAA,KAAK,CAACP,GAAD,CAAL,GAAaQ,MAAM,CAACR,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASY,SAAT,CACLT,KADK,EAELU,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACV,KAAD,CAAzB,CAAA;;IACA,IAAIW,MAAM,KAAKC,SAAX,IAAwBC,KAAK,CAACb,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOW,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIV,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACc,GAAN,CAAWC,GAAD,IAASN,SAAS,CAACM,GAAD,EAAML,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOV,KAAP,KAAiB,QAAjB,IAA6BgB,aAAa,CAAChB,KAAD,CAA9C,EAAuD;IACrD,MAAMiB,OAAO,GAAGX,MAAM,CAACW,OAAP,CAAejB,KAAf,CAAsBc,CAAAA,GAAtB,CAA0B,CAAC,CAACjB,GAAD,EAAMkB,GAAN,CAAD,KAAgB,CACxDlB,GADwD,EAExDY,SAAS,CAACM,GAAD,EAAML,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACY,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOjB,KAAP,CAAA;AACD,CAAA;AAEM,SAASmB,cAAT,CAA2BC,GAA3B,EAAiD;AACtD,EAAA,OAAOX,SAAS,CAACW,GAAD,EAAOL,GAAD,IAAS;AAC7B,IAAA,IAAIF,KAAK,CAACE,GAAD,CAAT,EAAgB;AACd,MAAA,OAAOI,cAAc,CAACE,KAAK,CAACN,GAAD,CAAN,CAArB,CAAA;AACD,KAAA;AACF,GAJe,CAAhB,CAAA;AAKD,CAAA;;AAED,SAASC,aAAT,CAAuBhB,KAAvB,EAAwD;EACtD,IAAIM,MAAM,CAACgB,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BxB,KAA/B,CAA0C,KAAA,iBAA9C,EAAiE;AAC/D,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,MAAMsB,SAAS,GAAGhB,MAAM,CAACmB,cAAP,CAAsBzB,KAAtB,CAAlB,CAAA;EACA,OAAOsB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKhB,MAAM,CAACgB,SAAlD,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../src/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { QueryKey, MutationKey } from '@tanstack/query-core'\nimport { isRef, unref } from 'vue-demi'\nimport type { UnwrapRef } from 'vue-demi'\nimport type { MaybeRef } from './types'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function isMutationKey(value: unknown): value is MaybeRef<MutationKey> {\n return Array.isArray(isRef(value) ? value.value : value)\n}\n\nexport function updateState(\n state: Record<string, unknown>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\nexport function cloneDeep<T>(\n value: T,\n customizer?: (val: unknown) => unknown | void,\n): T {\n if (customizer) {\n const result = customizer(value)\n if (result !== undefined || isRef(value)) {\n return result as typeof value\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as typeof value\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n cloneDeep(val, customizer),\n ])\n return Object.fromEntries(entries)\n }\n\n return value\n}\n\nexport function cloneDeepUnref<T>(obj: T): UnwrapRef<T> {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n }) as UnwrapRef<typeof obj>\n}\n\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n"],"names":["VUE_QUERY_CLIENT","getClientKey","key","suffix","isQueryKey","value","Array","isArray","isMutationKey","isRef","updateState","state","update","Object","keys","forEach","cloneDeep","customizer","result","undefined","map","val","isPlainObject","entries","fromEntries","cloneDeepUnref","obj","unref","prototype","toString","call","getPrototypeOf"],"mappings":";;AAAA;AAMO,MAAMA,gBAAgB,GAAG,mBAAzB;AAEA,SAASC,YAAT,CAAsBC,GAAtB,EAAoC;AACzC,EAAA,MAAMC,MAAM,GAAGD,GAAG,GAAOA,GAAAA,GAAAA,GAAP,GAAe,EAAjC,CAAA;EACA,OAAUF,EAAAA,GAAAA,gBAAV,GAA6BG,MAA7B,CAAA;AACD,CAAA;AAEM,SAASC,UAAT,CAAoBC,KAApB,EAAuD;AAC5D,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASG,aAAT,CAAuBH,KAAvB,EAAuE;AAC5E,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcE,KAAK,CAACJ,KAAD,CAAL,GAAeA,KAAK,CAACA,KAArB,GAA6BA,KAA3C,CAAP,CAAA;AACD,CAAA;AAEM,SAASK,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4Bb,GAAD,IAAS;AAClCS,IAAAA,KAAK,CAACT,GAAD,CAAL,GAAaU,MAAM,CAACV,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASc,SAAT,CACLX,KADK,EAELY,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACZ,KAAD,CAAzB,CAAA;;IACA,IAAIa,MAAM,KAAKC,SAAX,IAAwBV,KAAK,CAACJ,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOa,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIZ,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACe,GAAN,CAAWC,GAAD,IAASL,SAAS,CAACK,GAAD,EAAMJ,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOZ,KAAP,KAAiB,QAAjB,IAA6BiB,aAAa,CAACjB,KAAD,CAA9C,EAAuD;IACrD,MAAMkB,OAAO,GAAGV,MAAM,CAACU,OAAP,CAAelB,KAAf,CAAsBe,CAAAA,GAAtB,CAA0B,CAAC,CAAClB,GAAD,EAAMmB,GAAN,CAAD,KAAgB,CACxDnB,GADwD,EAExDc,SAAS,CAACK,GAAD,EAAMJ,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACW,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOlB,KAAP,CAAA;AACD,CAAA;AAEM,SAASoB,cAAT,CAA2BC,GAA3B,EAAiD;AACtD,EAAA,OAAOV,SAAS,CAACU,GAAD,EAAOL,GAAD,IAAS;AAC7B,IAAA,IAAIZ,KAAK,CAACY,GAAD,CAAT,EAAgB;AACd,MAAA,OAAOI,cAAc,CAACE,KAAK,CAACN,GAAD,CAAN,CAArB,CAAA;AACD,KAAA;AACF,GAJe,CAAhB,CAAA;AAKD,CAAA;;AAED,SAASC,aAAT,CAAuBjB,KAAvB,EAAwD;EACtD,IAAIQ,MAAM,CAACe,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BzB,KAA/B,CAA0C,KAAA,iBAA9C,EAAiE;AAC/D,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,MAAMuB,SAAS,GAAGf,MAAM,CAACkB,cAAP,CAAsB1B,KAAtB,CAAlB,CAAA;EACA,OAAOuB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKf,MAAM,CAACe,SAAlD,CAAA;AACD;;;;"}