@effect-app/vue 1.26.0 → 1.26.2
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 +17 -0
- package/_cjs/index.cjs +22 -13
- package/_cjs/index.cjs.map +1 -1
- package/_cjs/lib.cjs +26 -0
- package/_cjs/lib.cjs.map +1 -0
- package/_cjs/makeClient.cjs +5 -84
- package/_cjs/makeClient.cjs.map +1 -1
- package/_cjs/makeClient2.cjs +48 -136
- package/_cjs/makeClient2.cjs.map +1 -1
- package/_cjs/mutate.cjs +37 -0
- package/_cjs/mutate.cjs.map +1 -1
- package/_cjs/mutate2.cjs.map +1 -1
- package/_cjs/query.cjs +25 -2
- package/_cjs/query.cjs.map +1 -1
- package/_cjs/query2.cjs +3 -25
- package/_cjs/query2.cjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/lib.d.ts +8 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +15 -0
- package/dist/makeClient.d.ts +1 -23
- package/dist/makeClient.d.ts.map +1 -1
- package/dist/makeClient.js +3 -68
- package/dist/makeClient2.d.ts +25 -112
- package/dist/makeClient2.d.ts.map +1 -1
- package/dist/makeClient2.js +49 -146
- package/dist/mutate.d.ts +6 -0
- package/dist/mutate.d.ts.map +1 -1
- package/dist/mutate.js +25 -1
- package/dist/mutate2.d.ts +4 -8
- package/dist/mutate2.d.ts.map +1 -1
- package/dist/mutate2.js +1 -1
- package/dist/query.d.ts +5 -2
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +30 -4
- package/dist/query2.d.ts +4 -11
- package/dist/query2.d.ts.map +1 -1
- package/dist/query2.js +4 -26
- package/package.json +14 -4
- package/src/index.ts +3 -1
- package/src/lib.ts +29 -0
- package/src/makeClient.ts +4 -115
- package/src/makeClient2.ts +97 -332
- package/src/mutate.ts +33 -0
- package/src/mutate2.ts +10 -16
- package/src/query.ts +47 -7
- package/src/query2.ts +10 -56
- package/vitest.config.ts.timestamp-1711656440837-d04458a029af.mjs +0 -37
- package/vitest.config.ts.timestamp-1711724061890-e8772f088aa0d.mjs +0 -37
- package/vitest.config.ts.timestamp-1711743471018-f8eca63460d15.mjs +0 -37
- package/vitest.config.ts.timestamp-1711743489536-332f6bf4f074c.mjs +0 -37
- package/vitest.config.ts.timestamp-1711744615240-85d4d02f24414.mjs +0 -37
package/dist/query.d.ts
CHANGED
|
@@ -10,15 +10,18 @@ export interface KnownFiberFailure<E> extends Runtime.FiberFailure {
|
|
|
10
10
|
export declare const makeQuery: <R>(runtime: Ref<Runtime.Runtime<R>>) => {
|
|
11
11
|
<E, A>(self: {
|
|
12
12
|
handler: Effect<A, E, R>;
|
|
13
|
-
mapPath: string;
|
|
14
13
|
name: string;
|
|
15
14
|
}, options?: QueryObserverOptionsCustom): readonly [ComputedRef<Result.Result<A, E>>, ComputedRef<A | undefined>, (options?: RefetchOptions) => Promise<QueryObserverResult<any, any>>, UseQueryReturnType<any, any>];
|
|
16
15
|
<Arg, E, A_1>(self: {
|
|
17
16
|
handler: (arg: Arg) => Effect<A_1, E, R>;
|
|
18
|
-
mapPath: (arg: Arg) => string;
|
|
19
17
|
name: string;
|
|
20
18
|
}, arg: Arg | WatchSource<Arg>, options?: QueryObserverOptionsCustom): readonly [ComputedRef<Result.Result<A_1, E>>, ComputedRef<A_1 | undefined>, (options?: RefetchOptions) => Promise<QueryObserverResult<any, any>>, UseQueryReturnType<any, any>];
|
|
21
19
|
};
|
|
22
20
|
export interface MakeQuery<R> extends ReturnType<typeof makeQuery<R>> {
|
|
23
21
|
}
|
|
22
|
+
export declare function composeQueries<R extends Record<string, Result.Result<any, any>>>(results: R, renderPreviousOnFailure?: boolean): Result.Result<{
|
|
23
|
+
[Property in keyof R]: R[Property] extends Result.Result<infer A, any> ? A : never;
|
|
24
|
+
}, {
|
|
25
|
+
[Property in keyof R]: R[Property] extends Result.Result<any, infer E> ? E : never;
|
|
26
|
+
}[keyof R]>;
|
|
24
27
|
//# sourceMappingURL=query.d.ts.map
|
package/dist/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EACV,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/query.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { isHttpRequestError, isHttpResponseError } from "@effect-app/core/http/http-client";
|
|
6
6
|
import * as Result from "@effect-rx/rx/Result";
|
|
7
7
|
import { useQuery } from "@tanstack/vue-query";
|
|
8
|
-
import { Cause, Effect, Option, Runtime, S } from "effect-app";
|
|
8
|
+
import { Array, Cause, Effect, Option, Runtime, S } from "effect-app";
|
|
9
9
|
import { ServiceUnavailableError } from "effect-app/client";
|
|
10
10
|
import { computed, ref } from "vue";
|
|
11
11
|
import { makeQueryKey, reportRuntimeError } from "./internal.js";
|
|
@@ -90,7 +90,6 @@ export const makeQuery = (runtime) => {
|
|
|
90
90
|
E,
|
|
91
91
|
R
|
|
92
92
|
>
|
|
93
|
-
mapPath: (req: I) => string
|
|
94
93
|
name: string
|
|
95
94
|
}
|
|
96
95
|
| {
|
|
@@ -99,7 +98,6 @@ export const makeQuery = (runtime) => {
|
|
|
99
98
|
E,
|
|
100
99
|
R
|
|
101
100
|
>
|
|
102
|
-
mapPath: string
|
|
103
101
|
name: string
|
|
104
102
|
},
|
|
105
103
|
*/
|
|
@@ -110,4 +108,32 @@ export const makeQuery = (runtime) => {
|
|
|
110
108
|
}
|
|
111
109
|
return useSafeQuery;
|
|
112
110
|
};
|
|
113
|
-
|
|
111
|
+
export function composeQueries(results, renderPreviousOnFailure) {
|
|
112
|
+
const values = renderPreviousOnFailure
|
|
113
|
+
? Object.values(results).map(orPrevious)
|
|
114
|
+
: Object.values(results);
|
|
115
|
+
const error = values.find(Result.isFailure);
|
|
116
|
+
if (error) {
|
|
117
|
+
return error;
|
|
118
|
+
}
|
|
119
|
+
const initial = Array.findFirst(values, (x) => x._tag === "Initial" ? Option.some(x) : Option.none());
|
|
120
|
+
if (initial.value !== undefined) {
|
|
121
|
+
return initial.value;
|
|
122
|
+
}
|
|
123
|
+
const loading = Array.findFirst(values, (x) => Result.isInitial(x) && x.waiting ? Option.some(x) : Option.none());
|
|
124
|
+
if (loading.value !== undefined) {
|
|
125
|
+
return loading.value;
|
|
126
|
+
}
|
|
127
|
+
const isRefreshing = values.some((x) => x.waiting);
|
|
128
|
+
const r = Object.entries(results).reduce((prev, [key, value]) => {
|
|
129
|
+
prev[key] = Result.value(value).value;
|
|
130
|
+
return prev;
|
|
131
|
+
}, {});
|
|
132
|
+
return Result.success(r, isRefreshing);
|
|
133
|
+
}
|
|
134
|
+
function orPrevious(result) {
|
|
135
|
+
return Result.isFailure(result) && Option.isSome(result.previousValue)
|
|
136
|
+
? Result.success(result.previousValue.value, result.waiting)
|
|
137
|
+
: result;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQzNGLE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUE7QUFROUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUVuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBa0JoRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBSSxPQUFnQyxFQUFFLEVBQUU7SUFDL0QsZ0JBQWdCO0lBQ2hCLHNSQUFzUjtJQUN0UiwyUkFBMlI7SUFDM1IsdVJBQXVSO0lBQ3ZSLE1BQU0sYUFBYSxHQUFHLENBQ3BCLENBa0JHLEVBQ0gsR0FBd0IsRUFDeEIsVUFBd0UsRUFBRSxDQUFDLE9BQU87TUFDbEYsRUFBRTtRQUNGLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQTtRQUNmLE1BQU0sR0FBRyxHQUFpQixDQUFDLEdBQUc7WUFDNUIsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUssVUFBVTtnQkFDM0IsQ0FBQyxDQUFFO29CQUNELElBQUksS0FBSzt3QkFDUCxPQUFRLEdBQVcsRUFBRSxDQUFBO29CQUN2QixDQUFDO2lCQUNNO2dCQUNULENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDWixNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUE7UUFDekIsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUNoQixNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUN0QixDQUFDLENBQUM7Z0JBQ0EsR0FBRyxPQUFPO2dCQUNWLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDM0IsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ2xDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQTt3QkFDaEQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTt3QkFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzs0QkFDOUYsT0FBTyxLQUFLLENBQUE7d0JBQ2QsQ0FBQztvQkFDSCxDQUFDO29CQUVELE9BQU8sVUFBVSxHQUFHLENBQUMsQ0FBQTtnQkFDdkIsQ0FBQztnQkFDRCxRQUFRO2dCQUNSLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUN0QixVQUFVLENBQ1IsT0FBTztxQkFDSixJQUFJLENBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FDakUsRUFDSCxFQUFFLE1BQU0sRUFBRSxDQUNYO2FBQ0o7WUFDRCxDQUFDLENBQUM7Z0JBQ0EsR0FBRyxPQUFPO2dCQUNWLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDM0IsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ2xDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQTt3QkFDaEQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTt3QkFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzs0QkFDOUYsT0FBTyxLQUFLLENBQUE7d0JBQ2QsQ0FBQztvQkFDSCxDQUFDO29CQUVELE9BQU8sVUFBVSxHQUFHLENBQUMsQ0FBQTtnQkFDdkIsQ0FBQztnQkFDRCxRQUFRLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLENBQUM7Z0JBQzVCLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUN0QixVQUFVLENBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7cUJBQ2YsSUFBSSxDQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQ2pFLEVBQ0gsRUFBRSxNQUFNLEVBQUUsQ0FDWDthQUNKLENBQ0osQ0FBQTtRQUVELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDM0IsVUFBVSxDQUFDO1lBQ1QsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLFNBQVM7WUFDakMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNsQixZQUFZLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLO1NBQ2pDLENBQUMsQ0FDSCxDQUFBO1FBQ0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFVLENBQUE7SUFDdkQsQ0FBQyxDQUFBO0lBRUQsU0FBUyxVQUFVLENBQU8sQ0FJekI7UUFDQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLE9BQU8sTUFBTSxDQUFDLG1CQUFtQixDQUMvQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxFQUNwQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzFFLENBQUMsQ0FBQyxZQUFZLENBQ2YsQ0FBQTtRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUEyQkQsU0FBUyxZQUFZLENBQ25CLElBQVM7SUFDVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFvQkE7SUFDQSxZQUFrQixFQUNsQixPQUFhO1FBRWIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbEMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztZQUM5QyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUNELE9BQU8sWUFBWSxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQUtELE1BQU0sVUFBVSxjQUFjLENBRzVCLE9BQVUsRUFDVix1QkFBaUM7SUFXakMsTUFBTSxNQUFNLEdBQUcsdUJBQXVCO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDMUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDM0MsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7SUFDckcsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQTtJQUN0QixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7SUFDakgsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQTtJQUN0QixDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRWxELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQ3JDLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFBO0lBQ2IsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQTtBQUN4QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQU8sTUFBMkI7SUFDbkQsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNwRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzVELENBQUMsQ0FBQyxNQUFNLENBQUE7QUFDWixDQUFDIn0=
|
package/dist/query2.d.ts
CHANGED
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
import * as Result from "@effect-rx/rx/Result";
|
|
2
2
|
import type { QueryKey, QueryObserverOptions, QueryObserverResult, RefetchOptions, UseQueryReturnType } from "@tanstack/vue-query";
|
|
3
|
-
import { Cause, Effect, Runtime } from "effect-app";
|
|
3
|
+
import { Cause, Effect, Runtime, S } from "effect-app";
|
|
4
4
|
import type { ComputedRef, Ref, WatchSource } from "vue";
|
|
5
|
+
import type { RequestHandler, RequestHandlerWithInput } from "./makeClient2.js";
|
|
5
6
|
export interface QueryObserverOptionsCustom<TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> extends Omit<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, "queryKey" | "queryFn"> {
|
|
6
7
|
}
|
|
7
8
|
export interface KnownFiberFailure<E> extends Runtime.FiberFailure {
|
|
8
9
|
readonly [Runtime.FiberFailureCauseId]: Cause.Cause<E>;
|
|
9
10
|
}
|
|
10
11
|
export declare const makeQuery2: <R>(runtime: Ref<Runtime.Runtime<R>>) => {
|
|
11
|
-
<E, A>(self:
|
|
12
|
-
|
|
13
|
-
mapPath: string;
|
|
14
|
-
name: string;
|
|
15
|
-
}, options?: QueryObserverOptionsCustom): readonly [ComputedRef<Result.Result<A, E>>, ComputedRef<A | undefined>, (options?: RefetchOptions) => Effect<QueryObserverResult<A, KnownFiberFailure<E>>>, UseQueryReturnType<any, any>];
|
|
16
|
-
<Arg, E, A_1>(self: {
|
|
17
|
-
handler: (arg: Arg) => Effect<A_1, E, R>;
|
|
18
|
-
mapPath: (arg: Arg) => string;
|
|
19
|
-
name: string;
|
|
20
|
-
}, arg: Arg | WatchSource<Arg>, options?: QueryObserverOptionsCustom): readonly [ComputedRef<Result.Result<A_1, E>>, ComputedRef<A_1 | undefined>, (options?: RefetchOptions) => Effect<QueryObserverResult<A_1, KnownFiberFailure<E>>>, UseQueryReturnType<any, any>];
|
|
12
|
+
<E, A, Request extends S.TaggedRequest.Any>(self: RequestHandler<A, E, R, Request>, options?: QueryObserverOptionsCustom): readonly [ComputedRef<Result.Result<A, E>>, ComputedRef<A | undefined>, (options?: RefetchOptions) => Effect<QueryObserverResult<A, KnownFiberFailure<E>>>, UseQueryReturnType<any, any>];
|
|
13
|
+
<Arg, E, A_1, Request_1 extends S.TaggedRequest.Any>(self: RequestHandlerWithInput<Arg, A_1, E, R, Request_1>, arg: Arg | WatchSource<Arg>, options?: QueryObserverOptionsCustom): readonly [ComputedRef<Result.Result<A_1, E>>, ComputedRef<A_1 | undefined>, (options?: RefetchOptions) => Effect<QueryObserverResult<A_1, KnownFiberFailure<E>>>, UseQueryReturnType<any, any>];
|
|
21
14
|
};
|
|
22
15
|
export interface MakeQuery2<R> extends ReturnType<typeof makeQuery2<R>> {
|
|
23
16
|
}
|
package/dist/query2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query2.d.ts","sourceRoot":"","sources":["../src/query2.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EACV,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAU,OAAO,
|
|
1
|
+
{"version":3,"file":"query2.d.ts","sourceRoot":"","sources":["../src/query2.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EACV,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAU,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAG9D,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG/E,MAAM,WAAW,0BAA0B,CACzC,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,KAAK,EACd,KAAK,GAAG,YAAY,EACpB,UAAU,GAAG,YAAY,EACzB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACrC,UAAU,GAAG,KAAK,CAClB,SACA,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAClH;AAEF,MAAM,WAAW,iBAAiB,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,YAAY;IAChE,QAAQ,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;CACvD;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAmHtC,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,CAAC,CAAC,aAAa,CAAC,GAAG,QACvD,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,YAC5B,0BAA0B,GACnC,SAAS,CACV,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAChC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,EAC1B,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAClF,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAC7B;KACqB,GAAG,EAAE,CAAC,yBAAqB,CAAC,CAAC,aAAa,CAAC,GAAG,QAC5D,uBAAuB,CAAC,GAAG,EAAE,GAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAO,CAAC,OAC/C,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,YACjB,0BAA0B,GACnC,SAAS,CACV,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAChC,WAAW,CAAC,GAAC,GAAG,SAAS,CAAC,EAC1B,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,mBAAmB,CAAC,GAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAClF,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAC7B;CAWF,CAAA;AAGD,MAAM,WAAW,UAAU,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;CAAG"}
|
package/dist/query2.js
CHANGED
|
@@ -72,6 +72,8 @@ export const makeQuery2 = (runtime) => {
|
|
|
72
72
|
result,
|
|
73
73
|
latestSuccess,
|
|
74
74
|
// one thing to keep in mind is that span will be disconnected as Context does not pass from outside.
|
|
75
|
+
// TODO: consider how we should handle the Result here which is `QueryObserverResult<A, KnownFiberFailure<E>>`
|
|
76
|
+
// and always ends up in the success channel, even when error..
|
|
75
77
|
(options) => Effect.promise(() => r.refetch(options)),
|
|
76
78
|
r
|
|
77
79
|
];
|
|
@@ -85,35 +87,11 @@ export const makeQuery2 = (runtime) => {
|
|
|
85
87
|
}
|
|
86
88
|
return Result.initial(r.isValidating);
|
|
87
89
|
}
|
|
88
|
-
function useSafeQuery(self,
|
|
89
|
-
/*
|
|
90
|
-
q:
|
|
91
|
-
| {
|
|
92
|
-
handler: (
|
|
93
|
-
req: I
|
|
94
|
-
) => Effect<
|
|
95
|
-
A,
|
|
96
|
-
E,
|
|
97
|
-
R
|
|
98
|
-
>
|
|
99
|
-
mapPath: (req: I) => string
|
|
100
|
-
name: string
|
|
101
|
-
}
|
|
102
|
-
| {
|
|
103
|
-
handler: Effect<
|
|
104
|
-
A,
|
|
105
|
-
E,
|
|
106
|
-
R
|
|
107
|
-
>
|
|
108
|
-
mapPath: string
|
|
109
|
-
name: string
|
|
110
|
-
},
|
|
111
|
-
*/
|
|
112
|
-
argOrOptions, options) {
|
|
90
|
+
function useSafeQuery(self, argOrOptions, options) {
|
|
113
91
|
return Effect.isEffect(self.handler)
|
|
114
92
|
? useSafeQuery_(self, undefined, argOrOptions)
|
|
115
93
|
: useSafeQuery_(self, argOrOptions, options);
|
|
116
94
|
}
|
|
117
95
|
return useSafeQuery;
|
|
118
96
|
};
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3F1ZXJ5Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsc0RBQXNEO0FBQ3RELHdEQUF3RDtBQUN4RCw0REFBNEQ7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDM0YsT0FBTyxLQUFLLE1BQU0sTUFBTSxzQkFBc0IsQ0FBQTtBQVE5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQW1CaEUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUksT0FBZ0MsRUFBRSxFQUFFO0lBQ2hFLGdCQUFnQjtJQUNoQixzUkFBc1I7SUFDdFIsMlJBQTJSO0lBQzNSLHVSQUF1UjtJQUN2UixNQUFNLGFBQWEsR0FBRyxDQUNwQixDQUVvQyxFQUNwQyxHQUF3QixFQUN4QixVQUF3RSxFQUFFLENBQUMsT0FBTztNQUNsRixFQUFFO1FBQ0YsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFBO1FBQ2YsTUFBTSxHQUFHLEdBQWlCLENBQUMsR0FBRztZQUM1QixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxVQUFVO2dCQUMzQixD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue",
|
|
3
|
-
"version": "1.26.
|
|
3
|
+
"version": "1.26.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"@vueuse/core": "^11.1.0",
|
|
11
11
|
"query-string": "^9.1.1",
|
|
12
12
|
"@effect-app/core": "1.17.0",
|
|
13
|
-
"@effect-app/vue": "1.26.
|
|
14
|
-
"effect-app": "1.
|
|
15
|
-
"
|
|
13
|
+
"@effect-app/vue": "1.26.2",
|
|
14
|
+
"@effect-app/schema": "1.19.0",
|
|
15
|
+
"effect-app": "1.30.1"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"@effect/platform": "^0.68.5",
|
|
@@ -92,6 +92,16 @@
|
|
|
92
92
|
"default": "./_cjs/internal.cjs"
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
|
+
"./lib": {
|
|
96
|
+
"import": {
|
|
97
|
+
"types": "./dist/lib.d.ts",
|
|
98
|
+
"default": "./dist/lib.js"
|
|
99
|
+
},
|
|
100
|
+
"require": {
|
|
101
|
+
"types": "./dist/lib.d.ts",
|
|
102
|
+
"default": "./_cjs/lib.cjs"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
95
105
|
"./makeClient": {
|
|
96
106
|
"import": {
|
|
97
107
|
"types": "./dist/makeClient.d.ts",
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export *
|
|
1
|
+
export * from "./lib.js"
|
|
2
|
+
|
|
2
3
|
export * from "./hooks.js"
|
|
3
4
|
export * from "./makeClient.js"
|
|
5
|
+
export * from "./makeClient2.js"
|
|
4
6
|
export * from "./makeContext.js"
|
|
5
7
|
export * from "./makeIntl.js"
|
|
6
8
|
export * from "./runtime.js"
|
package/src/lib.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type Pausable, useIntervalFn, type UseIntervalFnOptions } from "@vueuse/core"
|
|
2
|
+
import type { MaybeRefOrGetter } from "vue"
|
|
3
|
+
|
|
4
|
+
export * as Result from "@effect-rx/rx/Result"
|
|
5
|
+
|
|
6
|
+
export function pauseWhileProcessing(
|
|
7
|
+
iv: Pausable,
|
|
8
|
+
pmf: () => Promise<unknown>
|
|
9
|
+
) {
|
|
10
|
+
return Promise
|
|
11
|
+
.resolve(iv.pause())
|
|
12
|
+
.then(() => pmf())
|
|
13
|
+
.finally(() => iv.resume())
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function useIntervalPauseWhileProcessing(
|
|
17
|
+
pmf: () => Promise<unknown>,
|
|
18
|
+
interval?: MaybeRefOrGetter<number>,
|
|
19
|
+
options?: Omit<UseIntervalFnOptions, "immediateCallback">
|
|
20
|
+
) {
|
|
21
|
+
const iv = useIntervalFn(
|
|
22
|
+
() => pauseWhileProcessing(iv, pmf),
|
|
23
|
+
interval,
|
|
24
|
+
options ? { ...options, immediateCallback: false } : options
|
|
25
|
+
)
|
|
26
|
+
return {
|
|
27
|
+
isActive: iv.isActive
|
|
28
|
+
}
|
|
29
|
+
}
|
package/src/makeClient.ts
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { flow, pipe, tuple } from "@effect-app/core/Function"
|
|
3
|
-
import type { MutationResult } from "@effect-app/vue"
|
|
4
|
-
import { Result } from "@effect-app/vue"
|
|
5
3
|
import * as Sentry from "@sentry/browser"
|
|
6
|
-
import { type MaybeRefOrGetter, type Pausable, useIntervalFn, type UseIntervalFnOptions } from "@vueuse/core"
|
|
7
4
|
import type { Either } from "effect-app"
|
|
8
|
-
import {
|
|
5
|
+
import { Cause, Effect, Match, Runtime, S } from "effect-app"
|
|
9
6
|
import { type SupportedErrors } from "effect-app/client"
|
|
10
7
|
import { Failure, Success } from "effect-app/Operations"
|
|
11
8
|
import { dropUndefinedT } from "effect-app/utils"
|
|
12
|
-
import type { R } from "vitest/dist/chunks/config.Crbj2GAb.js"
|
|
13
9
|
import { computed, type ComputedRef } from "vue"
|
|
14
10
|
import type { MakeIntlReturn } from "./makeIntl.js"
|
|
15
|
-
import type { MakeMutation, MutationOptions } from "./mutate.js"
|
|
11
|
+
import type { MakeMutation, MutationOptions, Res } from "./mutate.js"
|
|
12
|
+
import { mutationResultToVue } from "./mutate.js"
|
|
16
13
|
|
|
17
14
|
/**
|
|
18
15
|
* Use this after handling an error yourself, still continueing on the Error track, but the error will not be reported.
|
|
@@ -23,31 +20,6 @@ export class SuppressErrors extends Cause.YieldableError {
|
|
|
23
20
|
|
|
24
21
|
export type ResponseErrors = S.ParseResult.ParseError | SupportedErrors | SuppressErrors
|
|
25
22
|
|
|
26
|
-
export function pauseWhileProcessing(
|
|
27
|
-
iv: Pausable,
|
|
28
|
-
pmf: () => Promise<unknown>
|
|
29
|
-
) {
|
|
30
|
-
return Promise
|
|
31
|
-
.resolve(iv.pause())
|
|
32
|
-
.then(() => pmf())
|
|
33
|
-
.finally(() => iv.resume())
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export function useIntervalPauseWhileProcessing(
|
|
37
|
-
pmf: () => Promise<unknown>,
|
|
38
|
-
interval?: MaybeRefOrGetter<number>,
|
|
39
|
-
options?: Omit<UseIntervalFnOptions, "immediateCallback">
|
|
40
|
-
) {
|
|
41
|
-
const iv = useIntervalFn(
|
|
42
|
-
() => pauseWhileProcessing(iv, pmf),
|
|
43
|
-
interval,
|
|
44
|
-
options ? { ...options, immediateCallback: false } : options
|
|
45
|
-
)
|
|
46
|
-
return {
|
|
47
|
-
isActive: iv.isActive
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
23
|
export interface Opts<A, I = void> extends MutationOptions<A, I> {
|
|
52
24
|
suppressErrorToast?: boolean
|
|
53
25
|
suppressSuccessToast?: boolean
|
|
@@ -83,7 +55,7 @@ export const withSuccess: {
|
|
|
83
55
|
(
|
|
84
56
|
self.handler as (
|
|
85
57
|
i: any
|
|
86
|
-
) => Effect<any, any,
|
|
58
|
+
) => Effect<any, any, any>
|
|
87
59
|
)(i),
|
|
88
60
|
Effect.flatMap((_) =>
|
|
89
61
|
Effect.promise(() => onSuccess(_, i)).pipe(
|
|
@@ -128,12 +100,6 @@ export const withSuccessE: {
|
|
|
128
100
|
}
|
|
129
101
|
}
|
|
130
102
|
|
|
131
|
-
export interface Res<A, E> {
|
|
132
|
-
readonly loading: boolean
|
|
133
|
-
readonly data: A | undefined
|
|
134
|
-
readonly error: E | undefined
|
|
135
|
-
}
|
|
136
|
-
|
|
137
103
|
type WithAction<A> = A & {
|
|
138
104
|
action: string
|
|
139
105
|
}
|
|
@@ -150,33 +116,6 @@ type ActResp<E, A> = readonly [
|
|
|
150
116
|
WithAction<() => Promise<void>>
|
|
151
117
|
]
|
|
152
118
|
|
|
153
|
-
export function mutationResultToVue<A, E>(
|
|
154
|
-
mutationResult: MutationResult<A, E>
|
|
155
|
-
): Res<A, E> {
|
|
156
|
-
switch (mutationResult._tag) {
|
|
157
|
-
case "Loading": {
|
|
158
|
-
return { loading: true, data: undefined, error: undefined }
|
|
159
|
-
}
|
|
160
|
-
case "Success": {
|
|
161
|
-
return {
|
|
162
|
-
loading: false,
|
|
163
|
-
data: mutationResult.data,
|
|
164
|
-
error: undefined
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
case "Error": {
|
|
168
|
-
return {
|
|
169
|
-
loading: false,
|
|
170
|
-
data: undefined,
|
|
171
|
-
error: mutationResult.error
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
case "Initial": {
|
|
175
|
-
return { loading: false, data: undefined, error: undefined }
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
119
|
export const makeClient = <Locale extends string, R>(
|
|
181
120
|
useIntl: MakeIntlReturn<Locale>["useIntl"],
|
|
182
121
|
useToast: () => {
|
|
@@ -452,25 +391,21 @@ export const mapHandler: {
|
|
|
452
391
|
self: {
|
|
453
392
|
handler: (i: I) => Effect<A, E, R>
|
|
454
393
|
name: string
|
|
455
|
-
mapPath: (i: I) => string
|
|
456
394
|
},
|
|
457
395
|
map: (i: I) => (handler: Effect<A, E, R>) => Effect<A2, E2, R2>
|
|
458
396
|
): {
|
|
459
397
|
handler: (i: I) => Effect<A2, E2, R2>
|
|
460
398
|
name: string
|
|
461
|
-
mapPath: (i: I) => string
|
|
462
399
|
}
|
|
463
400
|
<E, A, R, E2, A2, R2>(
|
|
464
401
|
self: {
|
|
465
402
|
handler: Effect<A, E, R>
|
|
466
403
|
name: string
|
|
467
|
-
mapPath: string
|
|
468
404
|
},
|
|
469
405
|
map: (handler: Effect<A, E, R>) => Effect<A2, E2, R2>
|
|
470
406
|
): {
|
|
471
407
|
handler: Effect<A2, E2, R2>
|
|
472
408
|
name: string
|
|
473
|
-
mapPath: string
|
|
474
409
|
}
|
|
475
410
|
} = (self: any, map: any): any => ({
|
|
476
411
|
...self,
|
|
@@ -478,49 +413,3 @@ export const mapHandler: {
|
|
|
478
413
|
? (i: any) => map(i)((self.handler as (i: any) => Effect<any, any, any>)(i))
|
|
479
414
|
: map(self.handler)
|
|
480
415
|
})
|
|
481
|
-
|
|
482
|
-
export function composeQueries<
|
|
483
|
-
R extends Record<string, Result.Result<any, any>>
|
|
484
|
-
>(
|
|
485
|
-
results: R,
|
|
486
|
-
renderPreviousOnFailure?: boolean
|
|
487
|
-
): Result.Result<
|
|
488
|
-
{
|
|
489
|
-
[Property in keyof R]: R[Property] extends Result.Result<infer A, any> ? A
|
|
490
|
-
: never
|
|
491
|
-
},
|
|
492
|
-
{
|
|
493
|
-
[Property in keyof R]: R[Property] extends Result.Result<any, infer E> ? E
|
|
494
|
-
: never
|
|
495
|
-
}[keyof R]
|
|
496
|
-
> {
|
|
497
|
-
const values = renderPreviousOnFailure
|
|
498
|
-
? Object.values(results).map(orPrevious)
|
|
499
|
-
: Object.values(results)
|
|
500
|
-
const error = values.find(Result.isFailure)
|
|
501
|
-
if (error) {
|
|
502
|
-
return error
|
|
503
|
-
}
|
|
504
|
-
const initial = Array.findFirst(values, (x) => x._tag === "Initial" ? Option.some(x) : Option.none())
|
|
505
|
-
if (initial.value !== undefined) {
|
|
506
|
-
return initial.value
|
|
507
|
-
}
|
|
508
|
-
const loading = Array.findFirst(values, (x) => Result.isInitial(x) && x.waiting ? Option.some(x) : Option.none())
|
|
509
|
-
if (loading.value !== undefined) {
|
|
510
|
-
return loading.value
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
const isRefreshing = values.some((x) => x.waiting)
|
|
514
|
-
|
|
515
|
-
const r = Object.entries(results).reduce((prev, [key, value]) => {
|
|
516
|
-
prev[key] = Result.value(value).value
|
|
517
|
-
return prev
|
|
518
|
-
}, {} as any)
|
|
519
|
-
return Result.success(r, isRefreshing)
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
function orPrevious<E, A>(result: Result.Result<A, E>) {
|
|
523
|
-
return Result.isFailure(result) && Option.isSome(result.previousValue)
|
|
524
|
-
? Result.success(result.previousValue.value, result.waiting)
|
|
525
|
-
: result
|
|
526
|
-
}
|