@effect-app/vue 2.17.0 → 2.17.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 +12 -0
- package/_cjs/query.cjs +8 -3
- package/_cjs/query.cjs.map +1 -1
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +7 -5
- package/package.json +1 -1
- package/src/query.ts +8 -5
package/CHANGELOG.md
CHANGED
package/_cjs/query.cjs
CHANGED
|
@@ -76,13 +76,18 @@ const makeQuery = runtime => {
|
|
|
76
76
|
signal
|
|
77
77
|
})
|
|
78
78
|
});
|
|
79
|
+
const latestSuccess = (0, _vue.shallowRef)();
|
|
79
80
|
const result = (0, _vue.computed)(() => swrToQuery({
|
|
80
81
|
error: r.error.value ?? undefined,
|
|
81
|
-
data: r.data.value,
|
|
82
|
+
data: r.data.value ?? latestSuccess.value,
|
|
83
|
+
// we fall back to existing data, as tanstack query might loose it when the key changes
|
|
82
84
|
isValidating: r.isFetching.value
|
|
83
85
|
}));
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
// not using `computed` here as we have a circular dependency
|
|
87
|
+
(0, _vue.watch)(result, value => latestSuccess.value = _effectApp.Option.getOrUndefined(Result.value(value)), {
|
|
88
|
+
immediate: true
|
|
89
|
+
});
|
|
90
|
+
return [result, (0, _vue.computed)(() => latestSuccess.value),
|
|
86
91
|
// one thing to keep in mind is that span will be disconnected as Context does not pass from outside.
|
|
87
92
|
// TODO: consider how we should handle the Result here which is `QueryObserverResult<A, KnownFiberFailure<E>>`
|
|
88
93
|
// and always ends up in the success channel, even when error..
|
package/_cjs/query.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.cjs","names":["Result","_interopRequireWildcard","require","_vueQuery","_effectApp","_client","_httpClient","_vue","_lib","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","makeQuery","runtime","useSafeQuery_","q","arg","options","runPromise","Runtime","getRuntime","arr","req","undefined","value","ref","queryKey","makeQueryKey","handler","useQuery","Effect","isEffect","retry","retryCount","error","isFiberFailure","cause","FiberFailureCauseId","sq","Cause","squash","isHttpRequestError","isHttpResponseError","S","is","ServiceUnavailableError","queryFn","signal","pipe","tapDefect","reportRuntimeError","withSpan","name","captureStackTrace","result","computed","swrToQuery","data","isValidating","isFetching","
|
|
1
|
+
{"version":3,"file":"query.cjs","names":["Result","_interopRequireWildcard","require","_vueQuery","_effectApp","_client","_httpClient","_vue","_lib","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","makeQuery","runtime","useSafeQuery_","q","arg","options","runPromise","Runtime","getRuntime","arr","req","undefined","value","ref","queryKey","makeQueryKey","handler","useQuery","Effect","isEffect","retry","retryCount","error","isFiberFailure","cause","FiberFailureCauseId","sq","Cause","squash","isHttpRequestError","isHttpResponseError","S","is","ServiceUnavailableError","queryFn","signal","pipe","tapDefect","reportRuntimeError","withSpan","name","captureStackTrace","latestSuccess","shallowRef","result","computed","swrToQuery","data","isValidating","isFetching","watch","Option","getOrUndefined","immediate","promise","refetch","failureWithPrevious","none","some","success","initial","useSafeQuery","self","argOrOptions","exports","orPrevious","isFailure","isSome","previousValue","waiting","composeQueries","results","renderPreviousOnFailure","values","map","find","Array","findFirst","x","_tag","loading","isInitial","isRefreshing","entries","reduce","prev","key"],"sources":["../src/query.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
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,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAS,KAAK,EAAE,MAAM,EAAU,OAAO,EAAK,MAAM,YAAY,CAAA;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAGjH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AAI/D,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,SAAS,GAAI,CAAC,WAAW,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/query.js
CHANGED
|
@@ -7,7 +7,7 @@ import { useQuery } from "@tanstack/vue-query";
|
|
|
7
7
|
import { Array, Cause, Effect, Option, Runtime, S } from "effect-app";
|
|
8
8
|
import { ServiceUnavailableError } from "effect-app/client";
|
|
9
9
|
import { isHttpRequestError, isHttpResponseError } from "effect-app/http/http-client";
|
|
10
|
-
import { computed, ref } from "vue";
|
|
10
|
+
import { computed, ref, shallowRef, watch } from "vue";
|
|
11
11
|
import { getRuntime, makeQueryKey, reportRuntimeError } from "./lib.js";
|
|
12
12
|
export const makeQuery = (runtime) => {
|
|
13
13
|
// TODO: options
|
|
@@ -62,15 +62,17 @@ export const makeQuery = (runtime) => {
|
|
|
62
62
|
queryFn: ({ signal }) => runPromise(handler(req.value)
|
|
63
63
|
.pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`, { captureStackTrace: false })), { signal })
|
|
64
64
|
});
|
|
65
|
+
const latestSuccess = shallowRef();
|
|
65
66
|
const result = computed(() => swrToQuery({
|
|
66
67
|
error: r.error.value ?? undefined,
|
|
67
|
-
data: r.data.value,
|
|
68
|
+
data: r.data.value ?? latestSuccess.value, // we fall back to existing data, as tanstack query might loose it when the key changes
|
|
68
69
|
isValidating: r.isFetching.value
|
|
69
70
|
}));
|
|
70
|
-
|
|
71
|
+
// not using `computed` here as we have a circular dependency
|
|
72
|
+
watch(result, (value) => latestSuccess.value = Option.getOrUndefined(Result.value(value)), { immediate: true });
|
|
71
73
|
return [
|
|
72
74
|
result,
|
|
73
|
-
latestSuccess,
|
|
75
|
+
computed(() => latestSuccess.value),
|
|
74
76
|
// one thing to keep in mind is that span will be disconnected as Context does not pass from outside.
|
|
75
77
|
// TODO: consider how we should handle the Result here which is `QueryObserverResult<A, KnownFiberFailure<E>>`
|
|
76
78
|
// and always ends up in the success channel, even when error..
|
|
@@ -120,4 +122,4 @@ export function composeQueries(results, renderPreviousOnFailure) {
|
|
|
120
122
|
}, {});
|
|
121
123
|
return Result.success(r, isRefreshing);
|
|
122
124
|
}
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUE7QUFTOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNyRixPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBa0J2RSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBSSxPQUFtRCxFQUFFLEVBQUU7SUFDbEYsZ0JBQWdCO0lBQ2hCLHNSQUFzUjtJQUN0UiwyUkFBMlI7SUFDM1IsdVJBQXVSO0lBQ3ZSLE1BQU0sYUFBYSxHQUFHLENBQ3BCLENBRW9DLEVBQ3BDLEdBQXdCLEVBQ3hCLFVBQXdFLEVBQUUsQ0FBQyxPQUFPO01BQ2xGLEVBQUU7UUFDRixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQzFELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQTtRQUNmLE1BQU0sR0FBRyxHQUFpQixDQUFDLEdBQUc7WUFDNUIsQ0FBQyxDQUFDLFNBQVM7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
|
package/package.json
CHANGED
package/src/query.ts
CHANGED
|
@@ -16,7 +16,7 @@ import { Array, Cause, Effect, Option, Runtime, S } from "effect-app"
|
|
|
16
16
|
import { ServiceUnavailableError } from "effect-app/client"
|
|
17
17
|
import type { RequestHandler, RequestHandlerWithInput, TaggedRequestClassAny } from "effect-app/client/clientFor"
|
|
18
18
|
import { isHttpRequestError, isHttpResponseError } from "effect-app/http/http-client"
|
|
19
|
-
import { computed, ref } from "vue"
|
|
19
|
+
import { computed, ref, shallowRef, watch } from "vue"
|
|
20
20
|
import type { ComputedRef, ShallowRef, WatchSource } from "vue"
|
|
21
21
|
import { getRuntime, makeQueryKey, reportRuntimeError } from "./lib.js"
|
|
22
22
|
|
|
@@ -113,17 +113,20 @@ export const makeQuery = <R>(runtime: ShallowRef<Runtime.Runtime<R> | undefined>
|
|
|
113
113
|
}
|
|
114
114
|
)
|
|
115
115
|
|
|
116
|
-
const
|
|
116
|
+
const latestSuccess = shallowRef<A>()
|
|
117
|
+
const result = computed((): Result.Result<A, E> =>
|
|
117
118
|
swrToQuery({
|
|
118
119
|
error: r.error.value ?? undefined,
|
|
119
|
-
data: r.data.value,
|
|
120
|
+
data: r.data.value ?? latestSuccess.value, // we fall back to existing data, as tanstack query might loose it when the key changes
|
|
120
121
|
isValidating: r.isFetching.value
|
|
121
122
|
})
|
|
122
123
|
)
|
|
123
|
-
|
|
124
|
+
// not using `computed` here as we have a circular dependency
|
|
125
|
+
watch(result, (value) => latestSuccess.value = Option.getOrUndefined(Result.value(value)), { immediate: true })
|
|
126
|
+
|
|
124
127
|
return [
|
|
125
128
|
result,
|
|
126
|
-
latestSuccess,
|
|
129
|
+
computed(() => latestSuccess.value),
|
|
127
130
|
// one thing to keep in mind is that span will be disconnected as Context does not pass from outside.
|
|
128
131
|
// TODO: consider how we should handle the Result here which is `QueryObserverResult<A, KnownFiberFailure<E>>`
|
|
129
132
|
// and always ends up in the success channel, even when error..
|