@effect-app/vue 4.0.0-beta.0 → 4.0.0-beta.10
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 +77 -0
- package/dist/experimental/commander.d.ts +3 -3
- package/dist/experimental/commander.d.ts.map +1 -1
- package/dist/experimental/commander.js +3 -3
- package/dist/form.d.ts +2 -3
- package/dist/form.d.ts.map +1 -1
- package/dist/form.js +1 -1
- package/dist/lib.d.ts +1 -1
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +2 -2
- package/dist/makeClient.d.ts +8 -8
- package/dist/makeClient.d.ts.map +1 -1
- package/dist/makeClient.js +4 -4
- package/dist/mutate.d.ts +5 -5
- package/dist/mutate.d.ts.map +1 -1
- package/dist/mutate.js +11 -11
- package/dist/query.d.ts +10 -10
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +13 -13
- package/package.json +8 -9
- package/src/experimental/commander.ts +4 -4
- package/src/form.ts +6 -7
- package/src/lib.ts +1 -1
- package/src/makeClient.ts +11 -11
- package/src/mutate.ts +13 -13
- package/src/query.ts +28 -28
- package/test/Mutation.test.ts +13 -13
- package/test/dist/stubs.d.ts +17 -13
- package/test/dist/stubs.d.ts.map +1 -1
package/dist/mutate.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import * as Result from "@effect-atom/atom/Result";
|
|
3
2
|
import { useQueryClient } from "@tanstack/vue-query";
|
|
4
3
|
import { Effect, Option } from "effect-app";
|
|
5
4
|
import { tuple } from "effect-app/Function";
|
|
5
|
+
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
6
6
|
import { computed, shallowRef } from "vue";
|
|
7
7
|
import { makeQueryKey } from "./lib.js";
|
|
8
8
|
export const getQueryKey = (h) => {
|
|
@@ -37,13 +37,13 @@ export function mutationResultToVue(mutationResult) {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
export function make(self) {
|
|
40
|
-
const result = shallowRef(
|
|
40
|
+
const result = shallowRef(AsyncResult.initial());
|
|
41
41
|
const execute = Effect
|
|
42
42
|
.sync(() => {
|
|
43
|
-
result.value =
|
|
43
|
+
result.value = AsyncResult.waiting(result.value);
|
|
44
44
|
})
|
|
45
|
-
.pipe(Effect.andThen(self), Effect.exit, Effect.map(
|
|
46
|
-
const latestSuccess = computed(() => Option.getOrUndefined(
|
|
45
|
+
.pipe(Effect.andThen(self), Effect.exit, Effect.map(AsyncResult.fromExit), Effect.flatMap((r) => Effect.sync(() => result.value = r)));
|
|
46
|
+
const latestSuccess = computed(() => Option.getOrUndefined(AsyncResult.value(result.value)));
|
|
47
47
|
return tuple(result, latestSuccess, execute);
|
|
48
48
|
}
|
|
49
49
|
// TODO: more efficient invalidation, including args etc
|
|
@@ -57,18 +57,18 @@ export function make(self) {
|
|
|
57
57
|
// }
|
|
58
58
|
*/
|
|
59
59
|
export const asResult = (handler) => {
|
|
60
|
-
const state = shallowRef(
|
|
60
|
+
const state = shallowRef(AsyncResult.initial());
|
|
61
61
|
const act = Effect.isEffect(handler)
|
|
62
62
|
? Effect
|
|
63
63
|
.sync(() => {
|
|
64
|
-
state.value =
|
|
64
|
+
state.value = AsyncResult.initial(true);
|
|
65
65
|
})
|
|
66
|
-
.pipe(Effect.andThen(Effect.suspend(() => handler.pipe(Effect.exit, Effect.tap((exit) => Effect.sync(() => (state.value =
|
|
66
|
+
.pipe(Effect.andThen(Effect.suspend(() => handler.pipe(Effect.exit, Effect.tap((exit) => Effect.sync(() => (state.value = AsyncResult.fromExit(exit))))))))
|
|
67
67
|
: (...args) => Effect
|
|
68
68
|
.sync(() => {
|
|
69
|
-
state.value =
|
|
69
|
+
state.value = AsyncResult.initial(true);
|
|
70
70
|
})
|
|
71
|
-
.pipe(Effect.andThen(Effect.suspend(() => handler(...args).pipe(Effect.exit, Effect.tap((exit) => Effect.sync(() => (state.value =
|
|
71
|
+
.pipe(Effect.andThen(Effect.suspend(() => handler(...args).pipe(Effect.exit, Effect.tap((exit) => Effect.sync(() => (state.value = AsyncResult.fromExit(exit))))))));
|
|
72
72
|
return tuple(computed(() => state.value), act);
|
|
73
73
|
};
|
|
74
74
|
export const invalidateQueries = (queryClient, self, options) => {
|
|
@@ -117,4 +117,4 @@ export const useMakeMutation = () => {
|
|
|
117
117
|
};
|
|
118
118
|
return useMutation;
|
|
119
119
|
};
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL211dGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUF5RSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzSCxPQUFPLEVBQWMsTUFBTSxFQUFhLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUdsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDM0MsT0FBTyxLQUFLLFdBQVcsTUFBTSx3Q0FBd0MsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFvQixVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUV2QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUE2QyxFQUFFLEVBQUU7SUFDM0UsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzNCLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUMvQyw2RkFBNkY7SUFDN0Ysb0ZBQW9GO0lBQ3BGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUNqRixJQUFJLENBQUMsQ0FBQztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZELE9B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
|
package/dist/query.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as Result from "@effect-atom/atom/Result";
|
|
2
1
|
import { type DefaultError, type Enabled, type InitialDataFunction, type NonUndefinedGuard, type PlaceholderDataFunction, type QueryKey, type QueryObserverOptions, type QueryObserverResult, type RefetchOptions, type UseQueryDefinedReturnType, type UseQueryReturnType } from "@tanstack/vue-query";
|
|
3
2
|
import { Cause, Effect, type ServiceMap } from "effect-app";
|
|
4
3
|
import { type Req } from "effect-app/client";
|
|
5
4
|
import type { RequestHandler, RequestHandlerWithInput } from "effect-app/client/clientFor";
|
|
5
|
+
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
6
6
|
import { type ComputedRef, type MaybeRefOrGetter, type WatchSource } from "vue";
|
|
7
7
|
export interface CustomUseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends Omit<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, "queryKey" | "queryFn" | "initialData" | "enabled" | "placeholderData"> {
|
|
8
8
|
enabled?: MaybeRefOrGetter<boolean | undefined> | (() => Enabled<TQueryFnData, TError, TQueryData, TQueryKey>);
|
|
@@ -30,34 +30,34 @@ export declare const makeQuery: <R>(getRuntime: () => ServiceMap.ServiceMap<R>)
|
|
|
30
30
|
/**
|
|
31
31
|
* Effect results are passed to the caller, including errors.
|
|
32
32
|
*/
|
|
33
|
-
<TData = A>(options: CustomDefinedInitialQueryOptions<A, KnownFiberFailure<E>, TData>): readonly [ComputedRef<
|
|
34
|
-
<TData = A>(options: CustomDefinedPlaceholderQueryOptions<A, E, TData>): readonly [ComputedRef<
|
|
33
|
+
<TData = A>(options: CustomDefinedInitialQueryOptions<A, KnownFiberFailure<E>, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, KnownFiberFailure<E>>>, UseQueryReturnType<any, any>];
|
|
34
|
+
<TData = A>(options: CustomDefinedPlaceholderQueryOptions<A, E, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, KnownFiberFailure<E>>, never, never>, UseQueryDefinedReturnType<TData, KnownFiberFailure<E>>];
|
|
35
35
|
/**
|
|
36
36
|
* Effect results are passed to the caller, including errors.
|
|
37
37
|
*/
|
|
38
|
-
<TData = A>(options?: CustomUndefinedInitialQueryOptions<A, KnownFiberFailure<E>, TData>): readonly [ComputedRef<
|
|
38
|
+
<TData = A>(options?: CustomUndefinedInitialQueryOptions<A, KnownFiberFailure<E>, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<A, E>>, ComputedRef<A | undefined>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, KnownFiberFailure<E>>>, UseQueryReturnType<any, any>];
|
|
39
39
|
};
|
|
40
40
|
<Arg, E, A_1, Request_1 extends Req, Name_1 extends string>(self: RequestHandlerWithInput<Arg, A_1, E, R, Request_1, Name_1>): {
|
|
41
41
|
/**
|
|
42
42
|
* Effect results are passed to the caller, including errors.
|
|
43
43
|
*/
|
|
44
|
-
<TData = A_1>(arg: Arg | WatchSource<Arg>, options: CustomDefinedInitialQueryOptions<A_1, KnownFiberFailure<E>, TData>): readonly [ComputedRef<
|
|
44
|
+
<TData = A_1>(arg: Arg | WatchSource<Arg>, options: CustomDefinedInitialQueryOptions<A_1, KnownFiberFailure<E>, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, KnownFiberFailure<E>>>, UseQueryReturnType<any, any>];
|
|
45
45
|
/**
|
|
46
46
|
* Effect results are passed to the caller, including errors.
|
|
47
47
|
*/
|
|
48
|
-
<TData = A_1>(arg: Arg | WatchSource<Arg>, options: CustomDefinedPlaceholderQueryOptions<A_1, KnownFiberFailure<E>, TData>): readonly [ComputedRef<
|
|
48
|
+
<TData = A_1>(arg: Arg | WatchSource<Arg>, options: CustomDefinedPlaceholderQueryOptions<A_1, KnownFiberFailure<E>, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, KnownFiberFailure<E>>>, UseQueryReturnType<any, any>];
|
|
49
49
|
/**
|
|
50
50
|
* Effect results are passed to the caller, including errors.
|
|
51
51
|
*/
|
|
52
|
-
<TData = A_1>(arg: Arg | WatchSource<Arg>, options?: CustomUndefinedInitialQueryOptions<A_1, KnownFiberFailure<E>, TData>): readonly [ComputedRef<
|
|
52
|
+
<TData = A_1>(arg: Arg | WatchSource<Arg>, options?: CustomUndefinedInitialQueryOptions<A_1, KnownFiberFailure<E>, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData | undefined>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, KnownFiberFailure<E>>>, UseQueryReturnType<any, any>];
|
|
53
53
|
};
|
|
54
54
|
};
|
|
55
55
|
export interface MakeQuery2<R> extends ReturnType<typeof makeQuery<R>> {
|
|
56
56
|
}
|
|
57
|
-
export declare function composeQueries<R extends Record<string,
|
|
58
|
-
[Property in keyof R]: R[Property] extends
|
|
57
|
+
export declare function composeQueries<R extends Record<string, AsyncResult.AsyncResult<any, any>>>(results: R, renderPreviousOnFailure?: boolean): AsyncResult.AsyncResult<{
|
|
58
|
+
[Property in keyof R]: R[Property] extends AsyncResult.AsyncResult<infer A, any> ? A : never;
|
|
59
59
|
}, {
|
|
60
|
-
[Property in keyof R]: R[Property] extends
|
|
60
|
+
[Property in keyof R]: R[Property] extends AsyncResult.AsyncResult<any, infer E> ? E : never;
|
|
61
61
|
}[keyof R]>;
|
|
62
62
|
export declare const useUpdateQuery: () => {
|
|
63
63
|
<A>(query: RequestHandler<A, any, any, any, any>, updater: (data: NoInfer<A>) => NoInfer<A>): void;
|
package/dist/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/query.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
5
|
-
import * as Result from "@effect-atom/atom/Result";
|
|
6
5
|
import { useQuery as useTanstackQuery, useQueryClient } from "@tanstack/vue-query";
|
|
7
6
|
import { Array, Cause, Effect, Exit, flow, Option, S } from "effect-app";
|
|
8
7
|
import { ServiceUnavailableError } from "effect-app/client/errors";
|
|
9
8
|
import { isHttpClientError } from "effect/unstable/http/HttpClientError";
|
|
9
|
+
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
10
10
|
import { computed, ref, shallowRef, watch } from "vue";
|
|
11
11
|
import { makeQueryKey, reportRuntimeError } from "./lib.js";
|
|
12
12
|
export class KnownFiberFailure extends Error {
|
|
@@ -77,7 +77,7 @@ export const makeQuery = (getRuntime) => {
|
|
|
77
77
|
isValidating: r.isFetching.value
|
|
78
78
|
}));
|
|
79
79
|
// not using `computed` here as we have a circular dependency
|
|
80
|
-
watch(result, (value) => latestSuccess.value = Option.getOrUndefined(
|
|
80
|
+
watch(result, (value) => latestSuccess.value = Option.getOrUndefined(AsyncResult.value(value)), { immediate: true });
|
|
81
81
|
return [
|
|
82
82
|
result,
|
|
83
83
|
computed(() => latestSuccess.value),
|
|
@@ -90,15 +90,15 @@ export const makeQuery = (getRuntime) => {
|
|
|
90
90
|
};
|
|
91
91
|
function swrToQuery(r) {
|
|
92
92
|
if (r.error !== undefined) {
|
|
93
|
-
return
|
|
94
|
-
previous: r.data === undefined ? Option.none() : Option.some(
|
|
93
|
+
return AsyncResult.failureWithPrevious(r.error.effectCause, {
|
|
94
|
+
previous: r.data === undefined ? Option.none() : Option.some(AsyncResult.success(r.data)),
|
|
95
95
|
waiting: r.isValidating
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
98
|
if (r.data !== undefined) {
|
|
99
|
-
return
|
|
99
|
+
return AsyncResult.success(r.data, { waiting: r.isValidating });
|
|
100
100
|
}
|
|
101
|
-
return
|
|
101
|
+
return AsyncResult.initial(r.isValidating);
|
|
102
102
|
}
|
|
103
103
|
const useQuery = (self) => {
|
|
104
104
|
const q = useQuery_(self);
|
|
@@ -109,15 +109,15 @@ export const makeQuery = (getRuntime) => {
|
|
|
109
109
|
return useQuery;
|
|
110
110
|
};
|
|
111
111
|
function orPrevious(result) {
|
|
112
|
-
return
|
|
113
|
-
?
|
|
112
|
+
return AsyncResult.isFailure(result) && Option.isSome(result.previousSuccess)
|
|
113
|
+
? AsyncResult.success(result.previousSuccess.value, { waiting: result.waiting })
|
|
114
114
|
: result;
|
|
115
115
|
}
|
|
116
116
|
export function composeQueries(results, renderPreviousOnFailure) {
|
|
117
117
|
const values = renderPreviousOnFailure
|
|
118
118
|
? Object.values(results).map(orPrevious)
|
|
119
119
|
: Object.values(results);
|
|
120
|
-
const error = values.find(
|
|
120
|
+
const error = values.find(AsyncResult.isFailure);
|
|
121
121
|
if (error) {
|
|
122
122
|
return error;
|
|
123
123
|
}
|
|
@@ -125,16 +125,16 @@ export function composeQueries(results, renderPreviousOnFailure) {
|
|
|
125
125
|
if (initial.value !== undefined) {
|
|
126
126
|
return initial.value;
|
|
127
127
|
}
|
|
128
|
-
const loading = Array.findFirst(values, (x) =>
|
|
128
|
+
const loading = Array.findFirst(values, (x) => AsyncResult.isInitial(x) && x.waiting ? Option.some(x) : Option.none());
|
|
129
129
|
if (loading.value !== undefined) {
|
|
130
130
|
return loading.value;
|
|
131
131
|
}
|
|
132
132
|
const isRefreshing = values.some((x) => x.waiting);
|
|
133
133
|
const r = Object.entries(results).reduce((prev, [key, value]) => {
|
|
134
|
-
prev[key] =
|
|
134
|
+
prev[key] = AsyncResult.value(value).value;
|
|
135
135
|
return prev;
|
|
136
136
|
}, {});
|
|
137
|
-
return
|
|
137
|
+
return AsyncResult.success(r, { waiting: isRefreshing });
|
|
138
138
|
}
|
|
139
139
|
export const useUpdateQuery = () => {
|
|
140
140
|
const queryClient = useQueryClient();
|
|
@@ -153,4 +153,4 @@ export const useUpdateQuery = () => {
|
|
|
153
153
|
};
|
|
154
154
|
return f;
|
|
155
155
|
};
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELE9BQU8sRUFBNE0sUUFBUSxJQUFJLGdCQUFnQixFQUFFLGNBQWMsRUFBMkQsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyVixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFtQixNQUFNLFlBQVksQ0FBQTtBQUd6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN4RSxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQTJDLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFvQixNQUFNLEtBQUssQ0FBQTtBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBK0QzRCxNQUFNLE9BQU8saUJBQXFCLFNBQVEsS0FBSztJQUUxQjtJQURWLEtBQUssQ0FBUztJQUN2QixZQUFtQixXQUEyQjtRQUM1QyxLQUFLLENBQUMsMkJBQTJCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBRDdDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUU1QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDeEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUksVUFBMEMsRUFBRSxFQUFFO0lBQ3pFLE1BQU0sU0FBUyxHQW9DWCxDQUNGLENB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.10",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
|
|
@@ -11,18 +11,17 @@
|
|
|
11
11
|
"@vueuse/core": "^14.2.1",
|
|
12
12
|
"change-case": "^5.4.4",
|
|
13
13
|
"query-string": "^9.3.1",
|
|
14
|
-
"effect-app": "4.0.0-beta.
|
|
14
|
+
"effect-app": "4.0.0-beta.10"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@effect
|
|
18
|
-
"@effect
|
|
19
|
-
"@
|
|
20
|
-
"
|
|
21
|
-
"effect": "^4.0.0-beta.25",
|
|
17
|
+
"@effect/atom-vue": "^4.0.0-beta.27",
|
|
18
|
+
"@effect/platform-browser": "^4.0.0-beta.27",
|
|
19
|
+
"@sentry/browser": "^10.42.0",
|
|
20
|
+
"effect": "^4.0.0-beta.27",
|
|
22
21
|
"vue": "^3.5.29"
|
|
23
22
|
},
|
|
24
23
|
"devDependencies": {
|
|
25
|
-
"@effect/vitest": "^4.0.0-beta.
|
|
24
|
+
"@effect/vitest": "^4.0.0-beta.27",
|
|
26
25
|
"@formatjs/icu-messageformat-parser": "^3.5.1",
|
|
27
26
|
"@types/node": "25.3.3",
|
|
28
27
|
"@vitejs/plugin-vue": "^6.0.4",
|
|
@@ -31,7 +30,7 @@
|
|
|
31
30
|
"typescript": "~5.9.3",
|
|
32
31
|
"vite": "^7.3.1",
|
|
33
32
|
"vitest": "^4.0.18",
|
|
34
|
-
"@effect-app/eslint-shared-config": "0.5.7-beta.
|
|
33
|
+
"@effect-app/eslint-shared-config": "0.5.7-beta.2"
|
|
35
34
|
},
|
|
36
35
|
"typesVersions": {
|
|
37
36
|
"*": {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { asResult, type MissingDependencies, reportRuntimeError } from "@effect-app/vue"
|
|
3
3
|
import { reportMessage } from "@effect-app/vue/errorReporter"
|
|
4
|
-
import { type
|
|
5
|
-
import { Cause, Effect, type Exit, type Fiber, flow, Layer, Match, MutableHashMap, Option, S, ServiceMap } from "effect-app"
|
|
4
|
+
import { Cause, Effect, type Exit, type Fiber, flow, Layer, Match, MutableHashMap, Option, Predicate, S, ServiceMap } from "effect-app"
|
|
6
5
|
import { SupportedErrors } from "effect-app/client"
|
|
7
6
|
import { OperationFailure, OperationSuccess } from "effect-app/Operations"
|
|
8
7
|
import { wrapEffect } from "effect-app/utils"
|
|
8
|
+
import { type AsyncResult } from "effect/unstable/reactivity/AsyncResult"
|
|
9
9
|
import { isGeneratorFunction } from "effect/Utils"
|
|
10
10
|
import { type FormatXMLElementFn, type PrimitiveType } from "intl-messageformat"
|
|
11
11
|
import { computed, type ComputedRef, reactive, ref } from "vue"
|
|
@@ -139,7 +139,7 @@ export declare namespace Commander {
|
|
|
139
139
|
/** reactive */
|
|
140
140
|
label: string
|
|
141
141
|
/** reactive */
|
|
142
|
-
result:
|
|
142
|
+
result: AsyncResult<A, E>
|
|
143
143
|
/** reactive */
|
|
144
144
|
waiting: boolean
|
|
145
145
|
/** reactive */
|
|
@@ -1714,7 +1714,7 @@ export class CommanderImpl<RT, RTHooks> {
|
|
|
1714
1714
|
_id,
|
|
1715
1715
|
options?
|
|
1716
1716
|
) => {
|
|
1717
|
-
const isObject =
|
|
1717
|
+
const isObject = Predicate.isObjectKeyword(_id)
|
|
1718
1718
|
const id = isObject ? _id.id : _id
|
|
1719
1719
|
const baseInfo = makeBaseInfo(id, options)
|
|
1720
1720
|
const idCmd = this.makeCommand(id, options)
|
package/src/form.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createIntl, type IntlFormatters } from "@formatjs/intl"
|
|
2
2
|
import type {} from "intl-messageformat"
|
|
3
3
|
import { Cause, Exit, Option, pipe, S } from "effect-app"
|
|
4
|
-
import type { Schema } from "effect-app/Schema"
|
|
5
4
|
import type { Unbranded } from "effect-app/Schema/brand"
|
|
6
5
|
import type { IsUnion } from "effect-app/utils"
|
|
7
6
|
import { capitalize, ref } from "vue"
|
|
@@ -122,7 +121,7 @@ function handlePropertySignature(
|
|
|
122
121
|
switch (schema.ast._tag) {
|
|
123
122
|
case "Objects": {
|
|
124
123
|
return buildFieldInfoFromFieldsRoot(
|
|
125
|
-
schema as S.
|
|
124
|
+
schema as S.Codec<Record<PropertyKey, any>>
|
|
126
125
|
)
|
|
127
126
|
}
|
|
128
127
|
case "Union": {
|
|
@@ -194,7 +193,7 @@ export function buildFieldInfoFromFields<
|
|
|
194
193
|
From extends Record<PropertyKey, any>,
|
|
195
194
|
To extends Record<PropertyKey, any>
|
|
196
195
|
>(
|
|
197
|
-
schema: (
|
|
196
|
+
schema: (S.Codec<To, From>) & { fields?: S.Struct.Fields }
|
|
198
197
|
) {
|
|
199
198
|
return buildFieldInfoFromFieldsRoot(schema).fields
|
|
200
199
|
}
|
|
@@ -204,7 +203,7 @@ export function buildFieldInfoFromFieldsRoot<
|
|
|
204
203
|
To extends Record<PropertyKey, any>,
|
|
205
204
|
R
|
|
206
205
|
>(
|
|
207
|
-
schema: (
|
|
206
|
+
schema: (S.Codec<To, From, R>) & { fields?: S.Struct.Fields }
|
|
208
207
|
): NestedFieldInfo<To> {
|
|
209
208
|
const ast = getObjectsAST(schema.ast)
|
|
210
209
|
|
|
@@ -245,9 +244,9 @@ function buildFieldInfo(
|
|
|
245
244
|
property: S.AST.PropertySignature
|
|
246
245
|
): FieldInfo<any> {
|
|
247
246
|
const propertyKey = property.name
|
|
248
|
-
const schema = S.make<S.
|
|
247
|
+
const schema = S.make<S.Codec<unknown>>(property.type)
|
|
249
248
|
const metadata = getMetadataFromSchema(property.type)
|
|
250
|
-
const parse = S.decodeUnknownExit(schema as S.
|
|
249
|
+
const parse = S.decodeUnknownExit(schema as S.Codec<unknown> & { readonly DecodingServices: never })
|
|
251
250
|
|
|
252
251
|
const nullableOrUndefined = S.AST.isUnion(property.type)
|
|
253
252
|
&& (property.type.types.includes(S.Null.ast) || property.type.types.some((_) => _._tag === "Undefined"))
|
|
@@ -419,7 +418,7 @@ export function getMetadataFromSchema(
|
|
|
419
418
|
|
|
420
419
|
let jschema: any
|
|
421
420
|
try {
|
|
422
|
-
const doc = S.toJsonSchemaDocument(S.make<S.
|
|
421
|
+
const doc = S.toJsonSchemaDocument(S.make<S.Codec<unknown>>(realSelf))
|
|
423
422
|
jschema = doc.schema as any
|
|
424
423
|
const defs = doc.definitions as Record<string, any>
|
|
425
424
|
// resolve $ref against definitions
|
package/src/lib.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { isHttpClientError } from "effect/unstable/http/HttpClientError"
|
|
|
6
6
|
import type { MaybeRefOrGetter } from "vue"
|
|
7
7
|
import { reportError } from "./errorReporter.js"
|
|
8
8
|
|
|
9
|
-
export * as
|
|
9
|
+
export * as AsyncResult from "effect/unstable/reactivity/AsyncResult"
|
|
10
10
|
|
|
11
11
|
const reportRuntimeError_ = reportError("Runtime")
|
|
12
12
|
|
package/src/makeClient.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import * as Result from "@effect-atom/atom/Result"
|
|
3
2
|
import { type InvalidateOptions, type InvalidateQueryFilters, isCancelledError, type QueryObserverResult, type RefetchOptions, type UseQueryReturnType } from "@tanstack/vue-query"
|
|
4
3
|
import { camelCase } from "change-case"
|
|
5
4
|
import { Cause, Data, Effect, Exit, Layer, type ManagedRuntime, Match, Option, S, ServiceMap, Struct } from "effect-app"
|
|
@@ -10,6 +9,7 @@ import { constant, identity, pipe, tuple } from "effect-app/Function"
|
|
|
10
9
|
import { type OperationFailure, OperationSuccess } from "effect-app/Operations"
|
|
11
10
|
import { dropUndefinedT, extendM } from "effect-app/utils"
|
|
12
11
|
import { type Fiber } from "effect/Fiber"
|
|
12
|
+
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"
|
|
13
13
|
import { computed, type ComputedRef, onBeforeUnmount, type Ref, ref, watch, type WatchSource } from "vue"
|
|
14
14
|
import { reportMessage } from "./errorReporter.js"
|
|
15
15
|
import { type Commander, CommanderStatic } from "./experimental/commander.js"
|
|
@@ -411,7 +411,7 @@ export class LegacyMutationImpl<RT> {
|
|
|
411
411
|
self: RequestHandlerWithInput<I, A, E, R, Request, Name>,
|
|
412
412
|
options?: MutationOptions<A, E, R, A2, E2, R2, I>
|
|
413
413
|
): readonly [
|
|
414
|
-
ComputedRef<
|
|
414
|
+
ComputedRef<AsyncResult.AsyncResult<A2, E2>>,
|
|
415
415
|
(i: I) => Effect.Effect<Exit.Exit<A2, E2>, never, R2>
|
|
416
416
|
]
|
|
417
417
|
/**
|
|
@@ -423,7 +423,7 @@ export class LegacyMutationImpl<RT> {
|
|
|
423
423
|
self: RequestHandler<A, E, R, Request, Name>,
|
|
424
424
|
options?: MutationOptions<A, E, R, A2, E2, R2>
|
|
425
425
|
): readonly [
|
|
426
|
-
ComputedRef<
|
|
426
|
+
ComputedRef<AsyncResult.AsyncResult<A2, E2>>,
|
|
427
427
|
Effect.Effect<Exit.Exit<A2, E2>, never, R2>
|
|
428
428
|
]
|
|
429
429
|
} = <I, E, A, R, Request extends Req, Name extends string, A2 = A, E2 = E, R2 = R>(
|
|
@@ -617,7 +617,7 @@ export class LegacyMutationImpl<RT> {
|
|
|
617
617
|
self: RequestHandlerWithInput<I, A, E, R, Request, Name>,
|
|
618
618
|
action: string,
|
|
619
619
|
options?: Opts<A, E, R, I, A2, E2, R2, ESuccess, RSuccess, EError, RError, EDefect, RDefect>
|
|
620
|
-
): Resp<I, A2, E2, R2, ComputedRef<
|
|
620
|
+
): Resp<I, A2, E2, R2, ComputedRef<AsyncResult.AsyncResult<A2, E2>>>
|
|
621
621
|
/**
|
|
622
622
|
* Pass a function that returns an Effect, e.g from a client action, give it a name.
|
|
623
623
|
* Returns a tuple with raw Result and execution function which reports success and errors as Toast.
|
|
@@ -642,7 +642,7 @@ export class LegacyMutationImpl<RT> {
|
|
|
642
642
|
self: RequestHandler<A, E, R, Request, Name>,
|
|
643
643
|
action: string,
|
|
644
644
|
options?: Opts<A, E, R, void, A2, E2, R2, ESuccess, RSuccess, EError, RError, EDefect, RDefect>
|
|
645
|
-
): ActResp<A2, E2, R2, ComputedRef<
|
|
645
|
+
): ActResp<A2, E2, R2, ComputedRef<AsyncResult.AsyncResult<A2, E2>>>
|
|
646
646
|
} = <E extends ResponseErrors, A, R, Request extends Req, Name extends string, I>(
|
|
647
647
|
self: RequestHandlerWithInput<I, A, E, R, Request, Name> | RequestHandler<A, E, R, Request, Name>,
|
|
648
648
|
action: any,
|
|
@@ -1010,13 +1010,13 @@ export class LegacyMutationImpl<RT> {
|
|
|
1010
1010
|
OnSubmitA
|
|
1011
1011
|
>(
|
|
1012
1012
|
s:
|
|
1013
|
-
& S.
|
|
1013
|
+
& S.Codec<To>
|
|
1014
1014
|
& { new(c: C): any; extend: any; fields: S.Struct.Fields },
|
|
1015
1015
|
state: Ref<Omit<From, "_tag">>,
|
|
1016
1016
|
onSubmit: (a: To) => Effect.Effect<OnSubmitA, never, RT>
|
|
1017
1017
|
) => {
|
|
1018
1018
|
const fields = buildFieldInfoFromFieldsRoot(s).fields
|
|
1019
|
-
const schema = S.Struct(Struct.omit(s.fields, ["_tag"])) as unknown as S.
|
|
1019
|
+
const schema = S.Struct(Struct.omit(s.fields, ["_tag"])) as unknown as S.Codec<any> & {
|
|
1020
1020
|
readonly DecodingServices: never
|
|
1021
1021
|
}
|
|
1022
1022
|
const parse = S.decodeUnknownSync(schema)
|
|
@@ -1121,7 +1121,7 @@ export class QueryImpl<R> {
|
|
|
1121
1121
|
*/
|
|
1122
1122
|
<TData = A>(options?: CustomUndefinedInitialQueryOptions<A, E, TData>): Promise<
|
|
1123
1123
|
readonly [
|
|
1124
|
-
ComputedRef<
|
|
1124
|
+
ComputedRef<AsyncResult.AsyncResult<TData, E>>,
|
|
1125
1125
|
ComputedRef<TData>,
|
|
1126
1126
|
(
|
|
1127
1127
|
options?: RefetchOptions
|
|
@@ -1151,7 +1151,7 @@ export class QueryImpl<R> {
|
|
|
1151
1151
|
*/
|
|
1152
1152
|
<TData = A>(arg: Arg | WatchSource<Arg>, options?: CustomUndefinedInitialQueryOptions<A, E, TData>): Promise<
|
|
1153
1153
|
readonly [
|
|
1154
|
-
ComputedRef<
|
|
1154
|
+
ComputedRef<AsyncResult.AsyncResult<TData, E>>,
|
|
1155
1155
|
ComputedRef<TData>,
|
|
1156
1156
|
(
|
|
1157
1157
|
options?: RefetchOptions
|
|
@@ -1189,7 +1189,7 @@ export class QueryImpl<R> {
|
|
|
1189
1189
|
return yield* Effect.interrupt
|
|
1190
1190
|
}
|
|
1191
1191
|
const result = resultRef.value
|
|
1192
|
-
if (
|
|
1192
|
+
if (AsyncResult.isInitial(result)) {
|
|
1193
1193
|
console.error("Internal Error: Promise should be resolved already", {
|
|
1194
1194
|
self,
|
|
1195
1195
|
argOrOptions,
|
|
@@ -1201,7 +1201,7 @@ export class QueryImpl<R> {
|
|
|
1201
1201
|
"Internal Error: Promise should be resolved already"
|
|
1202
1202
|
)
|
|
1203
1203
|
}
|
|
1204
|
-
if (
|
|
1204
|
+
if (AsyncResult.isFailure(result)) {
|
|
1205
1205
|
return yield* Exit.failCause(result.cause)
|
|
1206
1206
|
}
|
|
1207
1207
|
|