@@ -13,9 +13,9 @@ import haye from 'haye'
1313import { Middleware } from 'co-compose'
1414import { Exception } from '@poppinss/utils'
1515import { RouteNode } from '@ioc:Adonis/Core/Route'
16- import { MiddlewareStoreContract } from '@ioc:Adonis/Core/Middleware'
1716import { IocContract , IocResolverContract } from '@adonisjs/fold'
1817import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
18+ import { MiddlewareStoreContract , ResolvedMiddlewareHandler } from '@ioc:Adonis/Core/Middleware'
1919
2020import { useReturnValue } from '../../helpers'
2121
@@ -31,53 +31,51 @@ export class PreCompiler {
3131 /**
3232 * This function is used by reference to execute the route handler
3333 */
34- private finalRouteHandler = async function finalRouteHandler ( ctx : HttpContextContract ) {
35- let data : any = { }
36-
37- let requestProfiler = ctx . profiler
34+ private runRouteHandler = async ( ctx : HttpContextContract ) => {
35+ const routeHandler = ctx . route ! . meta . resolvedHandler !
3836
3937 /*
4038 * Passing a child to the route handler, so that all internal
4139 * actions can have their own child row
4240 */
43- ctx . profiler = ctx . profiler . create ( 'http:route:handler' , data )
44-
45- const routeHandler = ctx . route ! . meta . resolvedHandler !
4641 let returnValue : any
4742
4843 try {
4944 if ( routeHandler . type === 'function' ) {
5045 returnValue = await routeHandler . handler ( ctx )
5146 } else {
52- data . controller = routeHandler . namespace
53- data . method = routeHandler . method
5447 returnValue = await this . resolver . call ( routeHandler , ctx . route ! . meta . namespace , [ ctx ] )
5548 }
5649
5750 if ( useReturnValue ( returnValue , ctx ) ) {
5851 ctx . response . send ( returnValue )
5952 }
60-
61- ctx . profiler . end ( )
62- ctx . profiler = requestProfiler
6353 } catch ( error ) {
64- ctx . profiler . end ( )
65- ctx . profiler = requestProfiler
6654 throw error
6755 }
68- } . bind ( this )
56+ }
57+
58+ /**
59+ * Method to execute middleware using the middleware store
60+ */
61+ private executeMiddleware = (
62+ middleware : ResolvedMiddlewareHandler ,
63+ params : [ HttpContextContract , ( ) => Promise < void > ]
64+ ) => {
65+ return this . middlewareStore . invokeMiddleware ( middleware , params )
66+ }
6967
7068 /**
7169 * This function is used by reference to execute the route middleware + route handler
7270 */
73- private routeMiddlewareHandler = async function routeMiddlewareHandler ( ctx : HttpContextContract ) {
74- await new Middleware ( )
71+ private runRouteMiddleware = ( ctx : HttpContextContract ) => {
72+ return new Middleware ( )
7573 . register ( ctx . route ! . meta . resolvedMiddleware ! )
7674 . runner ( )
77- . executor ( this . middlewareStore . invokeMiddleware . bind ( this . middlewareStore ) )
78- . finalHandler ( this . finalRouteHandler , [ ctx ] )
75+ . executor ( this . executeMiddleware )
76+ . finalHandler ( this . runRouteHandler , [ ctx ] )
7977 . run ( [ ctx ] )
80- } . bind ( this )
78+ }
8179
8280 /**
8381 * The resolver used to resolve the controllers from IoC container
@@ -138,9 +136,9 @@ export class PreCompiler {
138136 */
139137 private setFinalHandler ( route : RouteNode ) {
140138 if ( route . meta . resolvedMiddleware && route . meta . resolvedMiddleware . length ) {
141- route . meta . finalHandler = this . routeMiddlewareHandler
139+ route . meta . finalHandler = this . runRouteMiddleware
142140 } else {
143- route . meta . finalHandler = this . finalRouteHandler
141+ route . meta . finalHandler = this . runRouteHandler
144142 }
145143 }
146144
0 commit comments