@@ -36,11 +36,13 @@ function sendErrorToSentry(errorData: object): void {
36
36
export const hapiErrorPlugin = {
37
37
name : 'SentryHapiErrorPlugin' ,
38
38
version : '0.0.1' ,
39
- register : async function ( server : Server ) {
39
+ register : async function ( serverArg : Record < any , any > ) {
40
+ const server = serverArg as unknown as Server ;
41
+
40
42
server . events . on ( 'request' , ( request , event ) => {
41
43
const transaction = getActiveTransaction ( ) ;
42
44
43
- if ( isBoomObject ( request . response ) ) {
45
+ if ( request . response && isBoomObject ( request . response ) ) {
44
46
sendErrorToSentry ( request . response ) ;
45
47
} else if ( isErrorEvent ( event ) ) {
46
48
sendErrorToSentry ( event . error ) ;
@@ -57,7 +59,9 @@ export const hapiErrorPlugin = {
57
59
export const hapiTracingPlugin = {
58
60
name : 'SentryHapiTracingPlugin' ,
59
61
version : '0.0.1' ,
60
- register : async function ( server : Server ) {
62
+ register : async function ( serverArg : Record < any , any > ) {
63
+ const server = serverArg as unknown as Server ;
64
+
61
65
server . ext ( 'onPreHandler' , ( request , h ) => {
62
66
const transaction = continueTrace (
63
67
{
@@ -68,8 +72,8 @@ export const hapiTracingPlugin = {
68
72
return startTransaction ( {
69
73
...transactionContext ,
70
74
op : 'hapi.request' ,
71
- name : request . path ,
72
- description : request . route ? request . route . path : '' ,
75
+ name : request . route . path ,
76
+ description : ` ${ request . route . method } ${ request . path } ` ,
73
77
} ) ;
74
78
} ,
75
79
) ;
@@ -84,7 +88,7 @@ export const hapiTracingPlugin = {
84
88
server . ext ( 'onPreResponse' , ( request , h ) => {
85
89
const transaction = getActiveTransaction ( ) ;
86
90
87
- if ( isResponseObject ( request . response ) && transaction ) {
91
+ if ( request . response && isResponseObject ( request . response ) && transaction ) {
88
92
const response = request . response as ResponseObject ;
89
93
response . header ( 'sentry-trace' , transaction . toTraceparent ( ) ) ;
90
94
@@ -93,7 +97,7 @@ export const hapiTracingPlugin = {
93
97
) ;
94
98
95
99
if ( dynamicSamplingContext ) {
96
- response . header ( 'sentry- baggage' , dynamicSamplingContext ) ;
100
+ response . header ( 'baggage' , dynamicSamplingContext ) ;
97
101
}
98
102
}
99
103
@@ -103,7 +107,7 @@ export const hapiTracingPlugin = {
103
107
server . ext ( 'onPostHandler' , ( request , h ) => {
104
108
const transaction = getActiveTransaction ( ) ;
105
109
106
- if ( isResponseObject ( request . response ) && transaction ) {
110
+ if ( request . response && isResponseObject ( request . response ) && transaction ) {
107
111
transaction . setHttpStatus ( request . response . statusCode ) ;
108
112
}
109
113
@@ -118,7 +122,7 @@ export const hapiTracingPlugin = {
118
122
119
123
export type HapiOptions = {
120
124
/** Hapi server instance */
121
- server ?: Server ;
125
+ server ?: Record < any , any > ;
122
126
} ;
123
127
124
128
/**
@@ -139,7 +143,9 @@ export class Hapi implements Integration {
139
143
140
144
public constructor ( options ?: HapiOptions ) {
141
145
if ( options ?. server ) {
142
- this . _hapiServer = options . server ;
146
+ const server = options . server as unknown as Server ;
147
+
148
+ this . _hapiServer = server ;
143
149
}
144
150
145
151
this . name = Hapi . id ;
0 commit comments