@effect-app/vue 2.14.0 → 2.15.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/CHANGELOG.md +15 -0
- package/_cjs/index.cjs +0 -22
- package/_cjs/index.cjs.map +1 -1
- package/_cjs/makeClient.cjs +169 -72
- package/_cjs/makeClient.cjs.map +1 -1
- package/_cjs/mutate.cjs +84 -101
- package/_cjs/mutate.cjs.map +1 -1
- package/_cjs/query.cjs +9 -52
- package/_cjs/query.cjs.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/makeClient.d.ts +87 -70
- package/dist/makeClient.d.ts.map +1 -1
- package/dist/makeClient.js +164 -84
- package/dist/mutate.d.ts +18 -26
- package/dist/mutate.d.ts.map +1 -1
- package/dist/mutate.js +67 -84
- package/dist/query.d.ts +10 -24
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +13 -55
- package/package.json +8 -48
- package/src/index.ts +0 -2
- package/src/makeClient.ts +463 -227
- package/src/mutate.ts +111 -141
- package/src/query.ts +30 -116
- package/_cjs/hooks.cjs +0 -28
- package/_cjs/hooks.cjs.map +0 -1
- package/_cjs/makeClient2.cjs +0 -221
- package/_cjs/makeClient2.cjs.map +0 -1
- package/_cjs/mutate2.cjs +0 -118
- package/_cjs/mutate2.cjs.map +0 -1
- package/_cjs/query2.cjs +0 -105
- package/_cjs/query2.cjs.map +0 -1
- package/dist/hooks.d.ts +0 -3
- package/dist/hooks.d.ts.map +0 -1
- package/dist/hooks.js +0 -4
- package/dist/makeClient2.d.ts +0 -74
- package/dist/makeClient2.d.ts.map +0 -1
- package/dist/makeClient2.js +0 -187
- package/dist/mutate2.d.ts +0 -42
- package/dist/mutate2.d.ts.map +0 -1
- package/dist/mutate2.js +0 -88
- package/dist/query2.d.ts +0 -23
- package/dist/query2.d.ts.map +0 -1
- package/dist/query2.js +0 -97
- package/src/hooks.ts +0 -4
- package/src/makeClient2.ts +0 -353
- package/src/mutate2.ts +0 -197
- package/src/query2.ts +0 -205
package/dist/makeClient.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Cause, Effect, S } from "effect-app";
|
|
1
|
+
import { Cause, Effect, Exit, Runtime, S } from "effect-app";
|
|
3
2
|
import { type SupportedErrors } from "effect-app/client";
|
|
3
|
+
import type { RequestHandler, RequestHandlerWithInput, TaggedRequestClassAny } from "effect-app/client/clientFor";
|
|
4
4
|
import type { OperationFailure } from "effect-app/Operations";
|
|
5
|
-
import {
|
|
5
|
+
import type { Schema } from "effect-app/Schema";
|
|
6
|
+
import type { ComputedRef, Ref, ShallowRef } from "vue";
|
|
6
7
|
import type { MakeIntlReturn } from "./makeIntl.js";
|
|
7
|
-
import type {
|
|
8
|
+
import type { MutationOptions, Res } from "./mutate.js";
|
|
8
9
|
/**
|
|
9
10
|
* Use this after handling an error yourself, still continueing on the Error track, but the error will not be reported.
|
|
10
11
|
*/
|
|
@@ -12,88 +13,104 @@ export declare class SuppressErrors extends Cause.YieldableError {
|
|
|
12
13
|
readonly _tag = "SuppressErrors";
|
|
13
14
|
}
|
|
14
15
|
export type ResponseErrors = S.ParseResult.ParseError | SupportedErrors | SuppressErrors | OperationFailure;
|
|
15
|
-
export interface Opts<A, I = void> extends MutationOptions
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
export interface Opts<A, E, I = void, ESuccess = never, RSuccess = never, EError = never, RError = never, EDefect = never, RDefect = never> extends MutationOptions {
|
|
17
|
+
/** set to `undefined` to use default message */
|
|
18
|
+
successMessage?: ((a: A, i: I) => Effect<string | undefined, ESuccess, RSuccess>) | undefined;
|
|
19
|
+
/** set to `undefined` to use default message */
|
|
20
|
+
failMessage?: ((e: E, i: I) => Effect<string | undefined, EError, RError>) | undefined;
|
|
21
|
+
/** set to `undefined` to use default message */
|
|
22
|
+
defectMessage?: ((e: Cause.Cause<E>, i: I) => Effect<string | undefined, EDefect, RDefect>) | undefined;
|
|
23
|
+
}
|
|
24
|
+
export interface LowOpts<A, E, I = void, ESuccess = never, RSuccess = never, EError = never, RError = never, EDefect = never, RDefect = never> {
|
|
25
|
+
onSuccess: (a: A, i: I) => Effect<void, ESuccess, RSuccess>;
|
|
26
|
+
onFail: (e: E, i: I) => Effect<void, EError, RError>;
|
|
27
|
+
onDefect: (e: Cause.Cause<E>, i: I) => Effect<void, EDefect, RDefect>;
|
|
28
|
+
}
|
|
29
|
+
export interface LowOptsOptional<A, E, I = void, ESuccess = never, RSuccess = never, EError = never, RError = never, EDefect = never, RDefect = never> extends MutationOptions {
|
|
30
|
+
onSuccess?: (a: A, i: I) => Effect<void, ESuccess, RSuccess>;
|
|
31
|
+
onFail?: (e: E, i: I) => Effect<void, EError, RError>;
|
|
32
|
+
onDefect?: (e: Cause.Cause<E>, i: I) => Effect<void, EDefect, RDefect>;
|
|
19
33
|
}
|
|
20
|
-
/** @deprecated - use mapHandler */
|
|
21
|
-
export declare const withSuccess: {
|
|
22
|
-
<I, A, E, X, R>(self: {
|
|
23
|
-
handler: (i: I) => Effect<A, E, R>;
|
|
24
|
-
name: string;
|
|
25
|
-
}, onSuccess: (a: A, i: I) => Promise<X>): {
|
|
26
|
-
handler: (i: I) => Effect<X, E, R>;
|
|
27
|
-
name: string;
|
|
28
|
-
};
|
|
29
|
-
<A, E, X, R>(self: {
|
|
30
|
-
handler: Effect<A, E, R>;
|
|
31
|
-
name: string;
|
|
32
|
-
}, onSuccess: (_: A) => Promise<X>): {
|
|
33
|
-
handler: Effect<X, E, R>;
|
|
34
|
-
name: string;
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
/** @deprecated - use mapHandler */
|
|
38
|
-
export declare const withSuccessE: {
|
|
39
|
-
<I, E, A, E2, X, R>(self: {
|
|
40
|
-
handler: (i: I) => Effect<A, E, R>;
|
|
41
|
-
name: string;
|
|
42
|
-
}, onSuccessE: (_: A, i: I) => Effect<X, E2>): {
|
|
43
|
-
handler: (i: I) => Effect<X, E | E2, R>;
|
|
44
|
-
name: string;
|
|
45
|
-
};
|
|
46
|
-
<E, A, E2, X, R>(self: {
|
|
47
|
-
handler: Effect<A, E, R>;
|
|
48
|
-
name: string;
|
|
49
|
-
}, onSuccessE: (_: A) => Effect<X, E2>): {
|
|
50
|
-
handler: Effect<X, E | E2, R>;
|
|
51
|
-
name: string;
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
34
|
type WithAction<A> = A & {
|
|
55
35
|
action: string;
|
|
56
36
|
};
|
|
57
|
-
type Resp<I, E,
|
|
37
|
+
type Resp<I, A, E, R> = readonly [
|
|
58
38
|
ComputedRef<Res<A, E>>,
|
|
59
|
-
WithAction<(I: I) =>
|
|
39
|
+
WithAction<(I: I) => Effect<Exit<A, E>, never, R>>
|
|
60
40
|
];
|
|
61
|
-
type ActResp<E,
|
|
41
|
+
type ActResp<A, E, R> = readonly [
|
|
62
42
|
ComputedRef<Res<A, E>>,
|
|
63
|
-
WithAction<
|
|
43
|
+
WithAction<Effect<Exit<A, E>, never, R>>
|
|
64
44
|
];
|
|
65
|
-
export declare const
|
|
45
|
+
export declare const suppressToast: import("effect/Function").LazyArg<Effect.Effect<undefined, never, never>>;
|
|
46
|
+
export declare function handleRequest<E extends ResponseErrors, A, R, I = void, ESuccess = never, RSuccess = never, EError = never, RError = never, EDefect = never, RDefect = never>(f: Effect<A, E, R> | ((i: I) => Effect<A, E, R>), action: string, options: {
|
|
47
|
+
onSuccess: (a: A, i: I) => Effect<void, ESuccess, RSuccess>;
|
|
48
|
+
onFail: (e: E, i: I) => Effect<void, EError, RError>;
|
|
49
|
+
onDefect: (e: Cause.Cause<E>, i: I) => Effect<void, EDefect, RDefect>;
|
|
50
|
+
}): (Effect.Effect<Exit.Exit<A, E>, ESuccess | EError | EDefect, R | RSuccess | RError | RDefect> | ((i: I) => Effect.Effect<Exit.Exit<A, E>, ESuccess | EError | EDefect, R | RSuccess | RError | RDefect>)) & {
|
|
51
|
+
action: string;
|
|
52
|
+
};
|
|
53
|
+
export declare const makeClient2: <Locale extends string, R>(useIntl: MakeIntlReturn<Locale>["useIntl"], useToast: () => {
|
|
66
54
|
error: (message: string) => void;
|
|
67
55
|
warning: (message: string) => void;
|
|
68
56
|
success: (message: string) => void;
|
|
69
|
-
},
|
|
70
|
-
useSafeMutationWithState: <I, E, A>(self:
|
|
71
|
-
handler: (i: I) => Effect<A, E, R>;
|
|
72
|
-
name: string;
|
|
73
|
-
}) => readonly [ComputedRef<Res<A, E>>, (i: I, signal?: AbortSignal) => Promise<Either.Either<A, E>>];
|
|
57
|
+
}, runtime: ShallowRef<Runtime.Runtime<R> | undefined>, messages?: Record<string, string | undefined>) => {
|
|
58
|
+
useSafeMutationWithState: <I, E, A, Request extends TaggedRequestClassAny>(self: RequestHandlerWithInput<I, A, E, R, Request>) => readonly [ComputedRef<Res<A, E>>, (i: I) => Effect<A, E, R>];
|
|
74
59
|
useAndHandleMutation: {
|
|
75
|
-
<I, E_1 extends ResponseErrors, A_1>(self:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
<E_2 extends ResponseErrors,
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
60
|
+
<I, E_1 extends ResponseErrors, A_1, R_1, Request_1 extends TaggedRequestClassAny, ESuccess = never, RSuccess = never, EError = never, RError = never, EDefect = never, RDefect = never>(self: RequestHandlerWithInput<I, A_1, E_1, R_1, Request_1>, action: string, options?: Opts<A_1, E_1, I, ESuccess, RSuccess, EError, RError, EDefect, RDefect>): Resp<I, void, never, R_1>;
|
|
61
|
+
<E_2 extends ResponseErrors, A_2, R_2, Request_2 extends TaggedRequestClassAny, ESuccess_1 = never, RSuccess_1 = never, EError_1 = never, RError_1 = never, EDefect_1 = never, RDefect_1 = never>(self: RequestHandler<A_2, E_2, R_2, Request_2>, action: string, options?: Opts<A_2, E_2, void, ESuccess_1, RSuccess_1, EError_1, RError_1, EDefect_1, RDefect_1>): ActResp<void, never, R_2>;
|
|
62
|
+
};
|
|
63
|
+
useAndHandleMutationSilently: {
|
|
64
|
+
<I, E_2 extends ResponseErrors, A_3, R_3, Request_3 extends TaggedRequestClassAny, ESuccess_2 = never, RSuccess_2 = never, EError_2 = never, RError_2 = never, EDefect_2 = never, RDefect_2 = never>(self: RequestHandlerWithInput<I, A_3, E_2, R_3, Request_3>, action: string, options?: Opts<A_3, E_2, I, ESuccess_2, RSuccess_2, EError_2, RError_2, EDefect_2, RDefect_2>): Resp<I, void, never, R_3>;
|
|
65
|
+
<E_3 extends ResponseErrors, A_4, R_4, Request_4 extends TaggedRequestClassAny, ESuccess_3 = never, RSuccess_3 = never, EError_3 = never, RError_3 = never, EDefect_3 = never, RDefect_3 = never>(self: RequestHandler<A_4, E_3, R_4, Request_4>, action: string, options?: Opts<A_4, E_3, void, ESuccess_3, RSuccess_3, EError_3, RError_3, EDefect_3, RDefect_3>): ActResp<void, never, R_4>;
|
|
66
|
+
};
|
|
67
|
+
useAndHandleMutationCustom: {
|
|
68
|
+
<I, E_3 extends ResponseErrors, A_5, R_5, Request_5 extends TaggedRequestClassAny, ESuccess_4 = never, RSuccess_4 = never, EError_4 = never, RError_4 = never, EDefect_4 = never, RDefect_4 = never>(self: RequestHandlerWithInput<I, A_5, E_3, R_5, Request_5>, action: string, options?: LowOptsOptional<A_5, E_3, I, ESuccess_4, RSuccess_4, EError_4, RError_4, EDefect_4, RDefect_4>): Resp<I, void, never, R_5>;
|
|
69
|
+
<E_4 extends ResponseErrors, A_6, R_6, Request_6 extends TaggedRequestClassAny, ESuccess_5 = never, RSuccess_5 = never, EError_5 = never, RError_5 = never, EDefect_5 = never, RDefect_5 = never>(self: RequestHandler<A_6, E_4, R_6, Request_6>, action: string, options?: LowOptsOptional<A_6, E_4, void, ESuccess_5, RSuccess_5, EError_5, RError_5, EDefect_5, RDefect_5>): ActResp<void, never, R_6>;
|
|
83
70
|
};
|
|
84
|
-
makeUseAndHandleMutation: (
|
|
85
|
-
<I,
|
|
86
|
-
|
|
87
|
-
name: string;
|
|
88
|
-
}, action: string, options?: Opts<A_3, I>): Resp<I, A_3, E_2>;
|
|
89
|
-
<E_3 extends ResponseErrors, A_4>(self: {
|
|
90
|
-
handler: Effect<A_4, E_3, R>;
|
|
91
|
-
name: string;
|
|
92
|
-
}, action: string, options?: Opts<A_4>): ActResp<E_3, A_4>;
|
|
71
|
+
makeUseAndHandleMutation: (defaultOptions?: Opts<any, any, any, any, any, any, any, any, any>) => {
|
|
72
|
+
<I, E_4 extends ResponseErrors, A_7, R_7, Request_7 extends TaggedRequestClassAny, ESuccess_6 = never, RSuccess_6 = never, EError_6 = never, RError_6 = never, EDefect_6 = never, RDefect_6 = never>(self: RequestHandlerWithInput<I, A_7, E_4, R_7, Request_7>, action: string, options?: Opts<A_7, E_4, I, ESuccess_6, RSuccess_6, EError_6, RError_6, EDefect_6, RDefect_6>): Resp<I, A_7, E_4, R_7>;
|
|
73
|
+
<E_5 extends ResponseErrors, A_8, Request_8 extends TaggedRequestClassAny, ESuccess_7 = never, RSuccess_7 = never, EError_7 = never, RError_7 = never, EDefect_7 = never, RDefect_7 = never>(self: RequestHandler<A_8, E_5, R, Request_8>, action: string, options?: Opts<A_8, E_5, void, ESuccess_7, RSuccess_7, EError_7, RError_7, EDefect_7, RDefect_7>): ActResp<A_8, E_5, R>;
|
|
93
74
|
};
|
|
94
|
-
useHandleRequestWithToast: () => <
|
|
75
|
+
useHandleRequestWithToast: () => <E_5 extends ResponseErrors, A_9, R_8, I = void, ESuccess_8 = never, RSuccess_8 = never, EError_8 = never, RError_8 = never, EDefect_8 = never, RDefect_8 = never>(f: Effect<A_9, E_5, R_8> | ((i: I) => Effect<A_9, E_5, R_8>), action: string, options?: Opts<A_9, E_5, I, ESuccess_8, RSuccess_8, EError_8, RError_8, EDefect_8, RDefect_8>) => (Effect.Effect<Exit.Exit<A_9, E_5>, ESuccess_8 | EError_8 | EDefect_8, R_8 | RSuccess_8 | RError_8 | RDefect_8> | ((i: any) => Effect.Effect<Exit.Exit<A_9, E_5>, ESuccess_8 | EError_8 | EDefect_8, R_8 | RSuccess_8 | RError_8 | RDefect_8>)) & {
|
|
95
76
|
action: string;
|
|
96
77
|
};
|
|
78
|
+
buildFormFromSchema: <From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>, C extends Record<PropertyKey, any>, OnSubmitA>(s: Schema<To, From, R> & {
|
|
79
|
+
new (c: C): any;
|
|
80
|
+
fields: S.Struct.Fields;
|
|
81
|
+
}, state: Ref<Omit<From, "_tag">>, onSubmit: (a: To) => Effect<OnSubmitA, never, R>) => {
|
|
82
|
+
fields: { [K in keyof To]-?: {
|
|
83
|
+
true: {
|
|
84
|
+
true: To[K] extends {
|
|
85
|
+
_tag: string;
|
|
86
|
+
} ? import("./form.js").DiscriminatedUnionFieldInfo<{ [P in import("./form.js").DistributiveNestedFieldInfoKey<To[K]> as P["_infoTag" & keyof P] & string]: P; }> : import("./form.js").UnionFieldInfo<import("./form.js").DistributiveNestedFieldInfoKey<To[K]>[]>;
|
|
87
|
+
false: import("./form.js").NestedFieldInfoKey<To[K]>;
|
|
88
|
+
}[`${To[K] extends object ? true : false}`];
|
|
89
|
+
false: import("./form.js").NestedFieldInfoKey<To[K]>;
|
|
90
|
+
}[`${import("effect-app/utils").IsUnion<To[K]>}`]; };
|
|
91
|
+
/** optimized for Vuetify v-form submit callback */
|
|
92
|
+
submit: <T extends Promise<{
|
|
93
|
+
valid: boolean;
|
|
94
|
+
}>>(e: T) => Promise<OnSubmitA | undefined>;
|
|
95
|
+
/** optimized for Native form submit callback or general use */
|
|
96
|
+
submitFromState: Effect.Effect<OnSubmitA | undefined, S.ParseResult.ParseError, R>;
|
|
97
|
+
isDirty: Ref<boolean, boolean>;
|
|
98
|
+
isValid: Ref<boolean, boolean>;
|
|
99
|
+
};
|
|
100
|
+
useSafeQuery: {
|
|
101
|
+
<E_5, A_10, Request_9 extends TaggedRequestClassAny>(self: RequestHandler<A_10, E_5, R, Request_9>, options?: (import("./query.js").QueryObserverOptionsCustom<A_10, E_5, A_10, A_10, import("@tanstack/vue-query").QueryKey, never> & {
|
|
102
|
+
initialData: A_10 | import("@tanstack/vue-query").InitialDataFunction<A_10>;
|
|
103
|
+
}) | undefined): readonly [ComputedRef<import("@effect-rx/rx/Result").Result<A_10, E_5>>, ComputedRef<A_10>, (options?: import("@tanstack/vue-query").RefetchOptions) => Effect<import("@tanstack/vue-query").QueryObserverResult<A_10, import("./query.js").KnownFiberFailure<E_5>>>, import("@tanstack/vue-query").UseQueryReturnType<any, any>];
|
|
104
|
+
<Arg, E_5, A_11, Request_10 extends TaggedRequestClassAny>(self: RequestHandlerWithInput<Arg, A_11, E_5, R, Request_10>, arg: Arg | import("vue").WatchSource<Arg>, options?: (import("./query.js").QueryObserverOptionsCustom<A_11, E_5, A_11, A_11, import("@tanstack/vue-query").QueryKey, never> & {
|
|
105
|
+
initialData: A_11 | import("@tanstack/vue-query").InitialDataFunction<A_11>;
|
|
106
|
+
}) | undefined): readonly [ComputedRef<import("@effect-rx/rx/Result").Result<A_11, E_5>>, ComputedRef<A_11>, (options?: import("@tanstack/vue-query").RefetchOptions) => Effect<import("@tanstack/vue-query").QueryObserverResult<A_11, import("./query.js").KnownFiberFailure<E_5>>>, import("@tanstack/vue-query").UseQueryReturnType<any, any>];
|
|
107
|
+
<E_6, A_12, Request_11 extends TaggedRequestClassAny>(self: RequestHandler<A_12, E_6, R, Request_11>, options?: import("./query.js").QueryObserverOptionsCustom<A_12, E_6, A_12, A_12, import("@tanstack/vue-query").QueryKey, never> | undefined): readonly [ComputedRef<import("@effect-rx/rx/Result").Result<A_12, E_6>>, ComputedRef<A_12 | undefined>, (options?: import("@tanstack/vue-query").RefetchOptions) => Effect<import("@tanstack/vue-query").QueryObserverResult<A_12, import("./query.js").KnownFiberFailure<E_6>>>, import("@tanstack/vue-query").UseQueryReturnType<any, any>];
|
|
108
|
+
<Arg, E_6, A_13, Request_12 extends TaggedRequestClassAny>(self: RequestHandlerWithInput<Arg, A_13, E_6, R, Request_12>, arg: Arg | import("vue").WatchSource<Arg>, options?: import("./query.js").QueryObserverOptionsCustom<A_13, E_6, A_13, A_13, import("@tanstack/vue-query").QueryKey, never> | undefined): readonly [ComputedRef<import("@effect-rx/rx/Result").Result<A_13, E_6>>, ComputedRef<A_13 | undefined>, (options?: import("@tanstack/vue-query").RefetchOptions) => Effect<import("@tanstack/vue-query").QueryObserverResult<A_13, import("./query.js").KnownFiberFailure<E_6>>>, import("@tanstack/vue-query").UseQueryReturnType<any, any>];
|
|
109
|
+
};
|
|
110
|
+
useSafeMutation: {
|
|
111
|
+
<I_1, E_7, A_14, R_9, Request_13 extends TaggedRequestClassAny>(self: RequestHandlerWithInput<I_1, A_14, E_7, R_9, Request_13>, options?: MutationOptions): readonly [Readonly<Ref<import("./mutate.js").MutationResult<A_14, E_7>>>, (i: I_1) => Effect<A_14, E_7, R_9>];
|
|
112
|
+
<E_8, A_15, R_10, Request_14 extends TaggedRequestClassAny>(self: RequestHandler<A_15, E_8, R_10, Request_14>, options?: MutationOptions): readonly [Readonly<Ref<import("./mutate.js").MutationResult<A_15, E_8>>>, Effect<A_15, E_8, R_10>];
|
|
113
|
+
};
|
|
97
114
|
};
|
|
98
115
|
export {};
|
|
99
116
|
//# sourceMappingURL=makeClient.d.ts.map
|
package/dist/makeClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeClient.d.ts","sourceRoot":"","sources":["../src/makeClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"makeClient.d.ts","sourceRoot":"","sources":["../src/makeClient.ts"],"names":[],"mappings":"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"}
|
package/dist/makeClient.js
CHANGED
|
@@ -1,34 +1,65 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import * as Sentry from "@sentry/browser";
|
|
3
|
-
import { Cause, Effect, Match, Runtime, S } from "effect-app";
|
|
4
|
-
import {
|
|
3
|
+
import { Cause, Effect, Exit, Match, Option, Runtime, S, Struct } from "effect-app";
|
|
4
|
+
import { CauseException } from "effect-app/client";
|
|
5
|
+
import { constant, pipe, tuple } from "effect-app/Function";
|
|
5
6
|
import { OperationSuccess } from "effect-app/Operations";
|
|
6
7
|
import { dropUndefinedT } from "effect-app/utils";
|
|
7
|
-
import { computed } from "vue";
|
|
8
|
-
import {
|
|
8
|
+
import { computed, ref, watch } from "vue";
|
|
9
|
+
import { buildFieldInfoFromFieldsRoot } from "./form.js";
|
|
10
|
+
import { getRuntime } from "./lib.js";
|
|
11
|
+
import { makeMutation2, mutationResultToVue } from "./mutate.js";
|
|
12
|
+
import { makeQuery2 } from "./query.js";
|
|
9
13
|
/**
|
|
10
14
|
* Use this after handling an error yourself, still continueing on the Error track, but the error will not be reported.
|
|
11
15
|
*/
|
|
12
16
|
export class SuppressErrors extends Cause.YieldableError {
|
|
13
17
|
_tag = "SuppressErrors";
|
|
14
18
|
}
|
|
15
|
-
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
19
|
+
export const suppressToast = constant(Effect.succeed(undefined));
|
|
20
|
+
export function handleRequest(f, action, options) {
|
|
21
|
+
const handleEffect = (i) => (self) => self.pipe(Effect.exit, Effect.tap(Exit.matchEffect({
|
|
22
|
+
onSuccess: (r) => options.onSuccess(r, i),
|
|
23
|
+
onFailure: (cause) => Effect.gen(function* () {
|
|
24
|
+
if (Cause.isInterruptedOnly(cause)) {
|
|
25
|
+
console.info(`Interrupted while trying to ${action}`);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const fail = Cause.failureOption(cause);
|
|
29
|
+
if (Option.isSome(fail)) {
|
|
30
|
+
if (fail.value._tag === "SuppressErrors") {
|
|
31
|
+
console.info(`Suppressed error trying to ${action}`, fail.value);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const message = `Failure trying to ${action}`;
|
|
35
|
+
console.warn(message, fail.value);
|
|
36
|
+
Sentry.captureMessage(message, { extra: { action, error: fail.value } });
|
|
37
|
+
yield* options.onFail(fail.value, i);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const extra = {
|
|
41
|
+
action,
|
|
42
|
+
message: `Unexpected Error trying to ${action}`
|
|
43
|
+
};
|
|
44
|
+
console.error(extra.message, cause);
|
|
45
|
+
Sentry.captureException(new CauseException(cause, "defect"), { extra });
|
|
46
|
+
yield* options.onDefect(cause, i);
|
|
47
|
+
})
|
|
48
|
+
})), Effect.tapErrorCause((cause) => Effect.sync(() => {
|
|
49
|
+
const extra = {
|
|
50
|
+
action,
|
|
51
|
+
message: `Unexpected Error trying to handle errors for ${action}`
|
|
52
|
+
};
|
|
53
|
+
Sentry.captureException(new CauseException(cause, "unhandled"), { extra });
|
|
54
|
+
console.error(Cause.pretty(cause), extra);
|
|
55
|
+
})));
|
|
56
|
+
return Object.assign(Effect.isEffect(f)
|
|
57
|
+
? pipe(f, handleEffect(void 0))
|
|
58
|
+
: (i) => pipe(f(i), handleEffect(i)), { action });
|
|
59
|
+
}
|
|
60
|
+
export const makeClient2 = (useIntl, useToast, runtime, messages = {}) => {
|
|
61
|
+
const useSafeMutation = makeMutation2();
|
|
62
|
+
const useSafeQuery = makeQuery2(runtime);
|
|
32
63
|
const useHandleRequestWithToast = () => {
|
|
33
64
|
const toast = useToast();
|
|
34
65
|
const { intl } = useIntl();
|
|
@@ -37,54 +68,47 @@ export const makeClient = (useIntl, useToast, useSafeMutation, messages = {}) =>
|
|
|
37
68
|
* Pass a function that returns a Promise.
|
|
38
69
|
* Returns an execution function which reports errors as Toast.
|
|
39
70
|
*/
|
|
40
|
-
function handleRequestWithToast(f, action, options = {
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
return
|
|
46
|
-
|
|
47
|
-
|
|
71
|
+
function handleRequestWithToast(f, action, options = {}) {
|
|
72
|
+
const actionMessage = messages[action] ?? action;
|
|
73
|
+
const defaultWarnMessage = intl.value.formatMessage({ id: "handle.with_warnings" }, { action: actionMessage });
|
|
74
|
+
const defaultSuccessMessage = intl.value.formatMessage({ id: "handle.success" }, { action: actionMessage });
|
|
75
|
+
const defaultErrorMessage = intl.value.formatMessage({ id: "handle.with_errors" }, { action: actionMessage });
|
|
76
|
+
return handleRequest(f, action, {
|
|
77
|
+
onSuccess: (a, i) => Effect.gen(function* () {
|
|
78
|
+
const message = options.successMessage ? yield* options.successMessage(a, i) : defaultSuccessMessage
|
|
79
|
+
+ (S.is(OperationSuccess)(a) && a.message
|
|
80
|
+
? "\n" + a.message
|
|
81
|
+
: "");
|
|
82
|
+
if (message) {
|
|
83
|
+
toast.success(message);
|
|
84
|
+
}
|
|
85
|
+
}),
|
|
86
|
+
onFail: (e, i) => Effect.gen(function* () {
|
|
87
|
+
if (!options.failMessage && e._tag === "OperationFailure") {
|
|
88
|
+
toast.warning(defaultWarnMessage + e.message
|
|
89
|
+
? "\n" + e.message
|
|
90
|
+
: "");
|
|
48
91
|
return;
|
|
49
92
|
}
|
|
50
|
-
|
|
51
|
-
.
|
|
52
|
-
+ (
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
}, (err) => {
|
|
70
|
-
if (Cause.isInterruptedException(err)
|
|
71
|
-
|| (Runtime.isFiberFailure(err)
|
|
72
|
-
&& Cause.isInterruptedOnly(err[Runtime.FiberFailureCauseId]))) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
const extra = {
|
|
76
|
-
action,
|
|
77
|
-
message: `Unexpected Error trying to ${action}`
|
|
78
|
-
};
|
|
79
|
-
Sentry.captureException(err, {
|
|
80
|
-
extra
|
|
81
|
-
});
|
|
82
|
-
console.error(err, extra);
|
|
83
|
-
return toast.error(intl.value.formatMessage({ id: "handle.unexpected_error" }, {
|
|
84
|
-
action: message,
|
|
85
|
-
error: JSON.stringify(err, undefined, 2)
|
|
86
|
-
}));
|
|
87
|
-
})), { action });
|
|
93
|
+
const message = options.failMessage
|
|
94
|
+
? yield* options.failMessage(e, i)
|
|
95
|
+
: `${defaultErrorMessage}:\n` + renderError(e);
|
|
96
|
+
if (message) {
|
|
97
|
+
toast.error(message);
|
|
98
|
+
}
|
|
99
|
+
}),
|
|
100
|
+
onDefect: (cause, i) => Effect.gen(function* () {
|
|
101
|
+
const message = options.defectMessage
|
|
102
|
+
? yield* options.defectMessage(cause, i)
|
|
103
|
+
: intl.value.formatMessage({ id: "handle.unexpected_error" }, {
|
|
104
|
+
action: actionMessage,
|
|
105
|
+
error: Cause.pretty(cause)
|
|
106
|
+
});
|
|
107
|
+
if (message) {
|
|
108
|
+
toast.error(message);
|
|
109
|
+
}
|
|
110
|
+
})
|
|
111
|
+
});
|
|
88
112
|
}
|
|
89
113
|
function renderError(e) {
|
|
90
114
|
return Match.value(e).pipe(Match.tags({
|
|
@@ -132,42 +156,98 @@ export const makeClient = (useIntl, useToast, useSafeMutation, messages = {}) =>
|
|
|
132
156
|
}
|
|
133
157
|
};
|
|
134
158
|
/**
|
|
135
|
-
* Pass a function that returns an Effect, e.g from a client action, give it a name
|
|
136
|
-
* Returns a tuple with state ref and execution function which reports errors as Toast.
|
|
159
|
+
* Pass a function that returns an Effect, e.g from a client action, give it a name.
|
|
160
|
+
* Returns a tuple with state ref and execution function which reports success and errors as Toast.
|
|
137
161
|
*/
|
|
138
162
|
const useAndHandleMutation = (self, action, options) => {
|
|
139
163
|
const handleRequestWithToast = useHandleRequestWithToast();
|
|
140
164
|
const [a, b] = useSafeMutation({
|
|
165
|
+
...self,
|
|
141
166
|
handler: Effect.isEffect(self.handler)
|
|
142
167
|
? pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler))
|
|
143
|
-
: (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler(...args)))
|
|
144
|
-
name: self.name
|
|
168
|
+
: (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler(...args)))
|
|
145
169
|
}, options ? dropUndefinedT(options) : undefined);
|
|
146
170
|
return tuple(computed(() => mutationResultToVue(a.value)), handleRequestWithToast(b, action, options));
|
|
147
171
|
};
|
|
148
|
-
|
|
172
|
+
/**
|
|
173
|
+
* The same as @see useAndHandleMutation, but does not display any toasts by default.
|
|
174
|
+
* Messages for success, error and defect toasts can be provided in the Options.
|
|
175
|
+
*/
|
|
176
|
+
const useAndHandleMutationSilently = makeUseAndHandleMutation({
|
|
177
|
+
successMessage: suppressToast,
|
|
178
|
+
failMessage: suppressToast,
|
|
179
|
+
defectMessage: suppressToast
|
|
180
|
+
});
|
|
181
|
+
/**
|
|
182
|
+
* The same as @see useAndHandleMutation, but does not act on success, error or defect by default.
|
|
183
|
+
* Actions for success, error and defect can be provided in the Options.
|
|
184
|
+
*/
|
|
185
|
+
const useAndHandleMutationCustom = (self, action, options) => {
|
|
186
|
+
const [a, b] = useSafeMutation({
|
|
187
|
+
...self,
|
|
188
|
+
handler: Effect.isEffect(self.handler)
|
|
189
|
+
? pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler))
|
|
190
|
+
: (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler(...args)))
|
|
191
|
+
}, options ? dropUndefinedT(options) : undefined);
|
|
192
|
+
return tuple(computed(() => mutationResultToVue(a.value)), handleRequest(b, action, {
|
|
193
|
+
onSuccess: suppressToast,
|
|
194
|
+
onDefect: suppressToast,
|
|
195
|
+
onFail: suppressToast,
|
|
196
|
+
...options
|
|
197
|
+
}));
|
|
198
|
+
};
|
|
199
|
+
function makeUseAndHandleMutation(defaultOptions) {
|
|
149
200
|
return ((self, action, options) => {
|
|
150
|
-
return useAndHandleMutation({
|
|
151
|
-
handler: typeof self.handler === "function"
|
|
152
|
-
? onSuccess
|
|
153
|
-
? (i) => Effect.tap(self.handler(i), () => Effect.promise(onSuccess))
|
|
154
|
-
: self.handler
|
|
155
|
-
: onSuccess
|
|
156
|
-
? Effect.tap(self.handler, () => Effect.promise(onSuccess))
|
|
157
|
-
: self.handler,
|
|
158
|
-
name: self.name
|
|
159
|
-
}, action, { ...defaultOptions, ...options });
|
|
201
|
+
return useAndHandleMutation(self, action, { ...defaultOptions, ...options });
|
|
160
202
|
});
|
|
161
203
|
}
|
|
162
204
|
const useSafeMutationWithState = (self) => {
|
|
163
205
|
const [a, b] = useSafeMutation(self);
|
|
164
206
|
return tuple(computed(() => mutationResultToVue(a.value)), b);
|
|
165
207
|
};
|
|
208
|
+
const buildFormFromSchema = (s, state, onSubmit) => {
|
|
209
|
+
const fields = buildFieldInfoFromFieldsRoot(s).fields;
|
|
210
|
+
const schema = S.Struct(Struct.omit(s.fields, "_tag"));
|
|
211
|
+
const parse = S.decodeUnknown(schema);
|
|
212
|
+
const isDirty = ref(false);
|
|
213
|
+
const isValid = ref(true);
|
|
214
|
+
const runPromise = Runtime.runPromise(getRuntime(runtime));
|
|
215
|
+
const submit1 = (onSubmit) => async (e) => {
|
|
216
|
+
const r = await e;
|
|
217
|
+
if (!r.valid)
|
|
218
|
+
return;
|
|
219
|
+
return runPromise(onSubmit(new s(await runPromise(parse(state.value)))));
|
|
220
|
+
};
|
|
221
|
+
const submit = submit1(onSubmit);
|
|
222
|
+
watch(state, (v) => {
|
|
223
|
+
// TODO: do better
|
|
224
|
+
isDirty.value = JSON.stringify(v) !== JSON.stringify(state.value);
|
|
225
|
+
}, { deep: true });
|
|
226
|
+
const submitFromState = Effect.gen(function* () {
|
|
227
|
+
if (!isValid.value)
|
|
228
|
+
return;
|
|
229
|
+
return yield* onSubmit(yield* parse(state.value));
|
|
230
|
+
}); // () => submit(Promise.resolve({ valid: isValid.value }))
|
|
231
|
+
return {
|
|
232
|
+
fields,
|
|
233
|
+
/** optimized for Vuetify v-form submit callback */
|
|
234
|
+
submit,
|
|
235
|
+
/** optimized for Native form submit callback or general use */
|
|
236
|
+
submitFromState,
|
|
237
|
+
isDirty,
|
|
238
|
+
isValid
|
|
239
|
+
};
|
|
240
|
+
};
|
|
166
241
|
return {
|
|
167
242
|
useSafeMutationWithState,
|
|
168
243
|
useAndHandleMutation,
|
|
244
|
+
useAndHandleMutationSilently,
|
|
245
|
+
useAndHandleMutationCustom,
|
|
169
246
|
makeUseAndHandleMutation,
|
|
170
|
-
useHandleRequestWithToast
|
|
247
|
+
useHandleRequestWithToast,
|
|
248
|
+
buildFormFromSchema,
|
|
249
|
+
useSafeQuery,
|
|
250
|
+
useSafeMutation
|
|
171
251
|
};
|
|
172
252
|
};
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBRXpDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTdELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFvQixNQUFNLEtBQUssQ0FBQTtBQUdoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLEtBQUssQ0FBQyxjQUFjO0lBQzdDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQTtDQUNqQztBQVVELG1DQUFtQztBQUNuQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBcUJwQixDQUFDLElBQVMsRUFBRSxTQUFjLEVBQU8sRUFBRSxDQUFDLENBQUM7SUFDdkMsR0FBRyxJQUFJO0lBQ1AsT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVO1FBQ3pDLENBQUMsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQ1gsSUFBSSxDQUVBLElBQUksQ0FBQyxPQUdOLENBQUMsQ0FBQyxDQUFDLEVBQ0osTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFD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
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQXdCLE1BQU0sbUJBQW1CLENBQUE7QUFFeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUMxQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUVyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRWhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFdkM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLEtBQUssQ0FBQyxjQUFjO0lBQzdDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQTtDQUNqQztBQXVFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtBQUVoRSxNQUFNLFVBQVUsYUFBYSxDQVkzQixD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
|