@@ -24,10 +24,14 @@ export type HandleApiCallOptions = {
2424 spinner ?: Spinner | undefined
2525}
2626
27+ export type ApiCallResult < T extends SocketSdkOperations > = CResult <
28+ SocketSdkSuccessResult < T > [ 'data' ]
29+ >
30+
2731export async function handleApiCall < T extends SocketSdkOperations > (
2832 value : Promise < SocketSdkResult < T > > ,
2933 options ?: HandleApiCallOptions | undefined ,
30- ) : Promise < CResult < SocketSdkSuccessResult < T > [ 'data' ] > > {
34+ ) : Promise < ApiCallResult < T > > {
3135 const { desc, spinner } = {
3236 __proto__ : null ,
3337 ...options ,
@@ -53,48 +57,43 @@ export async function handleApiCall<T extends SocketSdkOperations>(
5357 }
5458 } catch ( e ) {
5559 spinner ?. stop ( )
60+ const socketSdkErrorResult : ApiCallResult < T > = {
61+ ok : false ,
62+ message : 'Socket API returned an error' ,
63+ cause : messageWithCauses ( e as Error ) ,
64+ }
5665 if ( desc ) {
5766 logger . fail ( `An error was thrown while requesting ${ desc } ` )
5867 debugFn ( 'error' , `caught: ${ desc } error` )
5968 } else {
6069 debugFn ( 'error' , `caught: Socket API request error` )
6170 }
62- debugDir ( 'inspect' , { error : e } )
63- return {
64- ok : false ,
65- message : 'Socket API returned an error' ,
66- cause : messageWithCauses ( e as Error ) ,
67- }
71+ debugDir ( 'inspect' , { error : e , socketSdkErrorResult } )
72+ return socketSdkErrorResult
6873 }
6974
7075 // Note: TS can't narrow down the type of result due to generics.
7176 if ( sdkResult . success === false ) {
7277 const errorResult = sdkResult as SocketSdkErrorResult < T >
7378 const message = `${ errorResult . error || NO_ERROR_MESSAGE } `
7479 const { cause : reason } = errorResult
75-
76- if ( desc ) {
77- debugFn ( 'error' , `fail: ${ desc } bad response` )
78- } else {
79- debugFn ( 'error' , 'fail: bad response' )
80- }
81- debugDir ( 'inspect' , { sdkResult } )
82-
83- return {
80+ const socketSdkErrorResult : ApiCallResult < T > = {
8481 ok : false ,
8582 message : 'Socket API returned an error' ,
8683 cause : `${ message } ${ reason ? ` ( Reason: ${ reason } )` : '' } ` ,
8784 data : {
8885 code : sdkResult . status ,
8986 } ,
9087 }
91- } else {
92- const { data } = sdkResult as SocketSdkSuccessResult < T >
93- return {
94- ok : true ,
95- data,
96- }
88+ debugFn ( 'error' , `fail:${ desc ? ` ${ desc } ` : '' } bad response` )
89+ debugDir ( 'inspect' , { sdkResult } )
90+ return socketSdkErrorResult
91+ }
92+ const socketSdkSuccessResult : ApiCallResult < T > = {
93+ ok : true ,
94+ data : ( sdkResult as SocketSdkSuccessResult < T > ) . data ,
9795 }
96+ return socketSdkSuccessResult
9897}
9998
10099export async function handleApiCallNoSpinner < T extends SocketSdkOperations > (
0 commit comments