@effect-app/vue 1.25.2 → 1.26.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/dist/query2.js ADDED
@@ -0,0 +1,119 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
3
+ /* eslint-disable @typescript-eslint/no-unsafe-return */
4
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
5
+ import { isHttpRequestError, isHttpResponseError } from "@effect-app/core/http/http-client";
6
+ import * as Result from "@effect-rx/rx/Result";
7
+ import { useQuery } from "@tanstack/vue-query";
8
+ import { Cause, Effect, Option, Runtime, S } from "effect-app";
9
+ import { ServiceUnavailableError } from "effect-app/client";
10
+ import { computed, ref } from "vue";
11
+ import { makeQueryKey, reportRuntimeError } from "./internal.js";
12
+ export const makeQuery2 = (runtime) => {
13
+ // TODO: options
14
+ // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): UseQueryReturnType<TData, TError>;
15
+ // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): UseQueryDefinedReturnType<TData, TError>;
16
+ // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient): UseQueryReturnType<TData, TError>;
17
+ const useSafeQuery_ = (q, arg, options = {} // TODO
18
+ ) => {
19
+ const runPromise = Runtime.runPromise(runtime.value);
20
+ const arr = arg;
21
+ const req = !arg
22
+ ? undefined
23
+ : typeof arr === "function"
24
+ ? {
25
+ get value() {
26
+ return arr();
27
+ }
28
+ }
29
+ : ref(arg);
30
+ const queryKey = makeQueryKey(q.name);
31
+ const handler = q.handler;
32
+ const r = useQuery(Effect.isEffect(handler)
33
+ ? {
34
+ ...options,
35
+ retry: (retryCount, error) => {
36
+ if (Runtime.isFiberFailure(error)) {
37
+ const cause = error[Runtime.FiberFailureCauseId];
38
+ const sq = Cause.squash(cause);
39
+ if (!isHttpRequestError(sq) && !isHttpResponseError(sq) && !S.is(ServiceUnavailableError)(sq)) {
40
+ return false;
41
+ }
42
+ }
43
+ return retryCount < 5;
44
+ },
45
+ queryKey,
46
+ queryFn: ({ signal }) => runPromise(handler
47
+ .pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`, { captureStackTrace: false })), { signal })
48
+ }
49
+ : {
50
+ ...options,
51
+ retry: (retryCount, error) => {
52
+ if (Runtime.isFiberFailure(error)) {
53
+ const cause = error[Runtime.FiberFailureCauseId];
54
+ const sq = Cause.squash(cause);
55
+ if (!isHttpRequestError(sq) && !isHttpResponseError(sq) && !S.is(ServiceUnavailableError)(sq)) {
56
+ return false;
57
+ }
58
+ }
59
+ return retryCount < 5;
60
+ },
61
+ queryKey: [...queryKey, req],
62
+ queryFn: ({ signal }) => runPromise(handler(req.value)
63
+ .pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`, { captureStackTrace: false })), { signal })
64
+ });
65
+ const result = computed(() => swrToQuery({
66
+ error: r.error.value ?? undefined,
67
+ data: r.data.value,
68
+ isValidating: r.isFetching.value
69
+ }));
70
+ const latestSuccess = computed(() => Option.getOrUndefined(Result.value(result.value)));
71
+ return [
72
+ result,
73
+ latestSuccess,
74
+ // one thing to keep in mind is that span will be disconnected as Context does not pass from outside.
75
+ (options) => Effect.promise(() => r.refetch(options)),
76
+ r
77
+ ];
78
+ };
79
+ function swrToQuery(r) {
80
+ if (r.error) {
81
+ return Result.failureWithPrevious(r.error[Runtime.FiberFailureCauseId], r.data === undefined ? Option.none() : Option.some(Result.success(r.data)), r.isValidating);
82
+ }
83
+ if (r.data !== undefined) {
84
+ return Result.success(r.data, r.isValidating);
85
+ }
86
+ return Result.initial(r.isValidating);
87
+ }
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) {
113
+ return Effect.isEffect(self.handler)
114
+ ? useSafeQuery_(self, undefined, argOrOptions)
115
+ : useSafeQuery_(self, argOrOptions, options);
116
+ }
117
+ return useSafeQuery;
118
+ };
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3F1ZXJ5Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsc0RBQXNEO0FBQ3RELHdEQUF3RDtBQUN4RCw0REFBNEQ7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDM0YsT0FBTyxLQUFLLE1BQU0sTUFBTSxzQkFBc0IsQ0FBQTtBQVE5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQWtCaEUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUksT0FBZ0MsRUFBRSxFQUFFO0lBQ2hFLGdCQUFnQjtJQUNoQixzUkFBc1I7SUFDdFIsMlJBQTJSO0lBQzNSLHVSQUF1UjtJQUN2UixNQUFNLGFBQWEsR0FBRyxDQUNwQixDQW9CRyxFQUNILEdBQXdCLEVBQ3hCLFVBQXdFLEVBQUUsQ0FBQyxPQUFPO01BQ2xGLEVBQUU7UUFDRixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNwRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUE7UUFDZixNQUFNLEdBQUcsR0FBaUIsQ0FBQyxHQUFHO1lBQzVCLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFVBQVU7Z0JBQzNCLENB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "1.25.2",
3
+ "version": "1.26.0",
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.0",
13
14
  "effect-app": "1.30.0",
14
- "@effect-app/schema": "1.19.0",
15
- "@effect-app/vue": "1.25.2"
15
+ "@effect-app/schema": "1.19.0"
16
16
  },
17
17
  "peerDependencies": {
18
18
  "@effect/platform": "^0.68.5",
@@ -102,6 +102,16 @@
102
102
  "default": "./_cjs/makeClient.cjs"
103
103
  }
104
104
  },
105
+ "./makeClient2": {
106
+ "import": {
107
+ "types": "./dist/makeClient2.d.ts",
108
+ "default": "./dist/makeClient2.js"
109
+ },
110
+ "require": {
111
+ "types": "./dist/makeClient2.d.ts",
112
+ "default": "./_cjs/makeClient2.cjs"
113
+ }
114
+ },
105
115
  "./makeContext": {
106
116
  "import": {
107
117
  "types": "./dist/makeContext.d.ts",
@@ -132,6 +142,16 @@
132
142
  "default": "./_cjs/mutate.cjs"
133
143
  }
134
144
  },
145
+ "./mutate2": {
146
+ "import": {
147
+ "types": "./dist/mutate2.d.ts",
148
+ "default": "./dist/mutate2.js"
149
+ },
150
+ "require": {
151
+ "types": "./dist/mutate2.d.ts",
152
+ "default": "./_cjs/mutate2.cjs"
153
+ }
154
+ },
135
155
  "./query": {
136
156
  "import": {
137
157
  "types": "./dist/query.d.ts",
@@ -142,6 +162,16 @@
142
162
  "default": "./_cjs/query.cjs"
143
163
  }
144
164
  },
165
+ "./query2": {
166
+ "import": {
167
+ "types": "./dist/query2.d.ts",
168
+ "default": "./dist/query2.js"
169
+ },
170
+ "require": {
171
+ "types": "./dist/query2.d.ts",
172
+ "default": "./_cjs/query2.cjs"
173
+ }
174
+ },
145
175
  "./routeParams": {
146
176
  "import": {
147
177
  "types": "./dist/routeParams.d.ts",