@effect-app/vue 1.25.1 → 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/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @effect-app/vue
2
2
 
3
+ ## 1.26.0
4
+
5
+ ### Minor Changes
6
+
7
+ - a4c0f16: play with effect helpers
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [a4c0f16]
12
+ - @effect-app/vue@1.26.0
13
+
14
+ ## 1.25.2
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [c069b8e]
19
+ - effect-app@1.30.0
20
+ - @effect-app/vue@1.25.2
21
+
3
22
  ## 1.25.1
4
23
 
5
24
  ### Patch Changes
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SuppressErrors = void 0;
7
+ exports.composeQueries = composeQueries;
8
+ exports.mapHandler = exports.makeClient2 = void 0;
9
+ exports.mutationResultToVue = mutationResultToVue;
10
+ exports.pauseWhileProcessing = pauseWhileProcessing;
11
+ exports.useIntervalPauseWhileProcessing = useIntervalPauseWhileProcessing;
12
+ exports.withSuccessE = exports.withSuccess = void 0;
13
+ var _Function = require("@effect-app/core/Function");
14
+ var _vue = require("@effect-app/vue");
15
+ var Sentry = _interopRequireWildcard(require("@sentry/browser"));
16
+ var _core = require("@vueuse/core");
17
+ var _effectApp = require("effect-app");
18
+ var _Operations = require("effect-app/Operations");
19
+ var _utils = require("effect-app/utils");
20
+ var _vue2 = require("vue");
21
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
+ /* eslint-disable @typescript-eslint/no-explicit-any */
24
+
25
+ /**
26
+ * Use this after handling an error yourself, still continueing on the Error track, but the error will not be reported.
27
+ */
28
+ class SuppressErrors extends _effectApp.Cause.YieldableError {
29
+ _tag = "SuppressErrors";
30
+ }
31
+ exports.SuppressErrors = SuppressErrors;
32
+ function pauseWhileProcessing(iv, pmf) {
33
+ return Promise.resolve(iv.pause()).then(() => pmf()).finally(() => iv.resume());
34
+ }
35
+ function useIntervalPauseWhileProcessing(pmf, interval, options) {
36
+ const iv = (0, _core.useIntervalFn)(() => pauseWhileProcessing(iv, pmf), interval, options ? {
37
+ ...options,
38
+ immediateCallback: false
39
+ } : options);
40
+ return {
41
+ isActive: iv.isActive
42
+ };
43
+ }
44
+ const withSuccess = (self, onSuccess) => ({
45
+ ...self,
46
+ handler: typeof self.handler === "function" ? i => (0, _Function.pipe)(self.handler(i), _effectApp.Effect.flatMap(_ => _effectApp.Effect.promise(() => onSuccess(_, i)).pipe(_effectApp.Effect.withSpan("onSuccess")))) : _effectApp.Effect.flatMap(self.handler, _ => _effectApp.Effect.promise(() => onSuccess(_)).pipe(_effectApp.Effect.withSpan("onSuccess")))
47
+ });
48
+ exports.withSuccess = withSuccess;
49
+ const withSuccessE = (self, onSuccessE) => {
50
+ return {
51
+ ...self,
52
+ handler: typeof self.handler === "function" ? i => (0, _Function.pipe)(self.handler(i), _effectApp.Effect.flatMap(_ => onSuccessE(_, i))) : _effectApp.Effect.flatMap(self.handler, _ => onSuccessE(_))
53
+ };
54
+ };
55
+ exports.withSuccessE = withSuccessE;
56
+ function mutationResultToVue(mutationResult) {
57
+ switch (mutationResult._tag) {
58
+ case "Loading":
59
+ {
60
+ return {
61
+ loading: true,
62
+ data: undefined,
63
+ error: undefined
64
+ };
65
+ }
66
+ case "Success":
67
+ {
68
+ return {
69
+ loading: false,
70
+ data: mutationResult.data,
71
+ error: undefined
72
+ };
73
+ }
74
+ case "Error":
75
+ {
76
+ return {
77
+ loading: false,
78
+ data: undefined,
79
+ error: mutationResult.error
80
+ };
81
+ }
82
+ case "Initial":
83
+ {
84
+ return {
85
+ loading: false,
86
+ data: undefined,
87
+ error: undefined
88
+ };
89
+ }
90
+ }
91
+ }
92
+ const makeClient2 = (useIntl, useToast, useSafeMutation, messages = {}) => {
93
+ const useHandleRequestWithToast = () => {
94
+ const toast = useToast();
95
+ const {
96
+ intl
97
+ } = useIntl();
98
+ return handleRequestWithToast;
99
+ /**
100
+ * Pass a function that returns a Promise.
101
+ * Returns an execution function which reports errors as Toast.
102
+ */
103
+ function handleRequestWithToast(f, action, options = {
104
+ suppressErrorToast: false
105
+ }) {
106
+ const message = messages[action] ?? action;
107
+ const warnMessage = intl.value.formatMessage({
108
+ id: "handle.with_warnings"
109
+ }, {
110
+ action: message
111
+ });
112
+ const successMessage = intl.value.formatMessage({
113
+ id: "handle.success"
114
+ }, {
115
+ action: message
116
+ });
117
+ const errorMessage = intl.value.formatMessage({
118
+ id: "handle.with_errors"
119
+ }, {
120
+ action: message
121
+ });
122
+ return Object.assign((0, _Function.flow)(f, p => p.then(r => r._tag === "Right" ? _effectApp.S.is(_Operations.Failure)(r.right) ? Promise.resolve(toast.warning(warnMessage + r.right.message ? "\n" + r.right.message : "")).then(_ => {}) : Promise.resolve(toast.success(successMessage + (_effectApp.S.is(_Operations.Success)(r.right) && r.right.message ? "\n" + r.right.message : ""))).then(_ => {}) : r.left._tag === "SuppressErrors" ? Promise.resolve(void 0) : Promise.resolve(!options.suppressErrorToast && toast.error(`${errorMessage}:\n` + renderError(r.left))).then(_ => {
123
+ console.warn(r.left, r.left.toString());
124
+ }), err => {
125
+ if (_effectApp.Cause.isInterruptedException(err) || _effectApp.Runtime.isFiberFailure(err) && _effectApp.Cause.isInterruptedOnly(err[_effectApp.Runtime.FiberFailureCauseId])) {
126
+ return;
127
+ }
128
+ const extra = {
129
+ action,
130
+ message: `Unexpected Error trying to ${action}`
131
+ };
132
+ Sentry.captureException(err, {
133
+ extra
134
+ });
135
+ console.error(err, extra);
136
+ return toast.error(intl.value.formatMessage({
137
+ id: "handle.unexpected_error"
138
+ }, {
139
+ action: message,
140
+ error: JSON.stringify(err, undefined, 2)
141
+ }));
142
+ })), {
143
+ action
144
+ });
145
+ }
146
+ function renderError(e) {
147
+ return _effectApp.Match.value(e).pipe(_effectApp.Match.tags({
148
+ // HttpErrorRequest: e =>
149
+ // intl.value.formatMessage(
150
+ // { id: "handle.request_error" },
151
+ // { error: `${e.error}` },
152
+ // ),
153
+ // HttpErrorResponse: e =>
154
+ // e.response.status >= 500 ||
155
+ // e.response.body._tag !== "Some" ||
156
+ // !e.response.body.value
157
+ // ? intl.value.formatMessage(
158
+ // { id: "handle.error_response" },
159
+ // {
160
+ // error: `${
161
+ // e.response.body._tag === "Some" && e.response.body.value
162
+ // ? parseError(e.response.body.value)
163
+ // : "Unknown"
164
+ // } (${e.response.status})`,
165
+ // },
166
+ // )
167
+ // : intl.value.formatMessage(
168
+ // { id: "handle.unexpected_error" },
169
+ // {
170
+ // error:
171
+ // JSON.stringify(e.response.body, undefined, 2) +
172
+ // "( " +
173
+ // e.response.status +
174
+ // ")",
175
+ // },
176
+ // ),
177
+ // ResponseError: e =>
178
+ // intl.value.formatMessage(
179
+ // { id: "handle.response_error" },
180
+ // { error: `${e.error}` },
181
+ // ),
182
+ ParseError: e => {
183
+ console.warn(e.toString());
184
+ return intl.value.formatMessage({
185
+ id: "validation.failed"
186
+ });
187
+ }
188
+ }), _effectApp.Match.orElse(e => intl.value.formatMessage({
189
+ id: "handle.unexpected_error"
190
+ }, {
191
+ error: `${e.message ?? e._tag ?? e}`
192
+ })));
193
+ }
194
+ };
195
+ /**
196
+ * Pass a function that returns an Effect, e.g from a client action, give it a name, and optionally pass an onSuccess callback.
197
+ * Returns a tuple with state ref and execution function which reports errors as Toast.
198
+ */
199
+ const useAndHandleMutation = (self, action, options) => {
200
+ const handleRequestWithToast = useHandleRequestWithToast();
201
+ const [a, b] = useSafeMutation({
202
+ handler: _effectApp.Effect.isEffect(self.handler) ? (0, _Function.pipe)(_effectApp.Effect.annotateCurrentSpan({
203
+ action
204
+ }), _effectApp.Effect.andThen(self.handler)) : (...args) => (0, _Function.pipe)(_effectApp.Effect.annotateCurrentSpan({
205
+ action
206
+ }), _effectApp.Effect.andThen(self.handler(...args))),
207
+ name: self.name
208
+ }, (0, _utils.dropUndefinedT)({
209
+ queryInvalidation: options?.queryInvalidation
210
+ }));
211
+ return (0, _Function.tuple)((0, _vue2.computed)(() => mutationResultToVue(a.value)), handleRequestWithToast(b, action, options));
212
+ };
213
+ function makeUseAndHandleMutation(onSuccess, defaultOptions) {
214
+ return (self, action, options) => {
215
+ return useAndHandleMutation({
216
+ handler: typeof self.handler === "function" ? onSuccess ? i => _effectApp.Effect.tap(self.handler(i), () => _effectApp.Effect.promise(onSuccess)) : self.handler : onSuccess ? _effectApp.Effect.tap(self.handler, () => _effectApp.Effect.promise(onSuccess)) : self.handler,
217
+ name: self.name
218
+ }, action, {
219
+ ...defaultOptions,
220
+ ...options
221
+ });
222
+ };
223
+ }
224
+ const useSafeMutationWithState = self => {
225
+ const [a, b] = useSafeMutation(self);
226
+ return (0, _Function.tuple)((0, _vue2.computed)(() => mutationResultToVue(a.value)), b);
227
+ };
228
+ return {
229
+ useSafeMutationWithState,
230
+ useAndHandleMutation,
231
+ makeUseAndHandleMutation,
232
+ useHandleRequestWithToast
233
+ };
234
+ };
235
+ exports.makeClient2 = makeClient2;
236
+ const mapHandler = (self, map) => ({
237
+ ...self,
238
+ handler: typeof self.handler === "function" ? i => map(i)(self.handler(i)) : map(self.handler)
239
+ });
240
+ exports.mapHandler = mapHandler;
241
+ function composeQueries(results, renderPreviousOnFailure) {
242
+ const values = renderPreviousOnFailure ? Object.values(results).map(orPrevious) : Object.values(results);
243
+ const error = values.find(_vue.Result.isFailure);
244
+ if (error) {
245
+ return error;
246
+ }
247
+ const initial = _effectApp.Array.findFirst(values, x => x._tag === "Initial" ? _effectApp.Option.some(x) : _effectApp.Option.none());
248
+ if (initial.value !== undefined) {
249
+ return initial.value;
250
+ }
251
+ const loading = _effectApp.Array.findFirst(values, x => _vue.Result.isInitial(x) && x.waiting ? _effectApp.Option.some(x) : _effectApp.Option.none());
252
+ if (loading.value !== undefined) {
253
+ return loading.value;
254
+ }
255
+ const isRefreshing = values.some(x => x.waiting);
256
+ const r = Object.entries(results).reduce((prev, [key, value]) => {
257
+ prev[key] = _vue.Result.value(value).value;
258
+ return prev;
259
+ }, {});
260
+ return _vue.Result.success(r, isRefreshing);
261
+ }
262
+ function orPrevious(result) {
263
+ return _vue.Result.isFailure(result) && _effectApp.Option.isSome(result.previousValue) ? _vue.Result.success(result.previousValue.value, result.waiting) : result;
264
+ }
265
+ //# sourceMappingURL=makeClient2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeClient2.cjs","names":["_Function","require","_vue","Sentry","_interopRequireWildcard","_core","_effectApp","_Operations","_utils","_vue2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SuppressErrors","Cause","YieldableError","_tag","exports","pauseWhileProcessing","iv","pmf","Promise","resolve","pause","then","finally","resume","useIntervalPauseWhileProcessing","interval","options","useIntervalFn","immediateCallback","isActive","withSuccess","self","onSuccess","handler","pipe","Effect","flatMap","_","promise","withSpan","withSuccessE","onSuccessE","mutationResultToVue","mutationResult","loading","data","undefined","error","makeClient2","useIntl","useToast","useSafeMutation","messages","useHandleRequestWithToast","toast","intl","handleRequestWithToast","f","action","suppressErrorToast","message","warnMessage","value","formatMessage","id","successMessage","errorMessage","assign","flow","p","S","is","Failure","right","warning","success","Success","left","renderError","console","warn","toString","err","isInterruptedException","Runtime","isFiberFailure","isInterruptedOnly","FiberFailureCauseId","extra","captureException","JSON","stringify","Match","tags","ParseError","orElse","useAndHandleMutation","b","isEffect","annotateCurrentSpan","andThen","args","name","dropUndefinedT","queryInvalidation","tuple","computed","makeUseAndHandleMutation","defaultOptions","tap","useSafeMutationWithState","mapHandler","map","composeQueries","results","renderPreviousOnFailure","values","orPrevious","find","Result","isFailure","initial","Array","findFirst","x","Option","some","none","isInitial","waiting","isRefreshing","entries","reduce","prev","key","result","isSome","previousValue"],"sources":["../src/makeClient2.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.make = make;
7
+ exports.makeMutation2 = void 0;
8
+ var _Function = require("@effect-app/core/Function");
9
+ var Result = _interopRequireWildcard(require("@effect-rx/rx/Result"));
10
+ var _vueQuery = require("@tanstack/vue-query");
11
+ var _effectApp = require("effect-app");
12
+ var _vue = require("vue");
13
+ var _internal = require("./internal.cjs");
14
+ var _mutate = require("./mutate.cjs");
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ /* eslint-disable @typescript-eslint/no-explicit-any */
18
+
19
+ function make(self) {
20
+ const result = (0, _vue.shallowRef)(Result.initial());
21
+ const execute = _effectApp.Effect.sync(() => {
22
+ result.value = Result.waiting(result.value);
23
+ }).pipe(_effectApp.Effect.andThen(self), _effectApp.Effect.exit, _effectApp.Effect.andThen(Result.fromExit), _effectApp.Effect.flatMap(r => _effectApp.Effect.sync(() => result.value = r)));
24
+ const latestSuccess = (0, _vue.computed)(() => _effectApp.Option.getOrUndefined(Result.value(result.value)));
25
+ return (0, _Function.tuple)(result, latestSuccess, execute);
26
+ }
27
+ // TODO: more efficient invalidation, including args etc
28
+ // return Effect.promise(() => queryClient.invalidateQueries({
29
+ // predicate: (_) => nses.includes(_.queryKey.filter((_) => _.startsWith("$")).join("/"))
30
+ // }))
31
+ /*
32
+ // const nses: string[] = []
33
+ // for (let i = 0; i < ns.length; i++) {
34
+ // nses.push(ns.slice(0, i + 1).join("/"))
35
+ // }
36
+ */
37
+ const makeMutation2 = () => {
38
+ /**
39
+ * Pass a function that returns an Effect, e.g from a client action, or an Effect
40
+ * Returns a tuple with state ref and execution function which reports errors as Toast.
41
+ */
42
+ const useSafeMutation = (self, options) => {
43
+ const queryClient = (0, _vueQuery.useQueryClient)();
44
+ const state = (0, _vue.ref)({
45
+ _tag: "Initial"
46
+ });
47
+ const invalidateQueries = (filters, options) => _effectApp.Effect.promise(() => queryClient.invalidateQueries(filters, options));
48
+ function handleExit(exit) {
49
+ return _effectApp.Effect.sync(() => {
50
+ if (_effectApp.Exit.isSuccess(exit)) {
51
+ state.value = {
52
+ _tag: "Success",
53
+ data: exit.value
54
+ };
55
+ return;
56
+ }
57
+ const err = _effectApp.Cause.failureOption(exit.cause);
58
+ if (_effectApp.Option.isSome(err)) {
59
+ state.value = {
60
+ _tag: "Error",
61
+ error: err.value
62
+ };
63
+ return;
64
+ }
65
+ });
66
+ }
67
+ const invalidateCache = _effectApp.Effect.suspend(() => {
68
+ const queryKey = (0, _mutate.getQueryKey)(self.name);
69
+ if (options?.queryInvalidation) {
70
+ const opts = options.queryInvalidation(queryKey, self.name);
71
+ if (!opts.length) {
72
+ return _effectApp.Effect.void;
73
+ }
74
+ return _effectApp.Effect.andThen(_effectApp.Effect.annotateCurrentSpan({
75
+ queryKey,
76
+ opts
77
+ }), _effectApp.Effect.forEach(opts, _ => invalidateQueries(_.filters, _.options), {
78
+ concurrency: "inherit"
79
+ })).pipe(_effectApp.Effect.withSpan("client.query.invalidation", {
80
+ captureStackTrace: false
81
+ }));
82
+ }
83
+ if (!queryKey) return _effectApp.Effect.void;
84
+ return _effectApp.Effect.andThen(_effectApp.Effect.annotateCurrentSpan({
85
+ queryKey
86
+ }), invalidateQueries({
87
+ queryKey
88
+ })).pipe(_effectApp.Effect.withSpan("client.query.invalidation", {
89
+ captureStackTrace: false
90
+ }));
91
+ });
92
+ const exec = fst => {
93
+ let effect;
94
+ if (_effectApp.Effect.isEffect(self.handler)) {
95
+ effect = self.handler;
96
+ } else {
97
+ effect = self.handler(fst);
98
+ }
99
+ return _effectApp.Effect.sync(() => {
100
+ state.value = {
101
+ _tag: "Loading"
102
+ };
103
+ }).pipe(_effectApp.Effect.zipRight(effect), _effectApp.Effect.tap(invalidateCache), _effectApp.Effect.tapDefect(_internal.reportRuntimeError), _effectApp.Effect.onExit(handleExit), _effectApp.Effect.withSpan(`mutation ${self.name}`, {
104
+ captureStackTrace: false
105
+ }));
106
+ };
107
+ return (0, _Function.tuple)(state, exec);
108
+ };
109
+ return useSafeMutation;
110
+ };
111
+ exports.makeMutation2 = makeMutation2;
112
+ //# sourceMappingURL=mutate2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutate2.cjs","names":["_Function","require","Result","_interopRequireWildcard","_vueQuery","_effectApp","_vue","_internal","_mutate","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","self","result","shallowRef","initial","execute","Effect","sync","value","waiting","pipe","andThen","exit","fromExit","flatMap","latestSuccess","computed","Option","getOrUndefined","tuple","makeMutation2","useSafeMutation","options","queryClient","useQueryClient","state","ref","_tag","invalidateQueries","filters","promise","handleExit","Exit","isSuccess","data","err","Cause","failureOption","cause","isSome","error","invalidateCache","suspend","queryKey","getQueryKey","name","queryInvalidation","opts","length","void","annotateCurrentSpan","forEach","_","concurrency","withSpan","captureStackTrace","exec","fst","effect","isEffect","handler","zipRight","tap","tapDefect","reportRuntimeError","onExit","exports"],"sources":["../src/mutate2.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.makeQuery2 = void 0;
7
+ var _httpClient = require("@effect-app/core/http/http-client");
8
+ var Result = _interopRequireWildcard(require("@effect-rx/rx/Result"));
9
+ var _vueQuery = require("@tanstack/vue-query");
10
+ var _effectApp = require("effect-app");
11
+ var _client = require("effect-app/client");
12
+ var _vue = require("vue");
13
+ var _internal = require("./internal.cjs");
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ /* eslint-disable @typescript-eslint/no-explicit-any */
17
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
18
+ /* eslint-disable @typescript-eslint/no-unsafe-return */
19
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
20
+
21
+ const makeQuery2 = runtime => {
22
+ // TODO: options
23
+ // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): UseQueryReturnType<TData, TError>;
24
+ // declare function useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): UseQueryDefinedReturnType<TData, TError>;
25
+ // 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>;
26
+ const useSafeQuery_ = (q, arg, options = {} // TODO
27
+ ) => {
28
+ const runPromise = _effectApp.Runtime.runPromise(runtime.value);
29
+ const arr = arg;
30
+ const req = !arg ? undefined : typeof arr === "function" ? {
31
+ get value() {
32
+ return arr();
33
+ }
34
+ } : (0, _vue.ref)(arg);
35
+ const queryKey = (0, _internal.makeQueryKey)(q.name);
36
+ const handler = q.handler;
37
+ const r = (0, _vueQuery.useQuery)(_effectApp.Effect.isEffect(handler) ? {
38
+ ...options,
39
+ retry: (retryCount, error) => {
40
+ if (_effectApp.Runtime.isFiberFailure(error)) {
41
+ const cause = error[_effectApp.Runtime.FiberFailureCauseId];
42
+ const sq = _effectApp.Cause.squash(cause);
43
+ if (!(0, _httpClient.isHttpRequestError)(sq) && !(0, _httpClient.isHttpResponseError)(sq) && !_effectApp.S.is(_client.ServiceUnavailableError)(sq)) {
44
+ return false;
45
+ }
46
+ }
47
+ return retryCount < 5;
48
+ },
49
+ queryKey,
50
+ queryFn: ({
51
+ signal
52
+ }) => runPromise(handler.pipe(_effectApp.Effect.tapDefect(_internal.reportRuntimeError), _effectApp.Effect.withSpan(`query ${q.name}`, {
53
+ captureStackTrace: false
54
+ })), {
55
+ signal
56
+ })
57
+ } : {
58
+ ...options,
59
+ retry: (retryCount, error) => {
60
+ if (_effectApp.Runtime.isFiberFailure(error)) {
61
+ const cause = error[_effectApp.Runtime.FiberFailureCauseId];
62
+ const sq = _effectApp.Cause.squash(cause);
63
+ if (!(0, _httpClient.isHttpRequestError)(sq) && !(0, _httpClient.isHttpResponseError)(sq) && !_effectApp.S.is(_client.ServiceUnavailableError)(sq)) {
64
+ return false;
65
+ }
66
+ }
67
+ return retryCount < 5;
68
+ },
69
+ queryKey: [...queryKey, req],
70
+ queryFn: ({
71
+ signal
72
+ }) => runPromise(handler(req.value).pipe(_effectApp.Effect.tapDefect(_internal.reportRuntimeError), _effectApp.Effect.withSpan(`query ${q.name}`, {
73
+ captureStackTrace: false
74
+ })), {
75
+ signal
76
+ })
77
+ });
78
+ const result = (0, _vue.computed)(() => swrToQuery({
79
+ error: r.error.value ?? undefined,
80
+ data: r.data.value,
81
+ isValidating: r.isFetching.value
82
+ }));
83
+ const latestSuccess = (0, _vue.computed)(() => _effectApp.Option.getOrUndefined(Result.value(result.value)));
84
+ return [result, latestSuccess,
85
+ // one thing to keep in mind is that span will be disconnected as Context does not pass from outside.
86
+ options => _effectApp.Effect.promise(() => r.refetch(options)), r];
87
+ };
88
+ function swrToQuery(r) {
89
+ if (r.error) {
90
+ return Result.failureWithPrevious(r.error[_effectApp.Runtime.FiberFailureCauseId], r.data === undefined ? _effectApp.Option.none() : _effectApp.Option.some(Result.success(r.data)), r.isValidating);
91
+ }
92
+ if (r.data !== undefined) {
93
+ return Result.success(r.data, r.isValidating);
94
+ }
95
+ return Result.initial(r.isValidating);
96
+ }
97
+ function useSafeQuery(self,
98
+ /*
99
+ q:
100
+ | {
101
+ handler: (
102
+ req: I
103
+ ) => Effect<
104
+ A,
105
+ E,
106
+ R
107
+ >
108
+ mapPath: (req: I) => string
109
+ name: string
110
+ }
111
+ | {
112
+ handler: Effect<
113
+ A,
114
+ E,
115
+ R
116
+ >
117
+ mapPath: string
118
+ name: string
119
+ },
120
+ */
121
+ argOrOptions, options) {
122
+ return _effectApp.Effect.isEffect(self.handler) ? useSafeQuery_(self, undefined, argOrOptions) : useSafeQuery_(self, argOrOptions, options);
123
+ }
124
+ return useSafeQuery;
125
+ };
126
+ exports.makeQuery2 = makeQuery2;
127
+ //# sourceMappingURL=query2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query2.cjs","names":["_httpClient","require","Result","_interopRequireWildcard","_vueQuery","_effectApp","_client","_vue","_internal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","makeQuery2","runtime","useSafeQuery_","q","arg","options","runPromise","Runtime","value","arr","req","undefined","ref","queryKey","makeQueryKey","name","handler","useQuery","Effect","isEffect","retry","retryCount","error","isFiberFailure","cause","FiberFailureCauseId","sq","Cause","squash","isHttpRequestError","isHttpResponseError","S","is","ServiceUnavailableError","queryFn","signal","pipe","tapDefect","reportRuntimeError","withSpan","captureStackTrace","result","computed","swrToQuery","data","isValidating","isFetching","latestSuccess","Option","getOrUndefined","promise","refetch","failureWithPrevious","none","some","success","initial","useSafeQuery","self","argOrOptions","exports"],"sources":["../src/query2.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}