@@ -53,56 +53,59 @@ function Controller(path, paths) {
53
53
if ( paths === void 0 ) { paths = { } ; }
54
54
var handled = false ;
55
55
return function ( req , res ) { return __awaiter ( _this , void 0 , void 0 , function ( ) {
56
- var _a , url , urlWithourQueryParams , urlParts , handlePathUrl , totalHandlers , _loop_1 , path_1 , state_1 ;
56
+ var _a , url , urlWithourQueryParams , urlParts , handlePathUrl , hasHandlers , _loop_1 , path_1 , state_1 ;
57
57
return __generator ( this , function ( _b ) {
58
58
_a = req . url , url = _a === void 0 ? "" : _a ;
59
59
urlWithourQueryParams = url . split ( "?" ) [ 0 ] ;
60
60
urlParts = urlWithourQueryParams . split ( "/" ) ;
61
61
handlePathUrl = "/api" + path ;
62
- totalHandlers = Object . keys ( paths ) . length ;
63
- _loop_1 = function ( path_1 ) {
64
- var _c = path_1 . split ( " " ) , method = _c [ 0 ] , handleUrl = _c [ 1 ] ;
65
- var $handleUrl = handlePathUrl + handleUrl . split ( "?" ) [ 0 ] ;
66
- var handleParts = $handleUrl . split ( "/" ) ;
67
- var finalHandler = [ ] ;
68
- var finalQuery = { } ;
69
- handleParts . forEach ( function ( handlePart , i ) {
70
- if ( handlePart . startsWith ( "[" ) && handlePart . endsWith ( "]" ) ) {
71
- var withoutBrackets = handlePart . replace ( / \[ | \] / g, "" ) ;
72
- finalQuery [ withoutBrackets ] = urlParts [ i ] ;
73
- finalHandler . push ( urlParts [ i ] ) ;
74
- }
75
- else {
76
- finalHandler . push ( handlePart ) ;
77
- }
78
- } ) ;
79
- if ( finalHandler . join ( "/" ) === urlParts . join ( "/" ) ) {
80
- var withQ = __assign ( __assign ( { } , req . query ) , finalQuery ) ;
81
- if ( req . method === method ) {
82
- req . query = withQ ;
83
- paths [ path_1 ] ( req , res ) ;
84
- handled = true ;
85
- return "break" ;
86
- }
87
- else {
88
- if ( ! ( "" . concat ( req . method , " " ) . concat ( handleUrl ) in paths ) && ! handled ) {
89
- res . status ( 405 ) ;
90
- res . send ( "cannot " . concat ( req . method , " " ) . concat ( finalHandler . join ( "/" ) ) ) ;
62
+ hasHandlers = false ;
63
+ try {
64
+ _loop_1 = function ( path_1 ) {
65
+ var _c = path_1 . split ( " " ) , method = _c [ 0 ] , handleUrl = _c [ 1 ] ;
66
+ var $handleUrl = handlePathUrl + handleUrl . split ( "?" ) [ 0 ] ;
67
+ var handleParts = $handleUrl . split ( "/" ) ;
68
+ var finalHandler = [ ] ;
69
+ var finalQuery = { } ;
70
+ handleParts . forEach ( function ( handlePart , i ) {
71
+ if ( handlePart . startsWith ( "[" ) && handlePart . endsWith ( "]" ) ) {
72
+ hasHandlers = true ;
73
+ var withoutBrackets = handlePart . replace ( / \[ | \] / g, "" ) ;
74
+ finalQuery [ withoutBrackets ] = urlParts [ i ] ;
75
+ finalHandler . push ( urlParts [ i ] ) ;
76
+ }
77
+ else {
78
+ finalHandler . push ( handlePart ) ;
79
+ }
80
+ } ) ;
81
+ if ( finalHandler . join ( "/" ) === urlParts . join ( "/" ) && ! handled ) {
82
+ hasHandlers = true ;
83
+ if ( req . method === method ) {
84
+ var withQ = __assign ( __assign ( { } , req . query ) , finalQuery ) ;
85
+ req . query = withQ ;
86
+ paths [ path_1 ] ( req , res ) ;
87
+ handled = true ;
88
+ return "break" ;
91
89
}
92
90
}
91
+ } ;
92
+ for ( path_1 in paths ) {
93
+ state_1 = _loop_1 ( path_1 ) ;
94
+ if ( state_1 === "break" )
95
+ break ;
96
+ }
97
+ }
98
+ catch ( err ) {
99
+ }
100
+ finally {
101
+ if ( hasHandlers ) {
102
+ res . status ( 405 ) ;
103
+ res . send ( "cannot " . concat ( req . method , " " ) . concat ( req . url ) ) ;
93
104
}
94
105
else {
95
106
res . status ( 404 ) ;
96
- res . send ( "Not found" ) ;
97
- if ( Object . keys ( paths ) . indexOf ( path_1 ) < totalHandlers - 1 ) {
98
- return "break" ;
99
- }
107
+ res . send ( "not found" ) ;
100
108
}
101
- } ;
102
- for ( path_1 in paths ) {
103
- state_1 = _loop_1 ( path_1 ) ;
104
- if ( state_1 === "break" )
105
- break ;
106
109
}
107
110
return [ 2 /*return*/ ] ;
108
111
} ) ;
0 commit comments