summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-03-06 20:02:18 -0300
committerEuAndreh <eu@euandre.org>2024-03-06 20:02:18 -0300
commit033ceb43ba6cd0191a99e64270079cbb99ded3c4 (patch)
tree82414fc2b84499a7c3cc62fc118ed4b04ee61efd
parentsrc/hero.mjs: Add skeleton for makePipeReaderFn() (diff)
downloadpapod-033ceb43ba6cd0191a99e64270079cbb99ded3c4.tar.gz
papod-033ceb43ba6cd0191a99e64270079cbb99ded3c4.tar.xz
src/hero.mjs: Change server.listen() to receive no arguments
-rw-r--r--src/hero.mjs15
-rw-r--r--src/web.mjs23
-rw-r--r--tests/js/hero.mjs10
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();