@@ -33,67 +33,58 @@ export async function sendFeedbackRequest(
33
33
type : 'feedback' ,
34
34
} ;
35
35
36
- return new Promise ( ( resolve , reject ) => {
37
- withScope ( async scope => {
38
- // No use for breadcrumbs in feedback
39
- scope . clearBreadcrumbs ( ) ;
40
-
41
- if ( [ FEEDBACK_API_SOURCE , FEEDBACK_WIDGET_SOURCE ] . includes ( String ( source ) ) ) {
42
- scope . setLevel ( 'info' ) ;
43
- }
36
+ return withScope ( async scope => {
37
+ // No use for breadcrumbs in feedback
38
+ scope . clearBreadcrumbs ( ) ;
39
+
40
+ if ( [ FEEDBACK_API_SOURCE , FEEDBACK_WIDGET_SOURCE ] . includes ( String ( source ) ) ) {
41
+ scope . setLevel ( 'info' ) ;
42
+ }
43
+
44
+ const feedbackEvent = await prepareFeedbackEvent ( {
45
+ scope,
46
+ client,
47
+ event : baseEvent ,
48
+ } ) ;
44
49
45
- const feedbackEvent = await prepareFeedbackEvent ( {
46
- scope,
47
- client,
48
- event : baseEvent ,
49
- } ) ;
50
+ if ( ! feedbackEvent ) {
51
+ return ;
52
+ }
50
53
51
- if ( ! feedbackEvent ) {
52
- resolve ( ) ;
53
- return ;
54
- }
54
+ if ( client . emit ) {
55
+ client . emit ( 'beforeSendFeedback' , feedbackEvent , { includeReplay : Boolean ( includeReplay ) } ) ;
56
+ }
55
57
56
- if ( client . emit ) {
57
- client . emit ( 'beforeSendFeedback' , feedbackEvent , { includeReplay : Boolean ( includeReplay ) } ) ;
58
- }
58
+ const envelope = createEventEnvelope ( feedbackEvent , dsn , client . getOptions ( ) . _metadata , client . getOptions ( ) . tunnel ) ;
59
59
60
- const envelope = createEventEnvelope (
61
- feedbackEvent ,
62
- dsn ,
63
- client . getOptions ( ) . _metadata ,
64
- client . getOptions ( ) . tunnel ,
65
- ) ;
60
+ let response : void | TransportMakeRequestResponse ;
66
61
67
- let response : void | TransportMakeRequestResponse ;
62
+ try {
63
+ response = await transport . send ( envelope ) ;
64
+ } catch ( err ) {
65
+ const error = new Error ( 'Unable to send Feedback' ) ;
68
66
69
67
try {
70
- response = await transport . send ( envelope ) ;
71
- } catch ( err ) {
72
- const error = new Error ( 'Unable to send Feedback' ) ;
73
-
74
- try {
75
- // In case browsers don't allow this property to be writable
76
- // @ts -expect-error This needs lib es2022 and newer
77
- error . cause = err ;
78
- } catch {
79
- // nothing to do
80
- }
81
- reject ( error ) ;
68
+ // In case browsers don't allow this property to be writable
69
+ // @ts -expect-error This needs lib es2022 and newer
70
+ error . cause = err ;
71
+ } catch {
72
+ // nothing to do
82
73
}
74
+ throw error ;
75
+ }
83
76
84
- // TODO (v8): we can remove this guard once transport.send's type signature doesn't include void anymore
85
- if ( ! response ) {
86
- resolve ( response ) ;
87
- return ;
88
- }
77
+ // TODO (v8): we can remove this guard once transport.send's type signature doesn't include void anymore
78
+ if ( ! response ) {
79
+ return ;
80
+ }
89
81
90
- // Require valid status codes, otherwise can assume feedback was not sent successfully
91
- if ( typeof response . statusCode === 'number' && ( response . statusCode < 200 || response . statusCode >= 300 ) ) {
92
- reject ( new Error ( 'Unable to send Feedback' ) ) ;
93
- }
82
+ // Require valid status codes, otherwise can assume feedback was not sent successfully
83
+ if ( typeof response . statusCode === 'number' && ( response . statusCode < 200 || response . statusCode >= 300 ) ) {
84
+ throw new Error ( 'Unable to send Feedback' ) ;
85
+ }
94
86
95
- resolve ( response ) ;
96
- } ) ;
87
+ return response ;
97
88
} ) ;
98
89
}
99
90
0 commit comments