@@ -10,54 +10,102 @@ var __assign = (this && this.__assign) || function () {
10
10
} ;
11
11
return __assign . apply ( this , arguments ) ;
12
12
} ;
13
+ var __awaiter = ( this && this . __awaiter ) || function ( thisArg , _arguments , P , generator ) {
14
+ function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
15
+ return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
16
+ function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
17
+ function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
18
+ function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
19
+ step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
20
+ } ) ;
21
+ } ;
22
+ var __generator = ( this && this . __generator ) || function ( thisArg , body ) {
23
+ var _ = { label : 0 , sent : function ( ) { if ( t [ 0 ] & 1 ) throw t [ 1 ] ; return t [ 1 ] ; } , trys : [ ] , ops : [ ] } , f , y , t , g ;
24
+ return g = { next : verb ( 0 ) , "throw" : verb ( 1 ) , "return" : verb ( 2 ) } , typeof Symbol === "function" && ( g [ Symbol . iterator ] = function ( ) { return this ; } ) , g ;
25
+ function verb ( n ) { return function ( v ) { return step ( [ n , v ] ) ; } ; }
26
+ function step ( op ) {
27
+ if ( f ) throw new TypeError ( "Generator is already executing." ) ;
28
+ while ( _ ) try {
29
+ if ( f = 1 , y && ( t = op [ 0 ] & 2 ? y [ "return" ] : op [ 0 ] ? y [ "throw" ] || ( ( t = y [ "return" ] ) && t . call ( y ) , 0 ) : y . next ) && ! ( t = t . call ( y , op [ 1 ] ) ) . done ) return t ;
30
+ if ( y = 0 , t ) op = [ op [ 0 ] & 2 , t . value ] ;
31
+ switch ( op [ 0 ] ) {
32
+ case 0 : case 1 : t = op ; break ;
33
+ case 4 : _ . label ++ ; return { value : op [ 1 ] , done : false } ;
34
+ case 5 : _ . label ++ ; y = op [ 1 ] ; op = [ 0 ] ; continue ;
35
+ case 7 : op = _ . ops . pop ( ) ; _ . trys . pop ( ) ; continue ;
36
+ default :
37
+ if ( ! ( t = _ . trys , t = t . length > 0 && t [ t . length - 1 ] ) && ( op [ 0 ] === 6 || op [ 0 ] === 2 ) ) { _ = 0 ; continue ; }
38
+ if ( op [ 0 ] === 3 && ( ! t || ( op [ 1 ] > t [ 0 ] && op [ 1 ] < t [ 3 ] ) ) ) { _ . label = op [ 1 ] ; break ; }
39
+ if ( op [ 0 ] === 6 && _ . label < t [ 1 ] ) { _ . label = t [ 1 ] ; t = op ; break ; }
40
+ if ( t && _ . label < t [ 2 ] ) { _ . label = t [ 2 ] ; _ . ops . push ( op ) ; break ; }
41
+ if ( t [ 2 ] ) _ . ops . pop ( ) ;
42
+ _ . trys . pop ( ) ; continue ;
43
+ }
44
+ op = body . call ( thisArg , _ ) ;
45
+ } catch ( e ) { op = [ 6 , e ] ; y = 0 ; } finally { f = t = 0 ; }
46
+ if ( op [ 0 ] & 5 ) throw op [ 1 ] ; return { value : op [ 0 ] ? op [ 1 ] : void 0 , done : true } ;
47
+ }
48
+ } ;
13
49
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
14
50
exports . Controller = void 0 ;
15
51
function Controller ( path , paths ) {
52
+ var _this = this ;
16
53
if ( paths === void 0 ) { paths = { } ; }
17
- return function ( req , res ) {
18
- var handled = false ;
19
- var _a = req . url , url = _a === void 0 ? "" : _a ;
20
- var urlWithourQueryParams = url . split ( "?" ) [ 0 ] ;
21
- var urlParts = urlWithourQueryParams . split ( "/" ) ;
22
- var handlePathUrl = "/api" + path ;
23
- var _loop_1 = function ( path_1 ) {
24
- var _b = path_1 . split ( " " ) , method = _b [ 0 ] , handleUrl = _b [ 1 ] ;
25
- var $handleUrl = handlePathUrl + handleUrl . split ( "?" ) [ 0 ] ;
26
- var handleParts = $handleUrl . split ( "/" ) ;
27
- var finalHandler = [ ] ;
28
- var finalQuery = { } ;
29
- handleParts . forEach ( function ( handlePart , i ) {
30
- if ( handlePart . startsWith ( "[" ) && handlePart . endsWith ( "]" ) ) {
31
- var withoutBrackets = handlePart . replace ( / \[ | \] / g, "" ) ;
32
- finalQuery [ withoutBrackets ] = urlParts [ i ] ;
33
- finalHandler . push ( urlParts [ i ] ) ;
34
- }
35
- else {
36
- finalHandler . push ( handlePart ) ;
37
- }
38
- } ) ;
39
- if ( finalHandler . join ( "/" ) === urlParts . join ( "/" ) && ! handled ) {
40
- var withQ = __assign ( __assign ( { } , req . query ) , finalQuery ) ;
41
- if ( req . method === method ) {
42
- req . query = withQ ;
43
- paths [ path_1 ] ( req , res ) ;
44
- handled = true ;
54
+ var handled = false ;
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 ;
57
+ return __generator ( this , function ( _b ) {
58
+ _a = req . url , url = _a === void 0 ? "" : _a ;
59
+ urlWithourQueryParams = url . split ( "?" ) [ 0 ] ;
60
+ urlParts = urlWithourQueryParams . split ( "/" ) ;
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 ( "/" ) ) ) ;
91
+ }
92
+ }
45
93
}
46
94
else {
47
- if ( ! ( "" . concat ( req . method , " " ) . concat ( handleUrl ) in paths ) ) {
48
- res . status ( 405 ) ;
49
- res . send ( "cannot " . concat ( req . method , " " ) . concat ( finalHandler . join ( "/" ) ) ) ;
95
+ res . status ( 404 ) ;
96
+ res . send ( "Not found" ) ;
97
+ if ( Object . keys ( paths ) . indexOf ( path_1 ) < totalHandlers - 1 ) {
98
+ return "break" ;
50
99
}
51
100
}
101
+ } ;
102
+ for ( path_1 in paths ) {
103
+ state_1 = _loop_1 ( path_1 ) ;
104
+ if ( state_1 === "break" )
105
+ break ;
52
106
}
53
- else {
54
- res . status ( 404 ) ;
55
- res . send ( "Not found" ) ;
56
- }
57
- } ;
58
- for ( var path_1 in paths ) {
59
- _loop_1 ( path_1 ) ;
60
- }
61
- } ;
107
+ return [ 2 /*return*/ ] ;
108
+ } ) ;
109
+ } ) ; } ;
62
110
}
63
111
exports . Controller = Controller ;
0 commit comments