File tree 2 files changed +20
-9
lines changed
clients/algoliasearch-client-javascript/packages/client-common/src/transporter
playground/javascript/node
2 files changed +20
-9
lines changed Original file line number Diff line number Diff line change 1
1
import type { Response , StackFrame } from '../types' ;
2
2
3
- export class ErrorWithStackTrace extends Error {
4
- stackTrace : StackFrame [ ] ;
3
+ export class AlgoliaError extends Error {
5
4
name : string ;
6
5
7
- constructor ( message : string , stackTrace : StackFrame [ ] , name : string ) {
6
+ constructor ( message : string , name : string ) {
8
7
super ( message ) ;
8
+ this . name = name ?? 'AlgoliaError' ;
9
+ }
10
+ }
11
+
12
+ export class ErrorWithStackTrace extends AlgoliaError {
13
+ stackTrace : StackFrame [ ] ;
14
+
15
+ constructor ( message : string , stackTrace : StackFrame [ ] , name : string ) {
16
+ super ( message , name ) ;
9
17
// the array and object should be frozen to reflect the stackTrace at the time of the error
10
18
this . stackTrace = stackTrace ;
11
- this . name = name ?? 'ErrorWithStackTrace' ;
12
19
}
13
20
}
14
21
@@ -31,13 +38,11 @@ export class ApiError extends ErrorWithStackTrace {
31
38
}
32
39
}
33
40
34
- export class DeserializationError extends Error {
41
+ export class DeserializationError extends AlgoliaError {
35
42
response : Response ;
36
- name : string ;
37
43
38
44
constructor ( message : string , response : Response ) {
39
- super ( message ) ;
45
+ super ( message , 'DeserializationError' ) ;
40
46
this . response = response ;
41
- this . name = 'DeserializationError' ;
42
47
}
43
48
}
Original file line number Diff line number Diff line change @@ -28,11 +28,17 @@ async function testSearch() {
28
28
} ) ;
29
29
30
30
console . log ( `[OK]` , res ) ;
31
- } catch ( e ) {
31
+ } catch ( e : any ) {
32
+ // Instance of
32
33
if ( e instanceof ApiError ) {
33
34
return console . log ( `[${ e . status } ] ${ e . message } ` , e . stackTrace ) ;
34
35
}
35
36
37
+ // Other way
38
+ if ( e . name === 'RetryError' ) {
39
+ return console . log ( `[${ e . name } ] ${ e . message } ` , e . stackTrace ) ;
40
+ }
41
+
36
42
console . log ( '[ERROR]' , e ) ;
37
43
}
38
44
}
You can’t perform that action at this time.
0 commit comments