@@ -61,6 +61,40 @@ function createNitroApp(): NitroApp {
61
61
return errorHandler ( error as H3Error , event ) ;
62
62
} ,
63
63
onRequest : async ( event ) => {
64
+ // Init nitro context
65
+ event . context . nitro = event . context . nitro || { errors : [ ] } ;
66
+
67
+ // Support platform context provided by local fetch
68
+ const envContext : { waitUntil ?: H3Event [ "waitUntil" ] } | undefined = (
69
+ event . node . req as unknown as { __unenv__ : any }
70
+ ) ?. __unenv__ ;
71
+ if ( envContext ) {
72
+ Object . assign ( event . context , envContext ) ;
73
+ }
74
+
75
+ // Assign bound fetch to context
76
+ event . fetch = ( req , init ) =>
77
+ fetchWithEvent ( event , req , init , { fetch : localFetch } ) ;
78
+ event . $fetch = ( req , init ) =>
79
+ fetchWithEvent ( event , req , init as RequestInit , {
80
+ fetch : $fetch as any ,
81
+ } ) ;
82
+
83
+ // https://github.com/nitrojs/nitro/issues/1420
84
+ event . waitUntil = ( promise ) => {
85
+ if ( ! event . context . nitro . _waitUntilPromises ) {
86
+ event . context . nitro . _waitUntilPromises = [ ] ;
87
+ }
88
+ event . context . nitro . _waitUntilPromises . push ( promise ) ;
89
+ if ( envContext ?. waitUntil ) {
90
+ envContext . waitUntil ( promise ) ;
91
+ }
92
+ } ;
93
+
94
+ event . captureError = ( error , context ) => {
95
+ captureError ( error , { event, ...context } ) ;
96
+ } ;
97
+
64
98
await nitroApp . hooks . callHook ( "request" , event ) . catch ( ( error ) => {
65
99
captureError ( error , { event, tags : [ "request" ] } ) ;
66
100
} ) ;
@@ -111,45 +145,6 @@ function createNitroApp(): NitroApp {
111
145
// Register route rule handlers
112
146
h3App . use ( createRouteRulesHandler ( { localFetch } ) ) ;
113
147
114
- // A generic event handler give nitro access to the requests
115
- h3App . use (
116
- eventHandler ( ( event ) => {
117
- // Init nitro context
118
- event . context . nitro = event . context . nitro || { errors : [ ] } ;
119
-
120
- // Support platform context provided by local fetch
121
- const envContext : { waitUntil ?: H3Event [ "waitUntil" ] } | undefined = (
122
- event . node . req as unknown as { __unenv__ : any }
123
- ) ?. __unenv__ ;
124
- if ( envContext ) {
125
- Object . assign ( event . context , envContext ) ;
126
- }
127
-
128
- // Assign bound fetch to context
129
- event . fetch = ( req , init ) =>
130
- fetchWithEvent ( event , req , init , { fetch : localFetch } ) ;
131
- event . $fetch = ( req , init ) =>
132
- fetchWithEvent ( event , req , init as RequestInit , {
133
- fetch : $fetch as any ,
134
- } ) ;
135
-
136
- // https://github.com/nitrojs/nitro/issues/1420
137
- event . waitUntil = ( promise ) => {
138
- if ( ! event . context . nitro . _waitUntilPromises ) {
139
- event . context . nitro . _waitUntilPromises = [ ] ;
140
- }
141
- event . context . nitro . _waitUntilPromises . push ( promise ) ;
142
- if ( envContext ?. waitUntil ) {
143
- envContext . waitUntil ( promise ) ;
144
- }
145
- } ;
146
-
147
- event . captureError = ( error , context ) => {
148
- captureError ( error , { event, ...context } ) ;
149
- } ;
150
- } )
151
- ) ;
152
-
153
148
for ( const h of handlers ) {
154
149
let handler = h . lazy ? lazyEventHandler ( h . handler ) : h . handler ;
155
150
if ( h . middleware || ! h . route ) {
0 commit comments