@@ -133,47 +133,45 @@ module.exports = class RpcEngine extends SafeEventEmitter {
133133
134134 // go down stack of middleware, call and collect optional returnHandlers
135135 for ( const middleware of this . _middleware ) {
136+ isComplete = await RpcEngine . _runMiddleware (
137+ req , res , middleware , returnHandlers ,
138+ )
136139 if ( isComplete ) {
137140 break
138141 }
139- await runMiddleware ( middleware )
140142 }
141-
142143 return { isComplete, returnHandlers : returnHandlers . reverse ( ) }
144+ }
143145
144- // runs an individual middleware
145- function runMiddleware ( middleware ) {
146- return new Promise ( ( resolve ) => {
146+ // runs an individual middleware
147+ static _runMiddleware ( req , res , middleware , returnHandlers ) {
148+ return new Promise ( ( resolve ) => {
147149
148- try {
149- middleware ( req , res , next , end )
150- } catch ( err ) {
151- end ( err )
150+ const end = ( err ) => {
151+ const error = err || ( res && res . error )
152+ if ( error ) {
153+ res . error = serializeError ( error )
154+ res . _originalError = error
152155 }
156+ resolve ( true ) // true indicates the request should end
157+ }
153158
154- function next ( returnHandler ) {
155- if ( res . error ) {
156- end ( res . error )
157- } else {
158- if ( returnHandler ) {
159- returnHandlers . push ( returnHandler )
160- }
161- resolve ( )
159+ const next = ( returnHandler ) => {
160+ if ( res . error ) {
161+ end ( res . error )
162+ } else {
163+ if ( returnHandler ) {
164+ returnHandlers . push ( returnHandler )
162165 }
166+ resolve ( false ) // false indicates the request should not end
163167 }
168+ }
164169
165- function end ( err ) {
166- isComplete = true
167-
168- const error = err || ( res && res . error )
169- if ( error ) {
170- res . error = serializeError ( error )
171- res . _originalError = error
172- delete res . result
173- }
174- resolve ( )
175- }
176- } )
177- }
170+ try {
171+ middleware ( req , res , next , end )
172+ } catch ( error ) {
173+ end ( error )
174+ }
175+ } )
178176 }
179177}
0 commit comments