@@ -3,6 +3,7 @@ const restana = require('restana')
3
3
const pump = require ( 'pump' )
4
4
const toArray = require ( 'stream-to-array' )
5
5
const defaultProxyHandler = ( req , res , url , proxy , proxyOpts ) => proxy ( req , res , url , proxyOpts )
6
+ const DEFAULT_METHODS = require ( 'restana/libs/methods' )
6
7
7
8
const gateway = ( opts ) => {
8
9
opts = Object . assign ( {
@@ -55,9 +56,22 @@ const gateway = (opts) => {
55
56
// populating timeout config
56
57
route . timeout = route . timeout || opts . timeout
57
58
58
- // registering route handler
59
- const methods = route . methods || [ 'DELETE' , 'GET' , 'HEAD' , 'PATCH' , 'POST' , 'PUT' , 'OPTIONS' ]
60
- server . route ( methods , route . prefix + route . pathRegex , handler ( route , proxy , proxyHandler ) , null , route . middlewares )
59
+ // registering route handlers
60
+ const methods = route . methods || DEFAULT_METHODS
61
+ methods . forEach ( method => {
62
+ method = method . toLowerCase ( )
63
+
64
+ if ( server [ method ] ) {
65
+ server [ method ] (
66
+ // path
67
+ route . prefix + route . pathRegex ,
68
+ // route handler
69
+ handler ( route , proxy , proxyHandler ) ,
70
+ // route middlewares
71
+ route . middlewares
72
+ )
73
+ }
74
+ } )
61
75
} )
62
76
63
77
return server
0 commit comments