@effect-app/vue 2.20.0 → 2.21.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 +13 -0
- package/dist/makeClient.d.ts +2 -2
- package/dist/mutate.d.ts +5 -20
- package/dist/mutate.d.ts.map +1 -1
- package/dist/mutate.js +10 -14
- package/package.json +2 -2
- package/src/mutate.ts +12 -34
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @effect-app/vue
|
|
2
2
|
|
|
3
|
+
## 2.21.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- e4153cd: replace "MutationResult" with "Result"
|
|
8
|
+
|
|
9
|
+
## 2.20.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [42e6776]
|
|
14
|
+
- effect-app@2.24.2
|
|
15
|
+
|
|
3
16
|
## 2.20.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
package/dist/makeClient.d.ts
CHANGED
|
@@ -110,8 +110,8 @@ export declare const makeClient: <Locale extends string, R>(useIntl: MakeIntlRet
|
|
|
110
110
|
<Arg, E_7, A_12, Request_12 extends TaggedRequestClassAny>(self: RequestHandlerWithInput<Arg, A_12, E_7, R, Request_12>, arg: Arg | import("vue").WatchSource<Arg>, options?: import("./query.js").QueryObserverOptionsCustom<A_12, E_7, A_12, A_12, readonly unknown[], never> | undefined): readonly [ComputedRef<import("@effect-rx/rx/Result").Result<A_12, E_7>>, ComputedRef<A_12 | undefined>, (options?: import("@tanstack/vue-query").RefetchOptions) => Effect<import("@tanstack/vue-query").QueryObserverResult<A_12, import("./query.js").KnownFiberFailure<E_7>>>, import("@tanstack/vue-query").UseQueryReturnType<any, any>];
|
|
111
111
|
};
|
|
112
112
|
useSafeMutation: {
|
|
113
|
-
<I_1, E_8, A_13, R_9, Request_13 extends TaggedRequestClassAny, A2_9 = A_13, E2_9 = E_8, R2_9 = R_9>(self: RequestHandlerWithInput<I_1, A_13, E_8, R_9, Request_13>, options?: MutationOptions<A_13, E_8, R_9, A2_9, E2_9, R2_9, I_1>): readonly [Readonly<Ref<import("
|
|
114
|
-
<E_9, A_14, R_10, Request_14 extends TaggedRequestClassAny, A2_10 = A_14, E2_10 = E_9, R2_10 = R_10>(self: RequestHandler<A_14, E_9, R_10, Request_14>, options?: MutationOptions<A_14, E_9, R_10, A2_10, E2_10, R2_10>): readonly [Readonly<Ref<import("
|
|
113
|
+
<I_1, E_8, A_13, R_9, Request_13 extends TaggedRequestClassAny, A2_9 = A_13, E2_9 = E_8, R2_9 = R_9>(self: RequestHandlerWithInput<I_1, A_13, E_8, R_9, Request_13>, options?: MutationOptions<A_13, E_8, R_9, A2_9, E2_9, R2_9, I_1>): readonly [Readonly<Ref<import("@effect-rx/rx/Result").Result<A2_9, E2_9>>>, (i: I_1) => Effect<A2_9, E2_9, R2_9>];
|
|
114
|
+
<E_9, A_14, R_10, Request_14 extends TaggedRequestClassAny, A2_10 = A_14, E2_10 = E_9, R2_10 = R_10>(self: RequestHandler<A_14, E_9, R_10, Request_14>, options?: MutationOptions<A_14, E_9, R_10, A2_10, E2_10, R2_10>): readonly [Readonly<Ref<import("@effect-rx/rx/Result").Result<A2_10, E2_10>>>, Effect<A2_10, E2_10, R2_10>];
|
|
115
115
|
};
|
|
116
116
|
};
|
|
117
117
|
export {};
|
package/dist/mutate.d.ts
CHANGED
|
@@ -1,34 +1,19 @@
|
|
|
1
1
|
import * as Result from "@effect-rx/rx/Result";
|
|
2
2
|
import type { InvalidateOptions, InvalidateQueryFilters } from "@tanstack/vue-query";
|
|
3
|
-
import { Effect } from "effect-app";
|
|
3
|
+
import { Cause, Effect } from "effect-app";
|
|
4
4
|
import type { RequestHandler, RequestHandlerWithInput, TaggedRequestClassAny } from "effect-app/client/clientFor";
|
|
5
5
|
import type { ComputedRef, Ref } from "vue";
|
|
6
6
|
export declare const getQueryKey: (h: {
|
|
7
7
|
name: string;
|
|
8
8
|
}) => string[];
|
|
9
|
-
export declare function mutationResultToVue<A, E>(mutationResult:
|
|
9
|
+
export declare function mutationResultToVue<A, E>(mutationResult: Result.Result<A, E>): Res<A, E>;
|
|
10
10
|
export interface Res<A, E> {
|
|
11
11
|
readonly loading: boolean;
|
|
12
12
|
readonly data: A | undefined;
|
|
13
|
-
readonly error: E | undefined;
|
|
13
|
+
readonly error: Cause<E> | undefined;
|
|
14
14
|
}
|
|
15
15
|
export type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T);
|
|
16
16
|
export declare function make<A, E, R>(self: Effect<A, E, R>): readonly [import("vue").ShallowRef<Result.Result<A, E>, Result.Result<A, E>>, ComputedRef<A | undefined>, Effect.Effect<Result.Success<A, E> | Result.Failure<A, E>, never, R>];
|
|
17
|
-
export interface MutationInitial {
|
|
18
|
-
readonly _tag: "Initial";
|
|
19
|
-
}
|
|
20
|
-
export interface MutationLoading {
|
|
21
|
-
readonly _tag: "Loading";
|
|
22
|
-
}
|
|
23
|
-
export interface MutationSuccess<A> {
|
|
24
|
-
readonly _tag: "Success";
|
|
25
|
-
readonly data: A;
|
|
26
|
-
}
|
|
27
|
-
export interface MutationError<E> {
|
|
28
|
-
readonly _tag: "Error";
|
|
29
|
-
readonly error: E;
|
|
30
|
-
}
|
|
31
|
-
export type MutationResult<A, E> = MutationInitial | MutationLoading | MutationSuccess<A> | MutationError<E>;
|
|
32
17
|
export type MaybeRef<T> = Ref<T> | ComputedRef<T> | T;
|
|
33
18
|
type MaybeRefDeep<T> = MaybeRef<T extends Function ? T : T extends object ? {
|
|
34
19
|
[Property in keyof T]: MaybeRefDeep<T[Property]>;
|
|
@@ -49,8 +34,8 @@ export interface MutationOptions<A, E, R, A2 = A, E2 = E, R2 = R, I = void> {
|
|
|
49
34
|
}[];
|
|
50
35
|
}
|
|
51
36
|
export declare const makeMutation: () => {
|
|
52
|
-
<I, E, A, R, Request extends TaggedRequestClassAny, A2 = A, E2 = E, R2 = R>(self: RequestHandlerWithInput<I, A, E, R, Request>, options?: MutationOptions<A, E, R, A2, E2, R2, I>): readonly [Readonly<Ref<
|
|
53
|
-
<E, A, R, Request extends TaggedRequestClassAny, A2 = A, E2 = E, R2 = R>(self: RequestHandler<A, E, R, Request>, options?: MutationOptions<A, E, R, A2, E2, R2>): readonly [Readonly<Ref<
|
|
37
|
+
<I, E, A, R, Request extends TaggedRequestClassAny, A2 = A, E2 = E, R2 = R>(self: RequestHandlerWithInput<I, A, E, R, Request>, options?: MutationOptions<A, E, R, A2, E2, R2, I>): readonly [Readonly<Ref<Result.Result<A2, E2>>>, (i: I) => Effect<A2, E2, R2>];
|
|
38
|
+
<E, A, R, Request extends TaggedRequestClassAny, A2 = A, E2 = E, R2 = R>(self: RequestHandler<A, E, R, Request>, options?: MutationOptions<A, E, R, A2, E2, R2>): readonly [Readonly<Ref<Result.Result<A2, E2>>>, Effect<A2, E2, R2>];
|
|
54
39
|
};
|
|
55
40
|
export interface MakeMutation2 extends ReturnType<typeof makeMutation> {
|
|
56
41
|
}
|
package/dist/mutate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../src/mutate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEpF,OAAO,
|
|
1
|
+
{"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../src/mutate.ts"],"names":[],"mappings":"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"}
|
package/dist/mutate.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import * as Result from "@effect-rx/rx/Result";
|
|
3
3
|
import { useQueryClient } from "@tanstack/vue-query";
|
|
4
|
-
import {
|
|
4
|
+
import { Effect, Exit, Option } from "effect-app";
|
|
5
5
|
import { tuple } from "effect-app/Function";
|
|
6
6
|
import { computed, ref, shallowRef } from "vue";
|
|
7
7
|
import { makeQueryKey, reportRuntimeError } from "./lib.js";
|
|
@@ -17,21 +17,21 @@ export const getQueryKey = (h) => {
|
|
|
17
17
|
};
|
|
18
18
|
export function mutationResultToVue(mutationResult) {
|
|
19
19
|
switch (mutationResult._tag) {
|
|
20
|
-
case "
|
|
20
|
+
case "Initial": {
|
|
21
21
|
return { loading: true, data: undefined, error: undefined };
|
|
22
22
|
}
|
|
23
23
|
case "Success": {
|
|
24
24
|
return {
|
|
25
25
|
loading: false,
|
|
26
|
-
data: mutationResult.
|
|
26
|
+
data: mutationResult.value,
|
|
27
27
|
error: undefined
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
case "
|
|
30
|
+
case "Failure": {
|
|
31
31
|
return {
|
|
32
32
|
loading: false,
|
|
33
33
|
data: undefined,
|
|
34
|
-
error: mutationResult.
|
|
34
|
+
error: mutationResult.cause
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
case "Initial": {
|
|
@@ -66,19 +66,15 @@ export const makeMutation = () => {
|
|
|
66
66
|
*/
|
|
67
67
|
const useSafeMutation = (self, options) => {
|
|
68
68
|
const queryClient = useQueryClient();
|
|
69
|
-
const state = ref(
|
|
69
|
+
const state = ref(Result.initial());
|
|
70
70
|
const invalidateQueries = (filters, options) => Effect.promise(() => queryClient.invalidateQueries(filters, options));
|
|
71
71
|
function handleExit(exit) {
|
|
72
72
|
return Effect.sync(() => {
|
|
73
73
|
if (Exit.isSuccess(exit)) {
|
|
74
|
-
state.value =
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
const err = Cause.failureOption(exit.cause);
|
|
78
|
-
if (Option.isSome(err)) {
|
|
79
|
-
state.value = { _tag: "Error", error: err.value };
|
|
74
|
+
state.value = Result.success(exit.value);
|
|
80
75
|
return;
|
|
81
76
|
}
|
|
77
|
+
state.value = Result.failure(exit.cause);
|
|
82
78
|
});
|
|
83
79
|
}
|
|
84
80
|
const invalidateCache = Effect.suspend(() => {
|
|
@@ -101,7 +97,7 @@ export const makeMutation = () => {
|
|
|
101
97
|
const mapHandler = options?.mapHandler ?? ((_) => _);
|
|
102
98
|
const handle = (self, name, i = void 0) => Effect
|
|
103
99
|
.sync(() => {
|
|
104
|
-
state.value =
|
|
100
|
+
state.value = Result.initial(true);
|
|
105
101
|
})
|
|
106
102
|
.pipe(Effect.zipRight(mapHandler(Effect.tapBoth(self, { onFailure: () => invalidateCache, onSuccess: () => invalidateCache }), i)), Effect.tapDefect(reportRuntimeError), Effect.onExit(handleExit), Effect.withSpan(`mutation ${name}`, { captureStackTrace: false }));
|
|
107
103
|
const handler = self.handler;
|
|
@@ -110,4 +106,4 @@ export const makeMutation = () => {
|
|
|
110
106
|
};
|
|
111
107
|
return useSafeMutation;
|
|
112
108
|
};
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL211dGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLE1BQU0sTUFBTSxzQkFBc0IsQ0FBQTtBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEQsT0FBTyxFQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXhELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUUzRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFtQixFQUFFLEVBQUU7SUFDakQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzNCLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUMvQyw2RkFBNkY7SUFDN0Ysb0ZBQW9GO0lBQ3BGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUNqRixJQUFJLENBQUMsQ0FBQztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEdBQUcsQ0FB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.21.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"@tanstack/vue-query": "^5.64.2",
|
|
10
10
|
"@vueuse/core": "^12.5.0",
|
|
11
11
|
"query-string": "^9.1.1",
|
|
12
|
-
"effect-app": "2.24.
|
|
12
|
+
"effect-app": "2.24.2"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
15
|
"@effect/platform": "^0.75.1",
|
package/src/mutate.ts
CHANGED
|
@@ -20,24 +20,24 @@ export const getQueryKey = (h: { name: string }) => {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export function mutationResultToVue<A, E>(
|
|
23
|
-
mutationResult:
|
|
23
|
+
mutationResult: Result.Result<A, E>
|
|
24
24
|
): Res<A, E> {
|
|
25
25
|
switch (mutationResult._tag) {
|
|
26
|
-
case "
|
|
26
|
+
case "Initial": {
|
|
27
27
|
return { loading: true, data: undefined, error: undefined }
|
|
28
28
|
}
|
|
29
29
|
case "Success": {
|
|
30
30
|
return {
|
|
31
31
|
loading: false,
|
|
32
|
-
data: mutationResult.
|
|
32
|
+
data: mutationResult.value,
|
|
33
33
|
error: undefined
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
case "
|
|
36
|
+
case "Failure": {
|
|
37
37
|
return {
|
|
38
38
|
loading: false,
|
|
39
39
|
data: undefined,
|
|
40
|
-
error: mutationResult.
|
|
40
|
+
error: mutationResult.cause
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
case "Initial": {
|
|
@@ -49,7 +49,7 @@ export function mutationResultToVue<A, E>(
|
|
|
49
49
|
export interface Res<A, E> {
|
|
50
50
|
readonly loading: boolean
|
|
51
51
|
readonly data: A | undefined
|
|
52
|
-
readonly error: E | undefined
|
|
52
|
+
readonly error: Cause<E> | undefined
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
export type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T)
|
|
@@ -72,25 +72,7 @@ export function make<A, E, R>(self: Effect<A, E, R>) {
|
|
|
72
72
|
return tuple(result, latestSuccess, execute)
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
export interface MutationInitial {
|
|
76
|
-
readonly _tag: "Initial"
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export interface MutationLoading {
|
|
80
|
-
readonly _tag: "Loading"
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export interface MutationSuccess<A> {
|
|
84
|
-
readonly _tag: "Success"
|
|
85
|
-
readonly data: A
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export interface MutationError<E> {
|
|
89
|
-
readonly _tag: "Error"
|
|
90
|
-
readonly error: E
|
|
91
|
-
}
|
|
92
75
|
|
|
93
|
-
export type MutationResult<A, E> = MutationInitial | MutationLoading | MutationSuccess<A> | MutationError<E>
|
|
94
76
|
|
|
95
77
|
export type MaybeRef<T> = Ref<T> | ComputedRef<T> | T
|
|
96
78
|
type MaybeRefDeep<T> = MaybeRef<
|
|
@@ -139,14 +121,14 @@ export const makeMutation = () => {
|
|
|
139
121
|
self: RequestHandlerWithInput<I, A, E, R, Request>,
|
|
140
122
|
options?: MutationOptions<A, E, R, A2, E2, R2, I>
|
|
141
123
|
): readonly [
|
|
142
|
-
Readonly<Ref<
|
|
124
|
+
Readonly<Ref<Result.Result<A2, E2>>>,
|
|
143
125
|
(i: I) => Effect<A2, E2, R2>
|
|
144
126
|
]
|
|
145
127
|
<E, A, R, Request extends TaggedRequestClassAny, A2 = A, E2 = E, R2 = R>(
|
|
146
128
|
self: RequestHandler<A, E, R, Request>,
|
|
147
129
|
options?: MutationOptions<A, E, R, A2, E2, R2>
|
|
148
130
|
): readonly [
|
|
149
|
-
Readonly<Ref<
|
|
131
|
+
Readonly<Ref<Result.Result<A2, E2>>>,
|
|
150
132
|
Effect<A2, E2, R2>
|
|
151
133
|
]
|
|
152
134
|
} = <I, E, A, R, Request extends TaggedRequestClassAny, A2 = A, E2 = E, R2 = R>(
|
|
@@ -154,7 +136,7 @@ export const makeMutation = () => {
|
|
|
154
136
|
options?: MutationOptions<A, E, R, A2, E2, R2, I>
|
|
155
137
|
) => {
|
|
156
138
|
const queryClient = useQueryClient()
|
|
157
|
-
const state: Ref<
|
|
139
|
+
const state: Ref<Result.Result<A2, E2>> = ref<Result.Result<A2, E2>>(Result.initial()) as any
|
|
158
140
|
|
|
159
141
|
const invalidateQueries = (
|
|
160
142
|
filters?: MaybeRefDeep<InvalidateQueryFilters>,
|
|
@@ -164,15 +146,11 @@ export const makeMutation = () => {
|
|
|
164
146
|
function handleExit(exit: Exit.Exit<A2, E2>) {
|
|
165
147
|
return Effect.sync(() => {
|
|
166
148
|
if (Exit.isSuccess(exit)) {
|
|
167
|
-
state.value =
|
|
149
|
+
state.value = Result.success(exit.value)
|
|
168
150
|
return
|
|
169
151
|
}
|
|
170
152
|
|
|
171
|
-
|
|
172
|
-
if (Option.isSome(err)) {
|
|
173
|
-
state.value = { _tag: "Error", error: err.value }
|
|
174
|
-
return
|
|
175
|
-
}
|
|
153
|
+
state.value = Result.failure(exit.cause)
|
|
176
154
|
})
|
|
177
155
|
}
|
|
178
156
|
|
|
@@ -207,7 +185,7 @@ export const makeMutation = () => {
|
|
|
207
185
|
const handle = (self: Effect<A, E, R>, name: string, i: I | void = void 0) =>
|
|
208
186
|
Effect
|
|
209
187
|
.sync(() => {
|
|
210
|
-
state.value =
|
|
188
|
+
state.value = Result.initial(true)
|
|
211
189
|
})
|
|
212
190
|
.pipe(
|
|
213
191
|
Effect.zipRight(
|