@effect-app/vue 1.22.4 → 1.23.0

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.
package/dist/query.js CHANGED
@@ -8,103 +8,106 @@ import { useQuery } from "@tanstack/vue-query";
8
8
  import { Cause, Effect, Option, Runtime, S } from "effect-app";
9
9
  import { ServiceUnavailableError } from "effect-app/client";
10
10
  import { computed, ref } from "vue";
11
- import { makeQueryKey, reportRuntimeError, run } from "./internal.js";
12
- export function useSafeQuery(self,
13
- /*
14
- q:
15
- | {
16
- handler: (
17
- req: I
18
- ) => Effect<
19
- A,
20
- E,
21
- ApiConfig | HttpClient.HttpClient
22
- >
23
- mapPath: (req: I) => string
24
- name: string
25
- }
26
- | {
27
- handler: Effect<
28
- A,
29
- E,
30
- ApiConfig | HttpClient.HttpClient
31
- >
32
- mapPath: string
33
- name: string
34
- },
35
- */
36
- argOrOptions, options) {
37
- return Effect.isEffect(self.handler)
38
- ? useSafeQuery_(self, undefined, argOrOptions)
39
- : useSafeQuery_(self, argOrOptions, options);
40
- }
41
- // TODO: options
42
- // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): UseQueryReturnType<TData, TError>;
43
- // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): UseQueryDefinedReturnType<TData, TError>;
44
- // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient): UseQueryReturnType<TData, TError>;
45
- export const useSafeQuery_ = (q, arg, options = {} // TODO
46
- ) => {
47
- const arr = arg;
48
- const req = !arg
49
- ? undefined
50
- : typeof arr === "function"
51
- ? {
52
- get value() {
53
- return arr();
11
+ import { makeQueryKey, reportRuntimeError } from "./internal.js";
12
+ export const makeQuery = (runtime) => {
13
+ const runPromise = Runtime.runPromise(runtime);
14
+ // TODO: options
15
+ // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): UseQueryReturnType<TData, TError>;
16
+ // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): UseQueryDefinedReturnType<TData, TError>;
17
+ // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient): UseQueryReturnType<TData, TError>;
18
+ const useSafeQuery_ = (q, arg, options = {} // TODO
19
+ ) => {
20
+ const arr = arg;
21
+ const req = !arg
22
+ ? undefined
23
+ : typeof arr === "function"
24
+ ? {
25
+ get value() {
26
+ return arr();
27
+ }
54
28
  }
29
+ : ref(arg);
30
+ const queryKey = makeQueryKey(q.name);
31
+ const handler = q.handler;
32
+ const r = useQuery(Effect.isEffect(handler)
33
+ ? {
34
+ ...options,
35
+ retry: (retryCount, error) => {
36
+ if (Runtime.isFiberFailure(error)) {
37
+ const cause = error[Runtime.FiberFailureCauseId];
38
+ const sq = Cause.squash(cause);
39
+ if (!isHttpRequestError(sq) && !isHttpResponseError(sq) && !S.is(ServiceUnavailableError)(sq)) {
40
+ return false;
41
+ }
42
+ }
43
+ return retryCount < 5;
44
+ },
45
+ queryKey,
46
+ queryFn: ({ signal }) => runPromise(handler
47
+ .pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`, { captureStackTrace: false })), { signal })
55
48
  }
56
- : ref(arg);
57
- const queryKey = makeQueryKey(q.name);
58
- const handler = q.handler;
59
- const r = useQuery(Effect.isEffect(handler)
60
- ? {
61
- ...options,
62
- retry: (retryCount, error) => {
63
- if (Runtime.isFiberFailure(error)) {
64
- const cause = error[Runtime.FiberFailureCauseId];
65
- const sq = Cause.squash(cause);
66
- if (!isHttpRequestError(sq) && !isHttpResponseError(sq) && !S.is(ServiceUnavailableError)(sq)) {
67
- return false;
49
+ : {
50
+ ...options,
51
+ retry: (retryCount, error) => {
52
+ if (Runtime.isFiberFailure(error)) {
53
+ const cause = error[Runtime.FiberFailureCauseId];
54
+ const sq = Cause.squash(cause);
55
+ if (!isHttpRequestError(sq) && !isHttpResponseError(sq) && !S.is(ServiceUnavailableError)(sq)) {
56
+ return false;
57
+ }
68
58
  }
69
- }
70
- return retryCount < 5;
71
- },
72
- queryKey,
73
- queryFn: ({ signal }) => run.value(handler
74
- .pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`, { captureStackTrace: false })), { signal })
59
+ return retryCount < 5;
60
+ },
61
+ queryKey: [...queryKey, req],
62
+ queryFn: ({ signal }) => runPromise(handler(req.value)
63
+ .pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`, { captureStackTrace: false })), { signal })
64
+ });
65
+ const result = computed(() => swrToQuery({
66
+ error: r.error.value ?? undefined,
67
+ data: r.data.value,
68
+ isValidating: r.isFetching.value
69
+ }));
70
+ const latestSuccess = computed(() => Option.getOrUndefined(Result.value(result.value)));
71
+ return [result, latestSuccess, r.refetch, r];
72
+ };
73
+ function swrToQuery(r) {
74
+ if (r.error) {
75
+ return Result.failureWithPrevious(r.error[Runtime.FiberFailureCauseId], r.data === undefined ? Option.none() : Option.some(Result.success(r.data)), r.isValidating);
75
76
  }
76
- : {
77
- ...options,
78
- retry: (retryCount, error) => {
79
- if (Runtime.isFiberFailure(error)) {
80
- const cause = error[Runtime.FiberFailureCauseId];
81
- const sq = Cause.squash(cause);
82
- if (!isHttpRequestError(sq) && !isHttpResponseError(sq) && !S.is(ServiceUnavailableError)(sq)) {
83
- return false;
84
- }
85
- }
86
- return retryCount < 5;
87
- },
88
- queryKey: [...queryKey, req],
89
- queryFn: ({ signal }) => run
90
- .value(handler(req.value)
91
- .pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`, { captureStackTrace: false })), { signal })
92
- });
93
- const result = computed(() => swrToQuery({
94
- error: r.error.value ?? undefined,
95
- data: r.data.value,
96
- isValidating: r.isFetching.value
97
- }));
98
- const latestSuccess = computed(() => Option.getOrUndefined(Result.value(result.value)));
99
- return [result, latestSuccess, r.refetch, r];
100
- };
101
- function swrToQuery(r) {
102
- if (r.error) {
103
- return Result.failureWithPrevious(r.error[Runtime.FiberFailureCauseId], r.data === undefined ? Option.none() : Option.some(Result.success(r.data)), r.isValidating);
77
+ if (r.data !== undefined) {
78
+ return Result.success(r.data, r.isValidating);
79
+ }
80
+ return Result.initial(r.isValidating);
104
81
  }
105
- if (r.data !== undefined) {
106
- return Result.success(r.data, r.isValidating);
82
+ function useSafeQuery(self,
83
+ /*
84
+ q:
85
+ | {
86
+ handler: (
87
+ req: I
88
+ ) => Effect<
89
+ A,
90
+ E,
91
+ R
92
+ >
93
+ mapPath: (req: I) => string
94
+ name: string
107
95
  }
108
- return Result.initial(r.isValidating);
109
- }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQzNGLE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUE7QUFROUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlELE9BQU8sRUFBa0IsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUUzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUVuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQXlDckUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsSUFBUztBQUNUOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBc0JFO0FBQ0YsWUFBa0IsRUFDbEIsT0FBYTtJQUViLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUM7UUFDOUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQ2hELENBQUM7QUFNRCxnQkFBZ0I7QUFDaEIsc1JBQXNSO0FBQ3RSLDJSQUEyUjtBQUMzUix1UkFBdVI7QUFDdlIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLENBb0JHLEVBQ0gsR0FBd0Is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
96
+ | {
97
+ handler: Effect<
98
+ A,
99
+ E,
100
+ R
101
+ >
102
+ mapPath: string
103
+ name: string
104
+ },
105
+ */
106
+ argOrOptions, options) {
107
+ return Effect.isEffect(self.handler)
108
+ ? useSafeQuery_(self, undefined, argOrOptions)
109
+ : useSafeQuery_(self, argOrOptions, options);
110
+ }
111
+ return useSafeQuery;
112
+ };
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQzNGLE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUE7QUFROUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRW5DLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFrQmhFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFJLE9BQTJCLEVBQUUsRUFBRTtJQUMxRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzlDLGdCQUFnQjtJQUNoQixzUkFBc1I7SUFDdFIsMlJBQTJSO0lBQzNSLHVSQUF1UjtJQUN2UixNQUFNLGFBQWEsR0FBRyxDQUNwQixDQW9CRyxFQUNILEdBQXdCLEVBQ3hCLFVBQXdFLEVBQUUsQ0FBQyxPQUFPO01BQ2xGLEVBQUU7UUFDRixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUE7UUFDZixNQUFNLEdBQUcsR0FBaUIsQ0FBQyxHQUFHO1lBQzVCLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFVBQVU7Z0JBQzNCLENBQUMsQ0FBRTtvQkFD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
package/dist/runtime.d.ts CHANGED
@@ -3,7 +3,6 @@ import { Config, Exit, Runtime } from "effect";
3
3
  import { Effect, Layer } from "effect-app";
4
4
  import { ApiConfig } from "effect-app/client";
5
5
  import * as Scope from "effect/Scope";
6
- export { initRuntime } from "./internal.js";
7
6
  export declare const DefaultApiConfig: Config.Config<{
8
7
  apiUrl: string;
9
8
  headers: import("effect/Option").Option<import("effect/HashMap").HashMap<string, string>>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,eAAO,MAAM,gBAAgB;;;EAQ3B,CAAA;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,yIAI9C;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;2BA0CuqD,CAAC;;;2BAAqd,CAAC;;;;;;;SAtB1rE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC;;;2BAoBkoD,CAAC;;;2BAAqd,CAAC;;;;;;;EAb1rE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC;;;2BAWioD,CAAC;;;2BAAqd,CAAC;;;;;;;GAD1rE"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,eAAO,MAAM,gBAAgB;;;EAQ3B,CAAA;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,yIAI9C;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;2BAwCkzD,CAAC;;;2BAAqd,CAAC;;;;;;;SApBr0E;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC;;;2BAkB6wD,CAAC;;;2BAAqd,CAAC;;;;;;;EAZr0E;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC;;;2BAU4wD,CAAC;;;2BAAqd,CAAC;;;;;;;GADr0E"}
package/dist/runtime.js CHANGED
@@ -3,8 +3,6 @@ import { Config, Exit, Runtime } from "effect";
3
3
  import { Effect, Layer, Logger } from "effect-app";
4
4
  import { ApiConfig } from "effect-app/client";
5
5
  import * as Scope from "effect/Scope";
6
- import { initRuntime } from "./internal.js";
7
- export { initRuntime } from "./internal.js";
8
6
  export const DefaultApiConfig = Config.all({
9
7
  apiUrl: Config.string("apiUrl").pipe(Config.withDefault("/api")),
10
8
  headers: Config
@@ -36,7 +34,6 @@ export function makeAppRuntime(layer) {
36
34
  }
37
35
  export function initializeSync(layer) {
38
36
  const { clean, runtime } = Effect.runSync(makeAppRuntime(layer));
39
- initRuntime(runtime);
40
37
  return {
41
38
  runtime,
42
39
  clean: () => Effect.runSync(clean)
@@ -46,11 +43,10 @@ export function initializeAsync(layer) {
46
43
  return Effect
47
44
  .runPromise(makeAppRuntime(layer))
48
45
  .then(({ clean, runtime }) => {
49
- initRuntime(runtime);
50
46
  return {
51
47
  runtime,
52
48
  clean: () => Effect.runPromise(clean)
53
49
  };
54
50
  });
55
51
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUVsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFM0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUN6QyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRSxPQUFPLEVBQUUsTUFBTTtTQUNaLE9BQU8sQ0FDTixNQUFNLENBQUMsTUFBTSxFQUFFLEVBQ2YsU0FBUyxDQUNWO1NBQ0EsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7Q0FDdkIsQ0FBQyxDQUFBO0FBRUYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFpQjtJQUM3QyxPQUFPLGVBQWU7U0FDbkIsS0FBSztTQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFVLEtBQXFCO0lBQzNELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQ2hCLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3ZHLENBQUE7UUFDRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDakMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDMUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUVuRixPQUFPO1lBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUM5QixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZDLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztnQkFDL0MsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUNqQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQ3pDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUNsQyxDQUFDO1lBQ0YsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDckMsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQU8sS0FBNkQ7SUFDaEcsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ2hFLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwQixPQUFPO1FBQ0wsT0FBTztRQUNQLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztLQUNuQyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQU8sS0FBNkQ7SUFDakcsT0FBTyxNQUFNO1NBQ1YsVUFBVSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1FBQzNCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNwQixPQUFPO1lBQ0wsT0FBTztZQUNQLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztTQUN0QyxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDIn0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUVsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUVyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sRUFBRSxNQUFNO1NBQ1osT0FBTyxDQUNOLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFDZixTQUFTLENBQ1Y7U0FDQSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztDQUN2QixDQUFDLENBQUE7QUFFRixNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQWlCO0lBQzdDLE9BQU8sZUFBZTtTQUNuQixLQUFLO1NBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDL0MsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQVUsS0FBcUI7SUFDM0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDaEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDdkcsQ0FBQTtRQUNELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNqQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUMxRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBRW5GLE9BQU87WUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQzlCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDdkMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO2dCQUMvQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ2pDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztnQkFDekMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQ2xDLENBQUM7WUFDRixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNyQyxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBTyxLQUE2RDtJQUNoRyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDaEUsT0FBTztRQUNMLE9BQU87UUFDUCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7S0FDbkMsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFPLEtBQTZEO0lBQ2pHLE9BQU8sTUFBTTtTQUNWLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtRQUMzQixPQUFPO1lBQ0wsT0FBTztZQUNQLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztTQUN0QyxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDIn0=
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "1.22.4",
3
+ "version": "1.23.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
7
7
  "dependencies": {
8
8
  "@formatjs/intl": "^2.10.8",
9
- "@tanstack/vue-query": "^5.59.9",
9
+ "@tanstack/vue-query": "^5.59.13",
10
10
  "@vueuse/core": "^11.1.0",
11
11
  "query-string": "^9.1.1",
12
12
  "@effect-app/core": "1.15.8",
13
+ "@effect-app/vue": "1.23.0",
13
14
  "@effect-app/schema": "1.17.8",
14
- "@effect-app/vue": "1.22.4",
15
15
  "effect-app": "1.26.8"
16
16
  },
17
17
  "peerDependencies": {
@@ -22,7 +22,7 @@
22
22
  "@effect/schema": "^0.75.3",
23
23
  "@sentry/browser": "^8.34.0",
24
24
  "effect": "^3.9.1",
25
- "vue": "^3.5.11"
25
+ "vue": "^3.5.12"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@babel/cli": "^7.25.7",
@@ -2,13 +2,13 @@
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
3
3
  import { dropUndefined } from "@effect-app/core/utils"
4
4
  import * as Sentry from "@sentry/browser"
5
- import { Cause, Effect } from "effect-app"
5
+ import { Cause, Effect } from "effect"
6
6
  import { annotateSpanWithError, CauseException, ErrorReported } from "effect-app/client/errors"
7
7
 
8
8
  export function reportError(
9
9
  name: string
10
10
  ) {
11
- return (cause: Cause<unknown>, extras?: Record<string, unknown>) =>
11
+ return (cause: Cause.Cause<unknown>, extras?: Record<string, unknown>) =>
12
12
  Effect.gen(function*() {
13
13
  yield* annotateSpanWithError(cause, name)
14
14
  if (Cause.isInterrupted(cause)) {
@@ -46,7 +46,7 @@ function reportSentry(
46
46
  export function logError<E>(
47
47
  name: string
48
48
  ) {
49
- return (cause: Cause<E>, extras?: Record<string, unknown>) =>
49
+ return (cause: Cause.Cause<E>, extras?: Record<string, unknown>) =>
50
50
  Effect.gen(function*() {
51
51
  if (Cause.isInterrupted(cause)) {
52
52
  yield* Effect.logDebug("Interrupted").pipe(Effect.annotateLogs(dropUndefined({ extras })))
package/src/form.ts CHANGED
@@ -60,12 +60,12 @@ export interface DiscriminatedUnionFieldInfo<T> {
60
60
  _tag: "DiscriminatedUnionFieldInfo"
61
61
  }
62
62
 
63
- type NestedFieldInfoKey<Key> = [Key] extends [Record<PropertyKey, any>]
63
+ export type NestedFieldInfoKey<Key> = [Key] extends [Record<PropertyKey, any>]
64
64
  ? Unbranded<Key> extends Record<PropertyKey, any> ? NestedFieldInfo<Key>
65
65
  : FieldInfo<Key>
66
66
  : FieldInfo<Key>
67
67
 
68
- type DistributiveNestedFieldInfoKey<Key> = Key extends any ? NestedFieldInfoKey<Key> : never
68
+ export type DistributiveNestedFieldInfoKey<Key> = Key extends any ? NestedFieldInfoKey<Key> : never
69
69
 
70
70
  export type NestedFieldInfo<To extends Record<PropertyKey, any>> = // exploit eventual _tag field to propagate the unique tag
71
71
  {
package/src/internal.ts CHANGED
@@ -1,30 +1,7 @@
1
- import type * as HttpClient from "@effect/platform/HttpClient"
2
- import type { Effect } from "effect-app"
3
- import { pipe, Runtime } from "effect-app"
4
- import type { ApiConfig } from "effect-app/client"
1
+ import { pipe } from "effect-app"
5
2
  import { reportError } from "./errorReporter.js"
6
3
 
7
- export const run = {
8
- value<E, A>(
9
- _: Effect<A, E, ApiConfig | HttpClient.HttpClient>,
10
- _options?: { readonly signal?: AbortSignal }
11
- ): Promise<A> {
12
- throw new Error("Runtime not initialized, please run `initRuntime` first")
13
- }
14
- }
15
4
  export const reportRuntimeError = reportError("Runtime")
16
- export function initRuntime<A>(rt: Runtime.Runtime<A | ApiConfig | HttpClient.HttpClient>) {
17
- const runPromise = Runtime.runPromise(rt)
18
- run.value = function<E, A>(
19
- self: Effect<A, E, ApiConfig | HttpClient.HttpClient>,
20
- options?: { readonly signal?: AbortSignal }
21
- ): Promise<A> {
22
- return runPromise(
23
- self,
24
- options
25
- )
26
- }
27
- }
28
5
 
29
6
  // $Project/$Configuration.Index
30
7
  // -> "$Project", "$Configuration", "Index"
package/src/makeClient.ts CHANGED
@@ -1,17 +1,18 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { flow, pipe, tuple } from "@effect-app/core/Function"
3
- import { type MutationResult, Result, useSafeMutation } from "@effect-app/vue"
3
+ import type { MutationResult } from "@effect-app/vue"
4
+ import { Result } from "@effect-app/vue"
4
5
  import * as Sentry from "@sentry/browser"
5
6
  import { type MaybeRefOrGetter, type Pausable, useIntervalFn, type UseIntervalFnOptions } from "@vueuse/core"
6
7
  import type { Either } from "effect-app"
7
8
  import { Array, Cause, Effect, Match, Option, Runtime, S } from "effect-app"
8
- import { type ApiConfig, type SupportedErrors } from "effect-app/client"
9
- import type { HttpClient } from "effect-app/http"
9
+ import { type SupportedErrors } from "effect-app/client"
10
10
  import { Failure, Success } from "effect-app/Operations"
11
11
  import { dropUndefinedT } from "effect-app/utils"
12
+ import type { R } from "vitest/dist/chunks/config.Crbj2GAb.js"
12
13
  import { computed, type ComputedRef } from "vue"
13
14
  import type { MakeIntlReturn } from "./makeIntl.js"
14
- import type { MutationOptions } from "./mutate.js"
15
+ import type { MakeMutation, MutationOptions } from "./mutate.js"
15
16
 
16
17
  /**
17
18
  * Use this after handling an error yourself, still continueing on the Error track, but the error will not be reported.
@@ -53,37 +54,25 @@ export interface Opts<A, I = void> extends MutationOptions<A, I> {
53
54
  successToast?: (a: A) => any
54
55
  }
55
56
 
56
- export const useSafeMutationWithState = <I, E, A>(self: {
57
- handler: (i: I) => Effect<A, E, ApiConfig | HttpClient.HttpClient>
58
- name: string
59
- }) => {
60
- const [a, b] = useSafeMutation(self)
61
-
62
- return tuple(
63
- computed(() => mutationResultToVue(a.value)),
64
- b
65
- )
66
- }
67
-
68
57
  export const withSuccess: {
69
- <I, E extends ResponseErrors, A, X>(
58
+ <I, E extends ResponseErrors, A, X, R>(
70
59
  self: {
71
- handler: (i: I) => Effect<A, E, ApiConfig | HttpClient.HttpClient>
60
+ handler: (i: I) => Effect<A, E, R>
72
61
  name: string
73
62
  },
74
63
  onSuccess: (a: A, i: I) => Promise<X>
75
64
  ): {
76
- handler: (i: I) => Effect<X, E, ApiConfig | HttpClient.HttpClient>
65
+ handler: (i: I) => Effect<X, E, R>
77
66
  name: string
78
67
  }
79
- <E extends ResponseErrors, A, X>(
68
+ <E extends ResponseErrors, A, X, R>(
80
69
  self: {
81
- handler: Effect<A, E, ApiConfig | HttpClient.HttpClient>
70
+ handler: Effect<A, E, R>
82
71
  name: string
83
72
  },
84
73
  onSuccess: (_: A) => Promise<X>
85
74
  ): {
86
- handler: Effect<X, E, ApiConfig | HttpClient.HttpClient>
75
+ handler: Effect<X, E, R>
87
76
  name: string
88
77
  }
89
78
  } = (self: any, onSuccess: any): any => ({
@@ -94,7 +83,7 @@ export const withSuccess: {
94
83
  (
95
84
  self.handler as (
96
85
  i: any
97
- ) => Effect<any, any, ApiConfig | HttpClient.HttpClient>
86
+ ) => Effect<any, any, R>
98
87
  )(i),
99
88
  Effect.flatMap((_) =>
100
89
  Effect.promise(() => onSuccess(_, i)).pipe(
@@ -106,24 +95,24 @@ export const withSuccess: {
106
95
  })
107
96
 
108
97
  export const withSuccessE: {
109
- <I, E extends ResponseErrors, A, E2, X>(
98
+ <I, E extends ResponseErrors, A, E2, X, R>(
110
99
  self: {
111
- handler: (i: I) => Effect<A, E, ApiConfig | HttpClient.HttpClient>
100
+ handler: (i: I) => Effect<A, E, R>
112
101
  name: string
113
102
  },
114
103
  onSuccessE: (_: A, i: I) => Effect<X, E2>
115
104
  ): {
116
- handler: (i: I) => Effect<X, E | E2, ApiConfig | HttpClient.HttpClient>
105
+ handler: (i: I) => Effect<X, E | E2, R>
117
106
  name: string
118
107
  }
119
- <E extends ResponseErrors, A, E2, X>(
108
+ <E extends ResponseErrors, A, E2, X, R>(
120
109
  self: {
121
- handler: Effect<A, E, ApiConfig | HttpClient.HttpClient>
110
+ handler: Effect<A, E, R>
122
111
  name: string
123
112
  },
124
113
  onSuccessE: (_: A) => Effect<X, E2>
125
114
  ): {
126
- handler: Effect<X, E | E2, ApiConfig | HttpClient.HttpClient>
115
+ handler: Effect<X, E | E2, R>
127
116
  name: string
128
117
  }
129
118
  } = (self: any, onSuccessE: any): any => {
@@ -188,14 +177,15 @@ export function mutationResultToVue<A, E>(
188
177
  }
189
178
  }
190
179
 
191
- export const makeClient = <Locale extends string>(
180
+ export const makeClient = <Locale extends string, R>(
192
181
  useIntl: MakeIntlReturn<Locale>["useIntl"],
193
182
  useToast: () => {
194
183
  error: (message: string) => void
195
184
  warning: (message: string) => void
196
185
  success: (message: string) => void
197
186
  },
198
- messages: Record<string, string | undefined> = {}
187
+ messages: Record<string, string | undefined> = {},
188
+ useSafeMutation: MakeMutation<R>
199
189
  ) => {
200
190
  const useHandleRequestWithToast = () => {
201
191
  const toast = useToast()
@@ -356,7 +346,7 @@ export const makeClient = <Locale extends string>(
356
346
  const useAndHandleMutation: {
357
347
  <I, E extends ResponseErrors, A>(
358
348
  self: {
359
- handler: (i: I) => Effect<A, E, ApiConfig | HttpClient.HttpClient>
349
+ handler: (i: I) => Effect<A, E, R>
360
350
  name: string
361
351
  },
362
352
  action: string,
@@ -364,7 +354,7 @@ export const makeClient = <Locale extends string>(
364
354
  ): Resp<I, A, E>
365
355
  <E extends ResponseErrors, A>(
366
356
  self: {
367
- handler: Effect<A, E, ApiConfig | HttpClient.HttpClient>
357
+ handler: Effect<A, E, R>
368
358
  name: string
369
359
  },
370
360
  action: string,
@@ -420,7 +410,7 @@ export const makeClient = <Locale extends string>(
420
410
  }) as {
421
411
  <I, E extends ResponseErrors, A>(
422
412
  self: {
423
- handler: (i: I) => Effect<A, E, ApiConfig | HttpClient.HttpClient>
413
+ handler: (i: I) => Effect<A, E, R>
424
414
  name: string
425
415
  },
426
416
  action: string,
@@ -428,7 +418,7 @@ export const makeClient = <Locale extends string>(
428
418
  ): Resp<I, A, E>
429
419
  <E extends ResponseErrors, A>(
430
420
  self: {
431
- handler: Effect<A, E, ApiConfig | HttpClient.HttpClient>
421
+ handler: Effect<A, E, R>
432
422
  name: string
433
423
  },
434
424
  action: string,
@@ -437,7 +427,20 @@ export const makeClient = <Locale extends string>(
437
427
  }
438
428
  }
439
429
 
430
+ const useSafeMutationWithState = <I, E, A>(self: {
431
+ handler: (i: I) => Effect<A, E, R>
432
+ name: string
433
+ }) => {
434
+ const [a, b] = useSafeMutation(self)
435
+
436
+ return tuple(
437
+ computed(() => mutationResultToVue(a.value)),
438
+ b
439
+ )
440
+ }
441
+
440
442
  return {
443
+ useSafeMutationWithState,
441
444
  useAndHandleMutation,
442
445
  makeUseAndHandleMutation,
443
446
  useHandleRequestWithToast