diff --git a/index.js b/index.js index 548a63e..768ba93 100644 --- a/index.js +++ b/index.js @@ -244,6 +244,11 @@ class Router { const headers = request.headers.asObject; delete headers.host; delete headers.Host; + + if (actions.request_headers) { + Object.assign(headers, actions.request_headers) + } + if (originConfig.hostHeader) headers.Host = originConfig.hostHeader; const requestOptions = { timeout: 60000, @@ -423,7 +428,7 @@ class Rule { class RequestActions { constructor(request) { - this.request = request; + this._request = request; } // we do theses as a getters, because the function is accessed through destructuring and called without its // context/this @@ -439,6 +444,17 @@ class RequestActions { } }; } + get setRequestHeader() { + let actions = this; + return (name, value) => { + // Store request header modifications + if (!actions.request_headers) actions.request_headers = {}; + actions.request_headers[name.toLowerCase()] = value; + }; + } + get request() { + return this._request; + } get cache() { let actions = this; return (options) => {