@tanstack/vue-query 4.13.0 → 4.13.2

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
  });
@@ -36,24 +37,27 @@ function useMutation(arg1, arg2, arg3) {
36
37
  };
37
38
  }
38
39
  function parseMutationArgs(arg1, arg2, arg3) {
39
- let options = arg1;
40
+ const plainArg1 = isRef(arg1) ? arg1.value : arg1;
41
+ const plainArg2 = isRef(arg2) ? arg2.value : arg2;
42
+ let options = plainArg1;
40
43
 
41
- if (isQueryKey(arg1)) {
42
- if (typeof arg2 === 'function') {
43
- options = { ...arg3,
44
- mutationKey: arg1,
45
- mutationFn: arg2
44
+ if (isMutationKey(plainArg1)) {
45
+ if (typeof plainArg2 === 'function') {
46
+ const plainArg3 = isRef(arg3) ? arg3.value : arg3;
47
+ options = { ...plainArg3,
48
+ mutationKey: plainArg1,
49
+ mutationFn: plainArg2
46
50
  };
47
51
  } else {
48
- options = { ...arg2,
49
- mutationKey: arg1
52
+ options = { ...plainArg2,
53
+ mutationKey: plainArg1
50
54
  };
51
55
  }
52
56
  }
53
57
 
54
- if (typeof arg1 === 'function') {
55
- options = { ...arg2,
56
- mutationFn: arg1
58
+ if (typeof plainArg1 === 'function') {
59
+ options = { ...plainArg2,
60
+ mutationFn: plainArg1
57
61
  };
58
62
  }
59
63
 
@@ -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 const plainArg1 = isRef(arg1) ? arg1.value : arg1\n const plainArg2 = isRef(arg2) ? arg2.value : arg2\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = isRef(arg3) ? arg3.value : arg3\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\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","plainArg1","isRef","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":"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"}
@@ -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
  });
@@ -40,24 +41,27 @@ function useMutation(arg1, arg2, arg3) {
40
41
  };
41
42
  }
42
43
  function parseMutationArgs(arg1, arg2, arg3) {
43
- let options = arg1;
44
+ const plainArg1 = vueDemi.isRef(arg1) ? arg1.value : arg1;
45
+ const plainArg2 = vueDemi.isRef(arg2) ? arg2.value : arg2;
46
+ let options = plainArg1;
44
47
 
45
- if (utils.isQueryKey(arg1)) {
46
- if (typeof arg2 === 'function') {
47
- options = { ...arg3,
48
- mutationKey: arg1,
49
- mutationFn: arg2
48
+ if (utils.isMutationKey(plainArg1)) {
49
+ if (typeof plainArg2 === 'function') {
50
+ const plainArg3 = vueDemi.isRef(arg3) ? arg3.value : arg3;
51
+ options = { ...plainArg3,
52
+ mutationKey: plainArg1,
53
+ mutationFn: plainArg2
50
54
  };
51
55
  } else {
52
- options = { ...arg2,
53
- mutationKey: arg1
56
+ options = { ...plainArg2,
57
+ mutationKey: plainArg1
54
58
  };
55
59
  }
56
60
  }
57
61
 
58
- if (typeof arg1 === 'function') {
59
- options = { ...arg2,
60
- mutationFn: arg1
62
+ if (typeof plainArg1 === 'function') {
63
+ options = { ...plainArg2,
64
+ mutationFn: plainArg1
61
65
  };
62
66
  }
63
67
 
@@ -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 const plainArg1 = isRef(arg1) ? arg1.value : arg1\n const plainArg2 = isRef(arg2) ? arg2.value : arg2\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = isRef(arg3) ? arg3.value : arg3\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\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","plainArg1","isRef","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":"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"}
@@ -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
  });
@@ -36,24 +37,27 @@ function useMutation(arg1, arg2, arg3) {
36
37
  };
37
38
  }
38
39
  function parseMutationArgs(arg1, arg2, arg3) {
39
- let options = arg1;
40
+ const plainArg1 = isRef(arg1) ? arg1.value : arg1;
41
+ const plainArg2 = isRef(arg2) ? arg2.value : arg2;
42
+ let options = plainArg1;
40
43
 
41
- if (isQueryKey(arg1)) {
42
- if (typeof arg2 === 'function') {
43
- options = { ...arg3,
44
- mutationKey: arg1,
45
- mutationFn: arg2
44
+ if (isMutationKey(plainArg1)) {
45
+ if (typeof plainArg2 === 'function') {
46
+ const plainArg3 = isRef(arg3) ? arg3.value : arg3;
47
+ options = { ...plainArg3,
48
+ mutationKey: plainArg1,
49
+ mutationFn: plainArg2
46
50
  };
47
51
  } else {
48
- options = { ...arg2,
49
- mutationKey: arg1
52
+ options = { ...plainArg2,
53
+ mutationKey: plainArg1
50
54
  };
51
55
  }
52
56
  }
53
57
 
54
- if (typeof arg1 === 'function') {
55
- options = { ...arg2,
56
- mutationFn: arg1
58
+ if (typeof plainArg1 === 'function') {
59
+ options = { ...plainArg2,
60
+ mutationFn: plainArg1
57
61
  };
58
62
  }
59
63
 
@@ -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 const plainArg1 = isRef(arg1) ? arg1.value : arg1\n const plainArg2 = isRef(arg2) ? arg2.value : arg2\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = isRef(arg3) ? arg3.value : arg3\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\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","plainArg1","isRef","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":"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"}
@@ -1,8 +1,9 @@
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
3
  export declare const VUE_QUERY_CLIENT = "VUE_QUERY_CLIENT";
4
4
  export declare function getClientKey(key?: string): string;
5
5
  export declare function isQueryKey(value: unknown): value is QueryKey;
6
+ export declare function isMutationKey(value: unknown): value is MutationKey;
6
7
  export declare function updateState(state: Record<string, unknown>, update: Record<string, any>): void;
7
8
  export declare function cloneDeep<T>(value: T, customizer?: (val: unknown) => unknown | void): T;
8
9
  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(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'\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 MutationKey {\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","isMutationKey","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,aAAT,CAAuBH,KAAvB,EAA6D;AAClE,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASI,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4BZ,GAAD,IAAS;AAClCQ,IAAAA,KAAK,CAACR,GAAD,CAAL,GAAaS,MAAM,CAACT,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASa,SAAT,CACLV,KADK,EAELW,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACX,KAAD,CAAzB,CAAA;;IACA,IAAIY,MAAM,KAAKC,SAAX,IAAwBC,KAAK,CAACd,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOY,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIX,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACe,GAAN,CAAWC,GAAD,IAASN,SAAS,CAACM,GAAD,EAAML,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOX,KAAP,KAAiB,QAAjB,IAA6BiB,aAAa,CAACjB,KAAD,CAA9C,EAAuD;IACrD,MAAMkB,OAAO,GAAGX,MAAM,CAACW,OAAP,CAAelB,KAAf,CAAsBe,CAAAA,GAAtB,CAA0B,CAAC,CAAClB,GAAD,EAAMmB,GAAN,CAAD,KAAgB,CACxDnB,GADwD,EAExDa,SAAS,CAACM,GAAD,EAAML,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACY,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOlB,KAAP,CAAA;AACD,CAAA;AAEM,SAASoB,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,CAAuBjB,KAAvB,EAAwD;EACtD,IAAIO,MAAM,CAACgB,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,GAAGhB,MAAM,CAACmB,cAAP,CAAsB1B,KAAtB,CAAlB,CAAA;EACA,OAAOuB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKhB,MAAM,CAACgB,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(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'\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 MutationKey {\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","isMutationKey","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,aAAT,CAAuBH,KAAvB,EAA6D;AAClE,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASI,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4BZ,GAAD,IAAS;AAClCQ,IAAAA,KAAK,CAACR,GAAD,CAAL,GAAaS,MAAM,CAACT,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASa,SAAT,CACLV,KADK,EAELW,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACX,KAAD,CAAzB,CAAA;;IACA,IAAIY,MAAM,KAAKC,SAAX,IAAwBC,aAAK,CAACd,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOY,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIX,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACe,GAAN,CAAWC,GAAD,IAASN,SAAS,CAACM,GAAD,EAAML,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOX,KAAP,KAAiB,QAAjB,IAA6BiB,aAAa,CAACjB,KAAD,CAA9C,EAAuD;IACrD,MAAMkB,OAAO,GAAGX,MAAM,CAACW,OAAP,CAAelB,KAAf,CAAsBe,CAAAA,GAAtB,CAA0B,CAAC,CAAClB,GAAD,EAAMmB,GAAN,CAAD,KAAgB,CACxDnB,GADwD,EAExDa,SAAS,CAACM,GAAD,EAAML,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACY,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOlB,KAAP,CAAA;AACD,CAAA;AAEM,SAASoB,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,CAAuBjB,KAAvB,EAAwD;EACtD,IAAIO,MAAM,CAACgB,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,GAAGhB,MAAM,CAACmB,cAAP,CAAsB1B,KAAtB,CAAlB,CAAA;EACA,OAAOuB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKhB,MAAM,CAACgB,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(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'\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 MutationKey {\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","isMutationKey","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,aAAT,CAAuBH,KAAvB,EAA6D;AAClE,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASI,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4BZ,GAAD,IAAS;AAClCQ,IAAAA,KAAK,CAACR,GAAD,CAAL,GAAaS,MAAM,CAACT,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASa,SAAT,CACLV,KADK,EAELW,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACX,KAAD,CAAzB,CAAA;;IACA,IAAIY,MAAM,KAAKC,SAAX,IAAwBC,KAAK,CAACd,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOY,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIX,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACe,GAAN,CAAWC,GAAD,IAASN,SAAS,CAACM,GAAD,EAAML,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOX,KAAP,KAAiB,QAAjB,IAA6BiB,aAAa,CAACjB,KAAD,CAA9C,EAAuD;IACrD,MAAMkB,OAAO,GAAGX,MAAM,CAACW,OAAP,CAAelB,KAAf,CAAsBe,CAAAA,GAAtB,CAA0B,CAAC,CAAClB,GAAD,EAAMmB,GAAN,CAAD,KAAgB,CACxDnB,GADwD,EAExDa,SAAS,CAACM,GAAD,EAAML,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACY,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOlB,KAAP,CAAA;AACD,CAAA;AAEM,SAASoB,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,CAAuBjB,KAAvB,EAAwD;EACtD,IAAIO,MAAM,CAACgB,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,GAAGhB,MAAM,CAACmB,cAAP,CAAsB1B,KAAtB,CAAlB,CAAA;EACA,OAAOuB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKhB,MAAM,CAACgB,SAAlD,CAAA;AACD;;;;"}