diff options
author | EuAndreh <eu@euandre.org> | 2024-03-06 20:02:18 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-03-06 20:02:18 -0300 |
commit | 033ceb43ba6cd0191a99e64270079cbb99ded3c4 (patch) | |
tree | 82414fc2b84499a7c3cc62fc118ed4b04ee61efd | |
parent | src/hero.mjs: Add skeleton for makePipeReaderFn() (diff) | |
download | papod-033ceb43ba6cd0191a99e64270079cbb99ded3c4.tar.gz papod-033ceb43ba6cd0191a99e64270079cbb99ded3c4.tar.xz |
src/hero.mjs: Change server.listen() to receive no arguments
-rw-r--r-- | src/hero.mjs | 15 | ||||
-rw-r--r-- | src/web.mjs | 23 | ||||
-rw-r--r-- | tests/js/hero.mjs | 10 |
3 files changed, 35 insertions, 13 deletions
diff --git a/src/hero.mjs b/src/hero.mjs index 0a086ad..699e426 100644 --- a/src/hero.mjs +++ b/src/hero.mjs @@ -383,11 +383,12 @@ export const buildRoutes = (routes, globalInterceptors = []) => {} ); -export const promisifyServer = (name, serverHandle) => ({ +export const promisifyServer = (name, serverHandle, socket, pipe) => ({ ref: serverHandle, - listen: util.promisify((socket, pipe, ...args) => { + listen: util.promisify((...args) => { assert.equal(typeof socket, "string"); assert.equal(typeof pipe, "string"); + configLogger({ name }); rmIf(pipe); @@ -400,9 +401,15 @@ export const promisifyServer = (name, serverHandle) => ({ events: serverHandle, }); -export const buildServer = (name, routes, globalInterceptors = defaultInterceptors) => { +export const buildServer = ({ + name, + routes = [], + socket = `${name}.socket`, + pipe = `${name}.pipe`, + globalInterceptors = defaultInterceptors, +}) => { const table = buildRoutes(routes, globalInterceptors); const requestListener = makeRequestListener(table); const server = http.createServer(requestListener); - return promisifyServer(name, server); + return promisifyServer(name, server, socket, pipe); }; diff --git a/src/web.mjs b/src/web.mjs index 23ae5ff..4c3e621 100644 --- a/src/web.mjs +++ b/src/web.mjs @@ -6,13 +6,26 @@ const getProduct = req => ({ status: 200, body: "PRODUTO" }); const getSocket = req => ({ status: 200, body: "SOCKET" }); -const server = hero.buildServer("papo", [ +const name = "papo"; + +const routes = [ [ "GET", "/api/products", listProducts ], [ "GET", "/api/products/:id", getProduct ], [ "GET", "/api/socket", getSocket ], -]); +]; -export const app = async (...args) => { - await server.listen(...args); - hero.log.info({ type: "starting-server", args }); +export const app = async (socket, pipe) => { + const server = hero.buildServer({ + name, + routes, + socket, + pipe, + }); + await server.listen(); + hero.log.info({ + type: "starting-server", + name, + socket, + pipe, + }); }; diff --git a/tests/js/hero.mjs b/tests/js/hero.mjs index d4c6b57..67cf690 100644 --- a/tests/js/hero.mjs +++ b/tests/js/hero.mjs @@ -1575,8 +1575,9 @@ const test_buildServer = async t => { await t.test("empty values", async () => { const socket = "tests/hero-4.socket"; const pipe = "tests/hero-4.pipe"; - const server = buildServer("my app", []); - await server.listen(socket, pipe); + const name = "my-empty-app"; + const server = buildServer({ name, socket, pipe }); + await server.listen(); const response = await socketRequest(socket, "/anything"); await server.close(); @@ -1586,11 +1587,12 @@ const test_buildServer = async t => { await t.test("integrated application server", async () => { const socket = "tests/hero-5.socket"; const pipe = "tests/hero-5.pipe"; + const name = "the-app"; const pathHandler = req => ({ status: 200, body: "something" }); const routes = [ [ "GET", "/path", pathHandler ] ]; - const server = buildServer("the-app", routes, defaultInterceptors); + const server = buildServer({ name, routes, socket, pipe }); - await server.listen(socket, pipe); + await server.listen(); const response = await socketRequest(socket, "/path"); await server.close(); |