From 4a584566035d18402f2bc65bf2c7e433ecbd595c Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sat, 16 Mar 2024 05:42:41 -0300 Subject: src/hero.mjs: Add "upgrade" and "socket" keys to `req` Also log on "in-request" the value of "upgrade". --- src/hero.mjs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src') 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"); -- cgit v1.2.3