summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-03-15 13:19:17 -0300
committerEuAndreh <eu@euandre.org>2024-03-15 13:19:17 -0300
commit3c61a91f4bdf2b5cb5f195bc668ebd47fce66fc3 (patch)
tree00336363c9f4e285a2d3a8eb18a1f2d3200bb9fc /src
parentsrc/hero.mjs: Add handlerForConnection() (diff)
downloadpapod-3c61a91f4bdf2b5cb5f195bc668ebd47fce66fc3.tar.gz
papod-3c61a91f4bdf2b5cb5f195bc668ebd47fce66fc3.tar.xz
src/hero.mjs: Add makeUpgradeListener()
Diffstat (limited to 'src')
-rw-r--r--src/hero.mjs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/hero.mjs b/src/hero.mjs
index 61621af..4634e70 100644
--- a/src/hero.mjs
+++ b/src/hero.mjs
@@ -325,6 +325,26 @@ export const handlerForConnection = (table, method, path) => {
return handlerFn || fallback404Handler;
};
+export const makeUpgradeListener = table => async (req, socket, _head) => {
+ const { method, url, headers } = req;
+ const [ path, queryParams ] = url.split("?");
+ const handlerFn = handlerForConnection(table, method, path);
+
+ const request = {
+ params: {
+ path: {},
+ query: extractQueryParams(queryParams),
+ },
+ method,
+ path,
+ headers,
+ handler: handlerFn,
+ ref: req,
+ };
+
+ return await handlerFn(request, socket);
+};
+
export const makeRequestListener = table => async (req, res) => {
const { status, headers, body } = await handleRequest(table, req);
res.writeHead(status, headers);