@@ -6,7 +6,7 @@ import { type DefaultError, type Enabled, type InitialDataFunction, type NonUnde
66import { Array , Cause , type Context , Effect , Option , S } from "effect-app"
77import { type Req } from "effect-app/client"
88import 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"
1010import { type Span } from "effect/Tracer"
1111import { isHttpClientError } from "effect/unstable/http/HttpClientError"
1212import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"
@@ -75,14 +75,6 @@ export interface CustomDefinedPlaceholderQueryOptions<
7575 | PlaceholderDataFunction < NonFunctionGuard < TQueryData > , TError , NonFunctionGuard < TQueryData > , TQueryKey >
7676}
7777
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-
8678export const makeQuery = < R > ( getRuntime : ( ) => Context . Context < R > ) => {
8779 const useQuery_ : {
8880 < I , A , E , Request extends Req , Name extends string > (
@@ -96,8 +88,8 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
9688 ) : readonly [
9789 ComputedRef < AsyncResult . AsyncResult < TData , E > > ,
9890 ComputedRef < TData | undefined > ,
99- ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , KnownFiberFailure < E > > , never , never > ,
100- UseQueryDefinedReturnType < TData , KnownFiberFailure < E > >
91+ ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , CauseException < E > > , never , never > ,
92+ UseQueryDefinedReturnType < TData , CauseException < E > >
10193 ]
10294
10395 < TData = A > (
@@ -106,8 +98,8 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
10698 ) : readonly [
10799 ComputedRef < AsyncResult . AsyncResult < TData , E > > ,
108100 ComputedRef < TData > ,
109- ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , KnownFiberFailure < E > > , never , never > ,
110- UseQueryDefinedReturnType < TData , KnownFiberFailure < E > >
101+ ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , CauseException < E > > , never , never > ,
102+ UseQueryDefinedReturnType < TData , CauseException < E > >
111103 ]
112104
113105 < TData = A > (
@@ -116,8 +108,8 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
116108 ) : readonly [
117109 ComputedRef < AsyncResult . AsyncResult < TData , E > > ,
118110 ComputedRef < TData > ,
119- ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , KnownFiberFailure < E > > , never , never > ,
120- UseQueryDefinedReturnType < TData , KnownFiberFailure < E > >
111+ ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , CauseException < E > > , never , never > ,
112+ UseQueryDefinedReturnType < TData , CauseException < E > >
121113 ]
122114 }
123115 } = < I , A , E , Request extends Req , Name extends string > (
@@ -131,7 +123,7 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
131123 options ?: any
132124 // TODO
133125 ) => {
134- // we wrap into KnownFiberFailure because we want to keep the full cause of the failure.
126+ // we wrap into CauseException because we want to keep the full cause of the failure.
135127 const runPromise = makeRunPromise ( getRuntime ( ) )
136128 const arr = arg
137129 const req : { value : I } = ! arg
@@ -156,14 +148,14 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
156148 throwOnError : false
157149 }
158150
159- const r = useTanstackQuery < A , KnownFiberFailure < E > , TData > (
151+ const r = useTanstackQuery < A , CauseException < E > , TData > (
160152 Effect . isEffect ( handler )
161153 ? {
162154 ...defaultOptions ,
163155 ...options ,
164156 retry : ( retryCount , error ) => {
165- if ( error instanceof KnownFiberFailure ) {
166- if ( ! isHttpClientError ( error . error ) && ! S . is ( ServiceUnavailableError ) ( error . error ) ) {
157+ if ( error instanceof CauseException ) {
158+ if ( ! isHttpClientError ( error . cause ) && ! S . is ( ServiceUnavailableError ) ( error . cause ) ) {
167159 return false
168160 }
169161 }
@@ -186,8 +178,8 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
186178 ...defaultOptions ,
187179 ...options ,
188180 retry : ( retryCount , error ) => {
189- if ( error instanceof KnownFiberFailure ) {
190- if ( ! isHttpClientError ( error . error ) && ! S . is ( ServiceUnavailableError ) ( error . error ) ) {
181+ if ( error instanceof CauseException ) {
182+ if ( ! isHttpClientError ( error . cause ) && ! S . is ( ServiceUnavailableError ) ( error . cause ) ) {
191183 return false
192184 }
193185 }
@@ -235,13 +227,13 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
235227 }
236228
237229 function swrToQuery < E , A > ( r : {
238- error : KnownFiberFailure < E > | undefined
230+ error : CauseException < E > | undefined
239231 data : A | undefined
240232 isValidating : boolean
241233 } ) : AsyncResult . AsyncResult < A , E > {
242234 if ( r . error !== undefined ) {
243235 return AsyncResult . failureWithPrevious (
244- r . error . effectCause ,
236+ r . error . originalCause ,
245237 {
246238 previous : r . data === undefined ? Option . none ( ) : Option . some ( AsyncResult . success ( r . data ) ) ,
247239 waiting : r . isValidating
@@ -268,29 +260,29 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
268260 * Effect results are passed to the caller, including errors.
269261 */
270262 < TData = A > (
271- options : CustomDefinedInitialQueryOptions < A , KnownFiberFailure < E > , TData >
263+ options : CustomDefinedInitialQueryOptions < A , CauseException < E > , TData >
272264 ) : readonly [
273265 ComputedRef < AsyncResult . AsyncResult < TData , E > > ,
274266 ComputedRef < TData > ,
275- ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , KnownFiberFailure < E > > > ,
267+ ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , CauseException < E > > > ,
276268 UseQueryReturnType < any , any >
277269 ]
278270 < TData = A > (
279271 options : CustomDefinedPlaceholderQueryOptions < A , E , TData >
280272 ) : readonly [
281273 ComputedRef < AsyncResult . AsyncResult < TData , E > > ,
282274 ComputedRef < TData > ,
283- ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , KnownFiberFailure < E > > , never , never > ,
284- UseQueryDefinedReturnType < TData , KnownFiberFailure < E > >
275+ ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , CauseException < E > > , never , never > ,
276+ UseQueryDefinedReturnType < TData , CauseException < E > >
285277 ]
286278 // optional options, optional A
287279 /**
288280 * Effect results are passed to the caller, including errors.
289281 */
290- < TData = A > ( options ?: CustomUndefinedInitialQueryOptions < A , KnownFiberFailure < E > , TData > ) : readonly [
282+ < TData = A > ( options ?: CustomUndefinedInitialQueryOptions < A , CauseException < E > , TData > ) : readonly [
291283 ComputedRef < AsyncResult . AsyncResult < A , E > > ,
292284 ComputedRef < A | undefined > ,
293- ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , KnownFiberFailure < E > > > ,
285+ ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , CauseException < E > > > ,
294286 UseQueryReturnType < any , any >
295287 ]
296288 }
@@ -307,11 +299,11 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
307299 */
308300 < TData = A > (
309301 arg : Arg | WatchSource < Arg > ,
310- options : CustomDefinedInitialQueryOptions < A , KnownFiberFailure < E > , TData >
302+ options : CustomDefinedInitialQueryOptions < A , CauseException < E > , TData >
311303 ) : readonly [
312304 ComputedRef < AsyncResult . AsyncResult < TData , E > > ,
313305 ComputedRef < TData > ,
314- ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , KnownFiberFailure < E > > > ,
306+ ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , CauseException < E > > > ,
315307 UseQueryReturnType < any , any >
316308 ]
317309 // required options, with placeholderData
@@ -320,11 +312,11 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
320312 */
321313 < TData = A > (
322314 arg : Arg | WatchSource < Arg > ,
323- options : CustomDefinedPlaceholderQueryOptions < A , KnownFiberFailure < E > , TData >
315+ options : CustomDefinedPlaceholderQueryOptions < A , CauseException < E > , TData >
324316 ) : readonly [
325317 ComputedRef < AsyncResult . AsyncResult < TData , E > > ,
326318 ComputedRef < TData > ,
327- ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , KnownFiberFailure < E > > > ,
319+ ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , CauseException < E > > > ,
328320 UseQueryReturnType < any , any >
329321 ]
330322 // optional options, optional A
@@ -333,11 +325,11 @@ export const makeQuery = <R>(getRuntime: () => Context.Context<R>) => {
333325 */
334326 < TData = A > (
335327 arg : Arg | WatchSource < Arg > ,
336- options ?: CustomUndefinedInitialQueryOptions < A , KnownFiberFailure < E > , TData >
328+ options ?: CustomUndefinedInitialQueryOptions < A , CauseException < E > , TData >
337329 ) : readonly [
338330 ComputedRef < AsyncResult . AsyncResult < TData , E > > ,
339331 ComputedRef < TData | undefined > ,
340- ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , KnownFiberFailure < E > > > ,
332+ ( options ?: RefetchOptions ) => Effect . Effect < QueryObserverResult < TData , CauseException < E > > > ,
341333 UseQueryReturnType < any , any >
342334 ]
343335 }
0 commit comments