diff options
Diffstat (limited to 'src/hero.mjs')
-rw-r--r-- | src/hero.mjs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/hero.mjs b/src/hero.mjs index b378887..859d86f 100644 --- a/src/hero.mjs +++ b/src/hero.mjs @@ -44,11 +44,12 @@ export const interceptorsFn = ({ } = {}) => ({ requestId: (req, next) => next({ ...req, id: uuidFn() }), logged: async (req, next) => { - const { id, url, method } = req; + const { id, url, method, upgrade } = req; logger.info({ id, url, method, + upgrade, type: "in-request", }); const beforeDate = new Date(); @@ -271,7 +272,7 @@ export const make404Handler = interceptors => ({ }); export const handleRequest = async (table, reqHandle) => { - const { method, url, headers } = reqHandle; + const { method, url, headers, upgrade, socket } = reqHandle; const [ path, queryParams ] = url.split("?"); const { params, handlerFn } = ( findHandler(table, method, path) || @@ -286,6 +287,8 @@ export const handleRequest = async (table, reqHandle) => { method, path, headers, + upgrade, + socket, handler: handlerFn, ref: reqHandle, }; @@ -355,7 +358,11 @@ export const makeUpgradeListener = table => async (req, socket, _head) => { }; export const makeRequestListener = table => async (req, res) => { - const { status, headers, body } = await handleRequest(table, req); + const { status, headers, body } = await handleRequest(table, { + ...req, + upgrade: false, + socket: null, + }); res.writeHead(status, headers); res.end(body); }; @@ -532,7 +539,7 @@ export const buildTable = (routes, globalInterceptors = []) => export const promisifyServer = (name, serverHandle, socket, pipe) => { let closePipeFn = null; return { - ref: serverHandle, + ref: serverHandle, start: util.promisify((...args) => { assert.equal(typeof socket, "string"); assert.equal(typeof pipe, "string"); |