@effect-app/vue 4.0.0-beta.54 → 4.0.0-beta.56
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/query.d.ts +8 -12
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +8 -17
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +5 -5
- package/package.json +2 -2
- package/src/query.ts +27 -35
- package/src/runtime.ts +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @effect-app/vue
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.56
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- effect-app@4.0.0-beta.56
|
|
8
|
+
|
|
9
|
+
## 4.0.0-beta.55
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- eceb3a3: align CauseException
|
|
14
|
+
- effect-app@4.0.0-beta.55
|
|
15
|
+
|
|
3
16
|
## 4.0.0-beta.54
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/query.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
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";
|
|
2
|
-
import {
|
|
2
|
+
import { type Context, Effect } from "effect-app";
|
|
3
3
|
import { type Req } from "effect-app/client";
|
|
4
4
|
import type { RequestHandler, RequestHandlerWithInput } from "effect-app/client/clientFor";
|
|
5
|
+
import { CauseException } from "effect-app/client/errors";
|
|
5
6
|
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
6
7
|
import { type ComputedRef, type MaybeRefOrGetter, type WatchSource } from "vue";
|
|
7
8
|
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"> {
|
|
@@ -20,36 +21,31 @@ export interface CustomDefinedPlaceholderQueryOptions<TQueryFnData = unknown, TE
|
|
|
20
21
|
initialData?: NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>) | undefined;
|
|
21
22
|
placeholderData: NonFunctionGuard<TQueryData> | PlaceholderDataFunction<NonFunctionGuard<TQueryData>, TError, NonFunctionGuard<TQueryData>, TQueryKey>;
|
|
22
23
|
}
|
|
23
|
-
export declare class KnownFiberFailure<E> extends Error {
|
|
24
|
-
effectCause: Cause.Cause<E>;
|
|
25
|
-
readonly error: unknown;
|
|
26
|
-
constructor(effectCause: Cause.Cause<E>);
|
|
27
|
-
}
|
|
28
24
|
export declare const makeQuery: <R>(getRuntime: () => Context.Context<R>) => {
|
|
29
25
|
<E, A, Request extends Req, Name extends string>(self: RequestHandler<A, E, R, Request, Name>): {
|
|
30
26
|
/**
|
|
31
27
|
* Effect results are passed to the caller, including errors.
|
|
32
28
|
*/
|
|
33
|
-
<TData = A>(options: CustomDefinedInitialQueryOptions<A,
|
|
34
|
-
<TData = A>(options: CustomDefinedPlaceholderQueryOptions<A, E, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData,
|
|
29
|
+
<TData = A>(options: CustomDefinedInitialQueryOptions<A, CauseException<E>, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>>, UseQueryReturnType<any, any>];
|
|
30
|
+
<TData = A>(options: CustomDefinedPlaceholderQueryOptions<A, E, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>, never, never>, UseQueryDefinedReturnType<TData, CauseException<E>>];
|
|
35
31
|
/**
|
|
36
32
|
* Effect results are passed to the caller, including errors.
|
|
37
33
|
*/
|
|
38
|
-
<TData = A>(options?: CustomUndefinedInitialQueryOptions<A,
|
|
34
|
+
<TData = A>(options?: CustomUndefinedInitialQueryOptions<A, CauseException<E>, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<A, E>>, ComputedRef<A | undefined>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>>, UseQueryReturnType<any, any>];
|
|
39
35
|
};
|
|
40
36
|
<Arg, E, A_1, Request_1 extends Req, Name_1 extends string>(self: RequestHandlerWithInput<Arg, A_1, E, R, Request_1, Name_1>): {
|
|
41
37
|
/**
|
|
42
38
|
* Effect results are passed to the caller, including errors.
|
|
43
39
|
*/
|
|
44
|
-
<TData = A_1>(arg: Arg | WatchSource<Arg>, options: CustomDefinedInitialQueryOptions<A_1,
|
|
40
|
+
<TData = A_1>(arg: Arg | WatchSource<Arg>, options: CustomDefinedInitialQueryOptions<A_1, CauseException<E>, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>>, UseQueryReturnType<any, any>];
|
|
45
41
|
/**
|
|
46
42
|
* Effect results are passed to the caller, including errors.
|
|
47
43
|
*/
|
|
48
|
-
<TData = A_1>(arg: Arg | WatchSource<Arg>, options: CustomDefinedPlaceholderQueryOptions<A_1,
|
|
44
|
+
<TData = A_1>(arg: Arg | WatchSource<Arg>, options: CustomDefinedPlaceholderQueryOptions<A_1, CauseException<E>, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>>, UseQueryReturnType<any, any>];
|
|
49
45
|
/**
|
|
50
46
|
* Effect results are passed to the caller, including errors.
|
|
51
47
|
*/
|
|
52
|
-
<TData = A_1>(arg: Arg | WatchSource<Arg>, options?: CustomUndefinedInitialQueryOptions<A_1,
|
|
48
|
+
<TData = A_1>(arg: Arg | WatchSource<Arg>, options?: CustomUndefinedInitialQueryOptions<A_1, CauseException<E>, TData>): readonly [ComputedRef<AsyncResult.AsyncResult<TData, E>>, ComputedRef<TData | undefined>, (options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>>, UseQueryReturnType<any, any>];
|
|
53
49
|
};
|
|
54
50
|
};
|
|
55
51
|
export interface MakeQuery2<R> extends ReturnType<typeof makeQuery<R>> {
|
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,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,KAAK,QAAQ,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAgD,KAAK,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACrV,OAAO,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/query.js
CHANGED
|
@@ -4,28 +4,19 @@
|
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
5
5
|
import { useQuery as useTanstackQuery, useQueryClient } from "@tanstack/vue-query";
|
|
6
6
|
import { Array, Cause, Effect, Option, S } from "effect-app";
|
|
7
|
-
import { ServiceUnavailableError } from "effect-app/client/errors";
|
|
7
|
+
import { CauseException, ServiceUnavailableError } from "effect-app/client/errors";
|
|
8
8
|
import { isHttpClientError } from "effect/unstable/http/HttpClientError";
|
|
9
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
|
import { makeRunPromise } from "./runtime.js";
|
|
13
|
-
export class KnownFiberFailure extends Error {
|
|
14
|
-
effectCause;
|
|
15
|
-
error;
|
|
16
|
-
constructor(effectCause) {
|
|
17
|
-
super("Query failed with cause: " + Cause.squash(effectCause));
|
|
18
|
-
this.effectCause = effectCause;
|
|
19
|
-
this.error = Cause.squash(effectCause);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
13
|
export const makeQuery = (getRuntime) => {
|
|
23
14
|
const useQuery_ = (q) => (arg,
|
|
24
15
|
// todo QueryKey type would be [string, ...string[]], but with I it would be [string, ...string[], I]
|
|
25
16
|
options
|
|
26
17
|
// TODO
|
|
27
18
|
) => {
|
|
28
|
-
// we wrap into
|
|
19
|
+
// we wrap into CauseException because we want to keep the full cause of the failure.
|
|
29
20
|
const runPromise = makeRunPromise(getRuntime());
|
|
30
21
|
const arr = arg;
|
|
31
22
|
const req = !arg
|
|
@@ -53,8 +44,8 @@ export const makeQuery = (getRuntime) => {
|
|
|
53
44
|
...defaultOptions,
|
|
54
45
|
...options,
|
|
55
46
|
retry: (retryCount, error) => {
|
|
56
|
-
if (error instanceof
|
|
57
|
-
if (!isHttpClientError(error.
|
|
47
|
+
if (error instanceof CauseException) {
|
|
48
|
+
if (!isHttpClientError(error.cause) && !S.is(ServiceUnavailableError)(error.cause)) {
|
|
58
49
|
return false;
|
|
59
50
|
}
|
|
60
51
|
}
|
|
@@ -68,8 +59,8 @@ export const makeQuery = (getRuntime) => {
|
|
|
68
59
|
...defaultOptions,
|
|
69
60
|
...options,
|
|
70
61
|
retry: (retryCount, error) => {
|
|
71
|
-
if (error instanceof
|
|
72
|
-
if (!isHttpClientError(error.
|
|
62
|
+
if (error instanceof CauseException) {
|
|
63
|
+
if (!isHttpClientError(error.cause) && !S.is(ServiceUnavailableError)(error.cause)) {
|
|
73
64
|
return false;
|
|
74
65
|
}
|
|
75
66
|
}
|
|
@@ -99,7 +90,7 @@ export const makeQuery = (getRuntime) => {
|
|
|
99
90
|
};
|
|
100
91
|
function swrToQuery(r) {
|
|
101
92
|
if (r.error !== undefined) {
|
|
102
|
-
return AsyncResult.failureWithPrevious(r.error.
|
|
93
|
+
return AsyncResult.failureWithPrevious(r.error.originalCause, {
|
|
103
94
|
previous: r.data === undefined ? Option.none() : Option.some(AsyncResult.success(r.data)),
|
|
104
95
|
waiting: r.isValidating
|
|
105
96
|
});
|
|
@@ -162,4 +153,4 @@ export const useUpdateQuery = () => {
|
|
|
162
153
|
};
|
|
163
154
|
return f;
|
|
164
155
|
};
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELE9BQU8sRUFBNE0sUUFBUSxJQUFJLGdCQUFnQixFQUFFLGNBQWMsRUFBMkQsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyVixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFHMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRWxGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3hFLE9BQU8sS0FBSyxXQUFXLE1BQU0sd0NBQXdDLENBQUE7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBMkMsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9CLE1BQU0sS0FBSyxDQUFBO0FBQ2pILE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQStEN0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUksVUFBb0MsRUFBRSxFQUFFO0lBQ25FLE1BQU0sU0FBUyxHQW9DWCxDQUNGLENBRTBDLEVBQzFDLEVBQUUsQ0FDSixDQUNFLEdBQW1DO0lBQ25DLHFHQUFxRztJQUNyRyxPQUFhO0lBQ2IsT0FBTztNQUNQLEVBQUU7UUFDRixxRkFBcUY7UUFDckYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDL0MsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFBO1FBQ2YsTUFBTSxHQUFHLEdBQWlCLENBQUMsR0FBRztZQUM1QixDQUFDLENB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RUFBRSxDQUFDO1FBQ1YsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUNyRyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUN0SCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFbEQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUM5RCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDMUMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDLEVBQUUsRUFBUyxDQUFDLENBQUE7SUFDYixPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7QUFDMUQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7SUFDakMsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFFLENBQUE7SUFFcEMsTUFBTSxDQUFDLEdBVUgsQ0FBQyxLQUFVLEVBQUUsYUFBa0IsRUFBRSxZQUFrQixFQUFFLEVBQUU7UUFDekQsTUFBTSxPQUFPLEdBQUcsWUFBWSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUE7UUFDekUsTUFBTSxHQUFHLEdBQUcsWUFBWSxLQUFLLFNBQVM7WUFDcEMsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsYUFBYSxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdkIsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsV0FBVyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUMxRCxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0lBQ0QsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDLENBQUEifQ==
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,MAAM,QAAQ,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,MAAM,QAAQ,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAElD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;;iBAiB5D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;;;EAGnE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;;;GAGpE;AAGD,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,UAAU,OAAO,CAAC,CAAC,CAAC,2IAOhD,CAAA;AAEN,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,UAAU,OAAO,CAAC,CAAC,CAAC,gFAShD,CAAA"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Exit, flow, ManagedRuntime } from "effect";
|
|
2
2
|
import { Effect, Layer, Logger } from "effect-app";
|
|
3
|
-
import {
|
|
3
|
+
import { CauseException } from "effect-app/client/errors";
|
|
4
4
|
export function makeAppRuntime(layer) {
|
|
5
5
|
return Effect.gen(function* () {
|
|
6
6
|
const l = layer.pipe(Layer.provide(Logger.layer([Logger.consolePretty()])));
|
|
@@ -24,15 +24,15 @@ export function initializeAsync(layer) {
|
|
|
24
24
|
return Effect
|
|
25
25
|
.runPromise(makeAppRuntime(layer));
|
|
26
26
|
}
|
|
27
|
-
// we wrap into
|
|
27
|
+
// we wrap into CauseException because we want to keep the full cause of the failure.
|
|
28
28
|
export const makeRunPromise = (services) => flow(Effect.runPromiseExitWith(services), (_) => _.then(Exit.match({
|
|
29
|
-
onFailure: (cause) => Promise.reject(new
|
|
29
|
+
onFailure: (cause) => Promise.reject(new CauseException(cause, "runPromise")),
|
|
30
30
|
onSuccess: (value) => Promise.resolve(value)
|
|
31
31
|
})));
|
|
32
32
|
export const makeRunSync = (services) => flow(Effect.runSyncExitWith(services), Exit.match({
|
|
33
33
|
onFailure: (cause) => {
|
|
34
|
-
throw new
|
|
34
|
+
throw new CauseException(cause, "runSync");
|
|
35
35
|
},
|
|
36
36
|
onSuccess: (value) => value
|
|
37
37
|
}));
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBR3pELE1BQU0sVUFBVSxjQUFjLENBQU8sS0FBd0I7SUFDM0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUNsQixLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQzdCLENBQUE7UUFDMUIsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNsQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFBO1FBQ3pCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDeEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUNkLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUE7WUFDMUMsQ0FBQztZQUVELENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDbkIsT0FBTyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDdEIsQ0FBQztTQUNGLENBQUMsQ0FBQSxDQUFDLHNEQUFzRDtJQUMzRCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFPLEtBQStCO0lBQ2xFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDckQsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQU8sS0FBK0I7SUFDbkUsT0FBTyxNQUFNO1NBQ1YsVUFBVSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBQ3RDLENBQUM7QUFFRCxxRkFBcUY7QUFDckYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUksUUFBb0IsRUFBRSxFQUFFLENBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUM5QyxDQUFDLENBQUMsSUFBSSxDQUNKLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDVCxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzdFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Q0FDN0MsQ0FBQyxDQUNILENBQUMsQ0FBQTtBQUVOLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFJLFFBQW9CLEVBQUUsRUFBRSxDQUNyRCxJQUFJLENBQ0YsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNULFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ25CLE1BQU0sSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFDRCxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7Q0FDNUIsQ0FBQyxDQUNILENBQUEifQ==
|
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.56",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
|
|
@@ -11,7 +11,7 @@
|
|
|
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.56"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@effect/atom-vue": "^4.0.0-beta.43",
|
package/src/query.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { type DefaultError, type Enabled, type InitialDataFunction, type NonUnde
|
|
|
6
6
|
import { Array, Cause, type Context, Effect, Option, S } from "effect-app"
|
|
7
7
|
import { type Req } from "effect-app/client"
|
|
8
8
|
import type { RequestHandler, RequestHandlerWithInput } from "effect-app/client/clientFor"
|
|
9
|
-
import { ServiceUnavailableError } from "effect-app/client/errors"
|
|
9
|
+
import { CauseException, ServiceUnavailableError } from "effect-app/client/errors"
|
|
10
10
|
import { type Span } from "effect/Tracer"
|
|
11
11
|
import { isHttpClientError } from "effect/unstable/http/HttpClientError"
|
|
12
12
|
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"
|
|
@@ -75,14 +75,6 @@ export interface CustomDefinedPlaceholderQueryOptions<
|
|
|
75
75
|
| PlaceholderDataFunction<NonFunctionGuard<TQueryData>, TError, NonFunctionGuard<TQueryData>, TQueryKey>
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
export class KnownFiberFailure<E> extends Error {
|
|
79
|
-
readonly error: unknown
|
|
80
|
-
constructor(public effectCause: Cause.Cause<E>) {
|
|
81
|
-
super("Query failed with cause: " + Cause.squash(effectCause))
|
|
82
|
-
this.error = Cause.squash(effectCause)
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
78
|
export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
87
79
|
const useQuery_: {
|
|
88
80
|
<I, A, E, Request extends Req, Name extends string>(
|
|
@@ -96,8 +88,8 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
96
88
|
): readonly [
|
|
97
89
|
ComputedRef<AsyncResult.AsyncResult<TData, E>>,
|
|
98
90
|
ComputedRef<TData | undefined>,
|
|
99
|
-
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData,
|
|
100
|
-
UseQueryDefinedReturnType<TData,
|
|
91
|
+
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>, never, never>,
|
|
92
|
+
UseQueryDefinedReturnType<TData, CauseException<E>>
|
|
101
93
|
]
|
|
102
94
|
|
|
103
95
|
<TData = A>(
|
|
@@ -106,8 +98,8 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
106
98
|
): readonly [
|
|
107
99
|
ComputedRef<AsyncResult.AsyncResult<TData, E>>,
|
|
108
100
|
ComputedRef<TData>,
|
|
109
|
-
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData,
|
|
110
|
-
UseQueryDefinedReturnType<TData,
|
|
101
|
+
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>, never, never>,
|
|
102
|
+
UseQueryDefinedReturnType<TData, CauseException<E>>
|
|
111
103
|
]
|
|
112
104
|
|
|
113
105
|
<TData = A>(
|
|
@@ -116,8 +108,8 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
116
108
|
): readonly [
|
|
117
109
|
ComputedRef<AsyncResult.AsyncResult<TData, E>>,
|
|
118
110
|
ComputedRef<TData>,
|
|
119
|
-
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData,
|
|
120
|
-
UseQueryDefinedReturnType<TData,
|
|
111
|
+
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>, never, never>,
|
|
112
|
+
UseQueryDefinedReturnType<TData, CauseException<E>>
|
|
121
113
|
]
|
|
122
114
|
}
|
|
123
115
|
} = <I, A, E, Request extends Req, Name extends string>(
|
|
@@ -131,7 +123,7 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
131
123
|
options?: any
|
|
132
124
|
// TODO
|
|
133
125
|
) => {
|
|
134
|
-
// we wrap into
|
|
126
|
+
// we wrap into CauseException because we want to keep the full cause of the failure.
|
|
135
127
|
const runPromise = makeRunPromise(getRuntime())
|
|
136
128
|
const arr = arg
|
|
137
129
|
const req: { value: I } = !arg
|
|
@@ -156,14 +148,14 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
156
148
|
throwOnError: false
|
|
157
149
|
}
|
|
158
150
|
|
|
159
|
-
const r = useTanstackQuery<A,
|
|
151
|
+
const r = useTanstackQuery<A, CauseException<E>, TData>(
|
|
160
152
|
Effect.isEffect(handler)
|
|
161
153
|
? {
|
|
162
154
|
...defaultOptions,
|
|
163
155
|
...options,
|
|
164
156
|
retry: (retryCount, error) => {
|
|
165
|
-
if (error instanceof
|
|
166
|
-
if (!isHttpClientError(error.
|
|
157
|
+
if (error instanceof CauseException) {
|
|
158
|
+
if (!isHttpClientError(error.cause) && !S.is(ServiceUnavailableError)(error.cause)) {
|
|
167
159
|
return false
|
|
168
160
|
}
|
|
169
161
|
}
|
|
@@ -186,8 +178,8 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
186
178
|
...defaultOptions,
|
|
187
179
|
...options,
|
|
188
180
|
retry: (retryCount, error) => {
|
|
189
|
-
if (error instanceof
|
|
190
|
-
if (!isHttpClientError(error.
|
|
181
|
+
if (error instanceof CauseException) {
|
|
182
|
+
if (!isHttpClientError(error.cause) && !S.is(ServiceUnavailableError)(error.cause)) {
|
|
191
183
|
return false
|
|
192
184
|
}
|
|
193
185
|
}
|
|
@@ -235,13 +227,13 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
235
227
|
}
|
|
236
228
|
|
|
237
229
|
function swrToQuery<E, A>(r: {
|
|
238
|
-
error:
|
|
230
|
+
error: CauseException<E> | undefined
|
|
239
231
|
data: A | undefined
|
|
240
232
|
isValidating: boolean
|
|
241
233
|
}): AsyncResult.AsyncResult<A, E> {
|
|
242
234
|
if (r.error !== undefined) {
|
|
243
235
|
return AsyncResult.failureWithPrevious(
|
|
244
|
-
r.error.
|
|
236
|
+
r.error.originalCause,
|
|
245
237
|
{
|
|
246
238
|
previous: r.data === undefined ? Option.none() : Option.some(AsyncResult.success(r.data)),
|
|
247
239
|
waiting: r.isValidating
|
|
@@ -268,11 +260,11 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
268
260
|
* Effect results are passed to the caller, including errors.
|
|
269
261
|
*/
|
|
270
262
|
<TData = A>(
|
|
271
|
-
options: CustomDefinedInitialQueryOptions<A,
|
|
263
|
+
options: CustomDefinedInitialQueryOptions<A, CauseException<E>, TData>
|
|
272
264
|
): readonly [
|
|
273
265
|
ComputedRef<AsyncResult.AsyncResult<TData, E>>,
|
|
274
266
|
ComputedRef<TData>,
|
|
275
|
-
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData,
|
|
267
|
+
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>>,
|
|
276
268
|
UseQueryReturnType<any, any>
|
|
277
269
|
]
|
|
278
270
|
<TData = A>(
|
|
@@ -280,17 +272,17 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
280
272
|
): readonly [
|
|
281
273
|
ComputedRef<AsyncResult.AsyncResult<TData, E>>,
|
|
282
274
|
ComputedRef<TData>,
|
|
283
|
-
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData,
|
|
284
|
-
UseQueryDefinedReturnType<TData,
|
|
275
|
+
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>, never, never>,
|
|
276
|
+
UseQueryDefinedReturnType<TData, CauseException<E>>
|
|
285
277
|
]
|
|
286
278
|
// optional options, optional A
|
|
287
279
|
/**
|
|
288
280
|
* Effect results are passed to the caller, including errors.
|
|
289
281
|
*/
|
|
290
|
-
<TData = A>(options?: CustomUndefinedInitialQueryOptions<A,
|
|
282
|
+
<TData = A>(options?: CustomUndefinedInitialQueryOptions<A, CauseException<E>, TData>): readonly [
|
|
291
283
|
ComputedRef<AsyncResult.AsyncResult<A, E>>,
|
|
292
284
|
ComputedRef<A | undefined>,
|
|
293
|
-
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData,
|
|
285
|
+
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>>,
|
|
294
286
|
UseQueryReturnType<any, any>
|
|
295
287
|
]
|
|
296
288
|
}
|
|
@@ -307,11 +299,11 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
307
299
|
*/
|
|
308
300
|
<TData = A>(
|
|
309
301
|
arg: Arg | WatchSource<Arg>,
|
|
310
|
-
options: CustomDefinedInitialQueryOptions<A,
|
|
302
|
+
options: CustomDefinedInitialQueryOptions<A, CauseException<E>, TData>
|
|
311
303
|
): readonly [
|
|
312
304
|
ComputedRef<AsyncResult.AsyncResult<TData, E>>,
|
|
313
305
|
ComputedRef<TData>,
|
|
314
|
-
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData,
|
|
306
|
+
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>>,
|
|
315
307
|
UseQueryReturnType<any, any>
|
|
316
308
|
]
|
|
317
309
|
// required options, with placeholderData
|
|
@@ -320,11 +312,11 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
320
312
|
*/
|
|
321
313
|
<TData = A>(
|
|
322
314
|
arg: Arg | WatchSource<Arg>,
|
|
323
|
-
options: CustomDefinedPlaceholderQueryOptions<A,
|
|
315
|
+
options: CustomDefinedPlaceholderQueryOptions<A, CauseException<E>, TData>
|
|
324
316
|
): readonly [
|
|
325
317
|
ComputedRef<AsyncResult.AsyncResult<TData, E>>,
|
|
326
318
|
ComputedRef<TData>,
|
|
327
|
-
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData,
|
|
319
|
+
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>>,
|
|
328
320
|
UseQueryReturnType<any, any>
|
|
329
321
|
]
|
|
330
322
|
// optional options, optional A
|
|
@@ -333,11 +325,11 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
|
|
|
333
325
|
*/
|
|
334
326
|
<TData = A>(
|
|
335
327
|
arg: Arg | WatchSource<Arg>,
|
|
336
|
-
options?: CustomUndefinedInitialQueryOptions<A,
|
|
328
|
+
options?: CustomUndefinedInitialQueryOptions<A, CauseException<E>, TData>
|
|
337
329
|
): readonly [
|
|
338
330
|
ComputedRef<AsyncResult.AsyncResult<TData, E>>,
|
|
339
331
|
ComputedRef<TData | undefined>,
|
|
340
|
-
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData,
|
|
332
|
+
(options?: RefetchOptions) => Effect.Effect<QueryObserverResult<TData, CauseException<E>>>,
|
|
341
333
|
UseQueryReturnType<any, any>
|
|
342
334
|
]
|
|
343
335
|
}
|
package/src/runtime.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Exit, flow, ManagedRuntime } from "effect"
|
|
2
2
|
import { Effect, Layer, Logger } from "effect-app"
|
|
3
|
+
import { CauseException } from "effect-app/client/errors"
|
|
3
4
|
import { type Context } from "effect-app/Context"
|
|
4
|
-
import { KnownFiberFailure } from "./query.js"
|
|
5
5
|
|
|
6
6
|
export function makeAppRuntime<A, E>(layer: Layer.Layer<A, E>) {
|
|
7
7
|
return Effect.gen(function*() {
|
|
@@ -32,12 +32,12 @@ export function initializeAsync<A, E>(layer: Layer.Layer<A, E, never>) {
|
|
|
32
32
|
.runPromise(makeAppRuntime(layer))
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
// we wrap into
|
|
35
|
+
// we wrap into CauseException because we want to keep the full cause of the failure.
|
|
36
36
|
export const makeRunPromise = <T>(services: Context<T>) =>
|
|
37
37
|
flow(Effect.runPromiseExitWith(services), (_) =>
|
|
38
38
|
_.then(
|
|
39
39
|
Exit.match({
|
|
40
|
-
onFailure: (cause) => Promise.reject(new
|
|
40
|
+
onFailure: (cause) => Promise.reject(new CauseException(cause, "runPromise")),
|
|
41
41
|
onSuccess: (value) => Promise.resolve(value)
|
|
42
42
|
})
|
|
43
43
|
))
|
|
@@ -47,7 +47,7 @@ export const makeRunSync = <T>(services: Context<T>) =>
|
|
|
47
47
|
Effect.runSyncExitWith(services),
|
|
48
48
|
Exit.match({
|
|
49
49
|
onFailure: (cause) => {
|
|
50
|
-
throw new
|
|
50
|
+
throw new CauseException(cause, "runSync")
|
|
51
51
|
},
|
|
52
52
|
onSuccess: (value) => value
|
|
53
53
|
})
|