@@ -53,56 +53,59 @@ function Controller(path, paths) {
5353 if ( paths === void 0 ) { paths = { } ; }
5454 var handled = false ;
5555 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 ;
5757 return __generator ( this , function ( _b ) {
5858 _a = req . url , url = _a === void 0 ? "" : _a ;
5959 urlWithourQueryParams = url . split ( "?" ) [ 0 ] ;
6060 urlParts = urlWithourQueryParams . split ( "/" ) ;
6161 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" ;
9189 }
9290 }
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 ) ) ;
93104 }
94105 else {
95106 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" ) ;
100108 }
101- } ;
102- for ( path_1 in paths ) {
103- state_1 = _loop_1 ( path_1 ) ;
104- if ( state_1 === "break" )
105- break ;
106109 }
107110 return [ 2 /*return*/ ] ;
108111 } ) ;
0 commit comments