@devbro/pashmak 0.1.46 → 0.1.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -162,20 +162,18 @@ var CompiledRoute = class {
162
162
  const header_content_type = res.getHeader("Content-Type");
163
163
  if (controller_rc instanceof import_stream.Stream || Buffer.isBuffer(controller_rc)) {
164
164
  await this.writeAsync(res, controller_rc);
165
- res.end();
166
165
  } else if (!header_content_type && typeof controller_rc === "object") {
167
166
  res.setHeader("Content-Type", "application/json");
168
- res.end(this.convertToString(controller_rc));
167
+ res.write(this.convertToString(controller_rc));
169
168
  } else if (!header_content_type) {
170
169
  res.setHeader("Content-Type", "text/plain");
171
- res.end(this.convertToString(controller_rc));
170
+ res.write(this.convertToString(controller_rc));
172
171
  } else {
173
- res.end(this.convertToString(controller_rc));
172
+ res.write(this.convertToString(controller_rc));
174
173
  }
175
174
  return;
176
175
  } else {
177
176
  res.statusCode = [200].includes(res.statusCode) ? 204 : res.statusCode;
178
- res.end();
179
177
  }
180
178
  }
181
179
  async writeAsync(res, chunk) {
@@ -467,7 +465,24 @@ var import_clipanion = require("clipanion");
467
465
 
468
466
  // src/http.mts
469
467
  var http_exports = {};
468
+ __export(http_exports, {
469
+ handleHttpErrors: () => handleHttpErrors
470
+ });
471
+ var import_neko_http = require("@devbro/neko-http");
470
472
  __reExport(http_exports, require("@devbro/neko-http"));
473
+ async function handleHttpErrors(err, req, res) {
474
+ if (err instanceof import_neko_http.HttpError) {
475
+ res.writeHead(err.statusCode, { "Content-Type": "application/json" });
476
+ res.write(JSON.stringify({ message: err.message, error: err.code }));
477
+ logger().warn({ msg: "HttpError: " + err.message, err });
478
+ return;
479
+ } else {
480
+ logger().error({ msg: "Error: " + err.message, err });
481
+ }
482
+ res.writeHead(500, { "Content-Type": "application/json" });
483
+ res.write(JSON.stringify({ error: "Internal Server Error" }));
484
+ }
485
+ __name(handleHttpErrors, "handleHttpErrors");
471
486
 
472
487
  // src/facades.mts
473
488
  var import_neko_logger = require("@devbro/neko-logger");
@@ -676,18 +691,7 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
676
691
  });
677
692
  var httpServer = (0, import_neko_helper2.createSingleton)(() => {
678
693
  const server = new http_exports.HttpServer();
679
- server.setErrorHandler(async (err, req, res) => {
680
- if (err instanceof http_exports.HttpError) {
681
- res.writeHead(err.statusCode, { "Content-Type": "application/json" });
682
- res.end(JSON.stringify({ message: err.message, error: err.code }));
683
- logger().warn({ msg: "HttpError: " + err.message, err });
684
- return;
685
- } else {
686
- logger().error({ msg: "Error: " + err.message, err });
687
- }
688
- res.writeHead(500, { "Content-Type": "" });
689
- res.end(JSON.stringify({ error: "Internal Server Error" }));
690
- });
694
+ server.setErrorHandler(handleHttpErrors);
691
695
  server.setRouter(router());
692
696
  return server;
693
697
  });
@@ -718,8 +722,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
718
722
  queue_config.provider,
719
723
  queue_config.config
720
724
  );
721
- const rc = new import_neko_queue2.QueueConnection(provider);
722
- return rc;
725
+ return new import_neko_queue2.QueueConnection(provider);
723
726
  });
724
727
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
725
728
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
@@ -165,20 +165,18 @@ var CompiledRoute = class {
165
165
  const header_content_type = res.getHeader("Content-Type");
166
166
  if (controller_rc instanceof import_stream.Stream || Buffer.isBuffer(controller_rc)) {
167
167
  await this.writeAsync(res, controller_rc);
168
- res.end();
169
168
  } else if (!header_content_type && typeof controller_rc === "object") {
170
169
  res.setHeader("Content-Type", "application/json");
171
- res.end(this.convertToString(controller_rc));
170
+ res.write(this.convertToString(controller_rc));
172
171
  } else if (!header_content_type) {
173
172
  res.setHeader("Content-Type", "text/plain");
174
- res.end(this.convertToString(controller_rc));
173
+ res.write(this.convertToString(controller_rc));
175
174
  } else {
176
- res.end(this.convertToString(controller_rc));
175
+ res.write(this.convertToString(controller_rc));
177
176
  }
178
177
  return;
179
178
  } else {
180
179
  res.statusCode = [200].includes(res.statusCode) ? 204 : res.statusCode;
181
- res.end();
182
180
  }
183
181
  }
184
182
  async writeAsync(res, chunk) {
@@ -470,7 +468,24 @@ var import_clipanion = require("clipanion");
470
468
 
471
469
  // src/http.mts
472
470
  var http_exports = {};
471
+ __export(http_exports, {
472
+ handleHttpErrors: () => handleHttpErrors
473
+ });
474
+ var import_neko_http = require("@devbro/neko-http");
473
475
  __reExport(http_exports, require("@devbro/neko-http"));
476
+ async function handleHttpErrors(err, req, res) {
477
+ if (err instanceof import_neko_http.HttpError) {
478
+ res.writeHead(err.statusCode, { "Content-Type": "application/json" });
479
+ res.write(JSON.stringify({ message: err.message, error: err.code }));
480
+ logger().warn({ msg: "HttpError: " + err.message, err });
481
+ return;
482
+ } else {
483
+ logger().error({ msg: "Error: " + err.message, err });
484
+ }
485
+ res.writeHead(500, { "Content-Type": "application/json" });
486
+ res.write(JSON.stringify({ error: "Internal Server Error" }));
487
+ }
488
+ __name(handleHttpErrors, "handleHttpErrors");
474
489
 
475
490
  // src/facades.mts
476
491
  var import_neko_logger = require("@devbro/neko-logger");
@@ -679,18 +694,7 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
679
694
  });
680
695
  var httpServer = (0, import_neko_helper2.createSingleton)(() => {
681
696
  const server = new http_exports.HttpServer();
682
- server.setErrorHandler(async (err, req, res) => {
683
- if (err instanceof http_exports.HttpError) {
684
- res.writeHead(err.statusCode, { "Content-Type": "application/json" });
685
- res.end(JSON.stringify({ message: err.message, error: err.code }));
686
- logger().warn({ msg: "HttpError: " + err.message, err });
687
- return;
688
- } else {
689
- logger().error({ msg: "Error: " + err.message, err });
690
- }
691
- res.writeHead(500, { "Content-Type": "" });
692
- res.end(JSON.stringify({ error: "Internal Server Error" }));
693
- });
697
+ server.setErrorHandler(handleHttpErrors);
694
698
  server.setRouter(router());
695
699
  return server;
696
700
  });
@@ -721,8 +725,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
721
725
  queue_config.provider,
722
726
  queue_config.config
723
727
  );
724
- const rc = new import_neko_queue2.QueueConnection(provider);
725
- return rc;
728
+ return new import_neko_queue2.QueueConnection(provider);
726
729
  });
727
730
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
728
731
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
@@ -163,20 +163,18 @@ var CompiledRoute = class {
163
163
  const header_content_type = res.getHeader("Content-Type");
164
164
  if (controller_rc instanceof import_stream.Stream || Buffer.isBuffer(controller_rc)) {
165
165
  await this.writeAsync(res, controller_rc);
166
- res.end();
167
166
  } else if (!header_content_type && typeof controller_rc === "object") {
168
167
  res.setHeader("Content-Type", "application/json");
169
- res.end(this.convertToString(controller_rc));
168
+ res.write(this.convertToString(controller_rc));
170
169
  } else if (!header_content_type) {
171
170
  res.setHeader("Content-Type", "text/plain");
172
- res.end(this.convertToString(controller_rc));
171
+ res.write(this.convertToString(controller_rc));
173
172
  } else {
174
- res.end(this.convertToString(controller_rc));
173
+ res.write(this.convertToString(controller_rc));
175
174
  }
176
175
  return;
177
176
  } else {
178
177
  res.statusCode = [200].includes(res.statusCode) ? 204 : res.statusCode;
179
- res.end();
180
178
  }
181
179
  }
182
180
  async writeAsync(res, chunk) {
@@ -468,7 +466,24 @@ var import_clipanion = require("clipanion");
468
466
 
469
467
  // src/http.mts
470
468
  var http_exports = {};
469
+ __export(http_exports, {
470
+ handleHttpErrors: () => handleHttpErrors
471
+ });
472
+ var import_neko_http = require("@devbro/neko-http");
471
473
  __reExport(http_exports, require("@devbro/neko-http"));
474
+ async function handleHttpErrors(err, req, res) {
475
+ if (err instanceof import_neko_http.HttpError) {
476
+ res.writeHead(err.statusCode, { "Content-Type": "application/json" });
477
+ res.write(JSON.stringify({ message: err.message, error: err.code }));
478
+ logger().warn({ msg: "HttpError: " + err.message, err });
479
+ return;
480
+ } else {
481
+ logger().error({ msg: "Error: " + err.message, err });
482
+ }
483
+ res.writeHead(500, { "Content-Type": "application/json" });
484
+ res.write(JSON.stringify({ error: "Internal Server Error" }));
485
+ }
486
+ __name(handleHttpErrors, "handleHttpErrors");
472
487
 
473
488
  // src/facades.mts
474
489
  var import_neko_logger = require("@devbro/neko-logger");
@@ -677,18 +692,7 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
677
692
  });
678
693
  var httpServer = (0, import_neko_helper2.createSingleton)(() => {
679
694
  const server = new http_exports.HttpServer();
680
- server.setErrorHandler(async (err, req, res) => {
681
- if (err instanceof http_exports.HttpError) {
682
- res.writeHead(err.statusCode, { "Content-Type": "application/json" });
683
- res.end(JSON.stringify({ message: err.message, error: err.code }));
684
- logger().warn({ msg: "HttpError: " + err.message, err });
685
- return;
686
- } else {
687
- logger().error({ msg: "Error: " + err.message, err });
688
- }
689
- res.writeHead(500, { "Content-Type": "" });
690
- res.end(JSON.stringify({ error: "Internal Server Error" }));
691
- });
695
+ server.setErrorHandler(handleHttpErrors);
692
696
  server.setRouter(router());
693
697
  return server;
694
698
  });
@@ -719,8 +723,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
719
723
  queue_config.provider,
720
724
  queue_config.config
721
725
  );
722
- const rc = new import_neko_queue2.QueueConnection(provider);
723
- return rc;
726
+ return new import_neko_queue2.QueueConnection(provider);
724
727
  });
725
728
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
726
729
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
@@ -161,20 +161,18 @@ var CompiledRoute = class {
161
161
  const header_content_type = res.getHeader("Content-Type");
162
162
  if (controller_rc instanceof import_stream.Stream || Buffer.isBuffer(controller_rc)) {
163
163
  await this.writeAsync(res, controller_rc);
164
- res.end();
165
164
  } else if (!header_content_type && typeof controller_rc === "object") {
166
165
  res.setHeader("Content-Type", "application/json");
167
- res.end(this.convertToString(controller_rc));
166
+ res.write(this.convertToString(controller_rc));
168
167
  } else if (!header_content_type) {
169
168
  res.setHeader("Content-Type", "text/plain");
170
- res.end(this.convertToString(controller_rc));
169
+ res.write(this.convertToString(controller_rc));
171
170
  } else {
172
- res.end(this.convertToString(controller_rc));
171
+ res.write(this.convertToString(controller_rc));
173
172
  }
174
173
  return;
175
174
  } else {
176
175
  res.statusCode = [200].includes(res.statusCode) ? 204 : res.statusCode;
177
- res.end();
178
176
  }
179
177
  }
180
178
  async writeAsync(res, chunk) {
@@ -466,7 +464,24 @@ var import_clipanion = require("clipanion");
466
464
 
467
465
  // src/http.mts
468
466
  var http_exports = {};
467
+ __export(http_exports, {
468
+ handleHttpErrors: () => handleHttpErrors
469
+ });
470
+ var import_neko_http = require("@devbro/neko-http");
469
471
  __reExport(http_exports, require("@devbro/neko-http"));
472
+ async function handleHttpErrors(err, req, res) {
473
+ if (err instanceof import_neko_http.HttpError) {
474
+ res.writeHead(err.statusCode, { "Content-Type": "application/json" });
475
+ res.write(JSON.stringify({ message: err.message, error: err.code }));
476
+ logger().warn({ msg: "HttpError: " + err.message, err });
477
+ return;
478
+ } else {
479
+ logger().error({ msg: "Error: " + err.message, err });
480
+ }
481
+ res.writeHead(500, { "Content-Type": "application/json" });
482
+ res.write(JSON.stringify({ error: "Internal Server Error" }));
483
+ }
484
+ __name(handleHttpErrors, "handleHttpErrors");
470
485
 
471
486
  // src/facades.mts
472
487
  var import_neko_logger = require("@devbro/neko-logger");
@@ -675,18 +690,7 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
675
690
  });
676
691
  var httpServer = (0, import_neko_helper2.createSingleton)(() => {
677
692
  const server = new http_exports.HttpServer();
678
- server.setErrorHandler(async (err, req, res) => {
679
- if (err instanceof http_exports.HttpError) {
680
- res.writeHead(err.statusCode, { "Content-Type": "application/json" });
681
- res.end(JSON.stringify({ message: err.message, error: err.code }));
682
- logger().warn({ msg: "HttpError: " + err.message, err });
683
- return;
684
- } else {
685
- logger().error({ msg: "Error: " + err.message, err });
686
- }
687
- res.writeHead(500, { "Content-Type": "" });
688
- res.end(JSON.stringify({ error: "Internal Server Error" }));
689
- });
693
+ server.setErrorHandler(handleHttpErrors);
690
694
  server.setRouter(router());
691
695
  return server;
692
696
  });
@@ -717,8 +721,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
717
721
  queue_config.provider,
718
722
  queue_config.config
719
723
  );
720
- const rc = new import_neko_queue2.QueueConnection(provider);
721
- return rc;
724
+ return new import_neko_queue2.QueueConnection(provider);
722
725
  });
723
726
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
724
727
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
@@ -161,20 +161,18 @@ var CompiledRoute = class {
161
161
  const header_content_type = res.getHeader("Content-Type");
162
162
  if (controller_rc instanceof import_stream.Stream || Buffer.isBuffer(controller_rc)) {
163
163
  await this.writeAsync(res, controller_rc);
164
- res.end();
165
164
  } else if (!header_content_type && typeof controller_rc === "object") {
166
165
  res.setHeader("Content-Type", "application/json");
167
- res.end(this.convertToString(controller_rc));
166
+ res.write(this.convertToString(controller_rc));
168
167
  } else if (!header_content_type) {
169
168
  res.setHeader("Content-Type", "text/plain");
170
- res.end(this.convertToString(controller_rc));
169
+ res.write(this.convertToString(controller_rc));
171
170
  } else {
172
- res.end(this.convertToString(controller_rc));
171
+ res.write(this.convertToString(controller_rc));
173
172
  }
174
173
  return;
175
174
  } else {
176
175
  res.statusCode = [200].includes(res.statusCode) ? 204 : res.statusCode;
177
- res.end();
178
176
  }
179
177
  }
180
178
  async writeAsync(res, chunk) {
@@ -466,7 +464,24 @@ var import_clipanion = require("clipanion");
466
464
 
467
465
  // src/http.mts
468
466
  var http_exports = {};
467
+ __export(http_exports, {
468
+ handleHttpErrors: () => handleHttpErrors
469
+ });
470
+ var import_neko_http = require("@devbro/neko-http");
469
471
  __reExport(http_exports, require("@devbro/neko-http"));
472
+ async function handleHttpErrors(err, req, res) {
473
+ if (err instanceof import_neko_http.HttpError) {
474
+ res.writeHead(err.statusCode, { "Content-Type": "application/json" });
475
+ res.write(JSON.stringify({ message: err.message, error: err.code }));
476
+ logger().warn({ msg: "HttpError: " + err.message, err });
477
+ return;
478
+ } else {
479
+ logger().error({ msg: "Error: " + err.message, err });
480
+ }
481
+ res.writeHead(500, { "Content-Type": "application/json" });
482
+ res.write(JSON.stringify({ error: "Internal Server Error" }));
483
+ }
484
+ __name(handleHttpErrors, "handleHttpErrors");
470
485
 
471
486
  // src/facades.mts
472
487
  var import_neko_logger = require("@devbro/neko-logger");
@@ -675,18 +690,7 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
675
690
  });
676
691
  var httpServer = (0, import_neko_helper2.createSingleton)(() => {
677
692
  const server = new http_exports.HttpServer();
678
- server.setErrorHandler(async (err, req, res) => {
679
- if (err instanceof http_exports.HttpError) {
680
- res.writeHead(err.statusCode, { "Content-Type": "application/json" });
681
- res.end(JSON.stringify({ message: err.message, error: err.code }));
682
- logger().warn({ msg: "HttpError: " + err.message, err });
683
- return;
684
- } else {
685
- logger().error({ msg: "Error: " + err.message, err });
686
- }
687
- res.writeHead(500, { "Content-Type": "" });
688
- res.end(JSON.stringify({ error: "Internal Server Error" }));
689
- });
693
+ server.setErrorHandler(handleHttpErrors);
690
694
  server.setRouter(router());
691
695
  return server;
692
696
  });
@@ -717,8 +721,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
717
721
  queue_config.provider,
718
722
  queue_config.config
719
723
  );
720
- const rc = new import_neko_queue2.QueueConnection(provider);
721
- return rc;
724
+ return new import_neko_queue2.QueueConnection(provider);
722
725
  });
723
726
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
724
727
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
@@ -162,20 +162,18 @@ var CompiledRoute = class {
162
162
  const header_content_type = res.getHeader("Content-Type");
163
163
  if (controller_rc instanceof import_stream.Stream || Buffer.isBuffer(controller_rc)) {
164
164
  await this.writeAsync(res, controller_rc);
165
- res.end();
166
165
  } else if (!header_content_type && typeof controller_rc === "object") {
167
166
  res.setHeader("Content-Type", "application/json");
168
- res.end(this.convertToString(controller_rc));
167
+ res.write(this.convertToString(controller_rc));
169
168
  } else if (!header_content_type) {
170
169
  res.setHeader("Content-Type", "text/plain");
171
- res.end(this.convertToString(controller_rc));
170
+ res.write(this.convertToString(controller_rc));
172
171
  } else {
173
- res.end(this.convertToString(controller_rc));
172
+ res.write(this.convertToString(controller_rc));
174
173
  }
175
174
  return;
176
175
  } else {
177
176
  res.statusCode = [200].includes(res.statusCode) ? 204 : res.statusCode;
178
- res.end();
179
177
  }
180
178
  }
181
179
  async writeAsync(res, chunk) {
@@ -467,7 +465,24 @@ var import_clipanion = require("clipanion");
467
465
 
468
466
  // src/http.mts
469
467
  var http_exports = {};
468
+ __export(http_exports, {
469
+ handleHttpErrors: () => handleHttpErrors
470
+ });
471
+ var import_neko_http = require("@devbro/neko-http");
470
472
  __reExport(http_exports, require("@devbro/neko-http"));
473
+ async function handleHttpErrors(err, req, res) {
474
+ if (err instanceof import_neko_http.HttpError) {
475
+ res.writeHead(err.statusCode, { "Content-Type": "application/json" });
476
+ res.write(JSON.stringify({ message: err.message, error: err.code }));
477
+ logger().warn({ msg: "HttpError: " + err.message, err });
478
+ return;
479
+ } else {
480
+ logger().error({ msg: "Error: " + err.message, err });
481
+ }
482
+ res.writeHead(500, { "Content-Type": "application/json" });
483
+ res.write(JSON.stringify({ error: "Internal Server Error" }));
484
+ }
485
+ __name(handleHttpErrors, "handleHttpErrors");
471
486
 
472
487
  // src/facades.mts
473
488
  var import_neko_logger = require("@devbro/neko-logger");
@@ -676,18 +691,7 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
676
691
  });
677
692
  var httpServer = (0, import_neko_helper2.createSingleton)(() => {
678
693
  const server = new http_exports.HttpServer();
679
- server.setErrorHandler(async (err, req, res) => {
680
- if (err instanceof http_exports.HttpError) {
681
- res.writeHead(err.statusCode, { "Content-Type": "application/json" });
682
- res.end(JSON.stringify({ message: err.message, error: err.code }));
683
- logger().warn({ msg: "HttpError: " + err.message, err });
684
- return;
685
- } else {
686
- logger().error({ msg: "Error: " + err.message, err });
687
- }
688
- res.writeHead(500, { "Content-Type": "" });
689
- res.end(JSON.stringify({ error: "Internal Server Error" }));
690
- });
694
+ server.setErrorHandler(handleHttpErrors);
691
695
  server.setRouter(router());
692
696
  return server;
693
697
  });
@@ -718,8 +722,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
718
722
  queue_config.provider,
719
723
  queue_config.config
720
724
  );
721
- const rc = new import_neko_queue2.QueueConnection(provider);
722
- return rc;
725
+ return new import_neko_queue2.QueueConnection(provider);
723
726
  });
724
727
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
725
728
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
@@ -1325,20 +1325,18 @@ var CompiledRoute = class {
1325
1325
  const header_content_type = res.getHeader("Content-Type");
1326
1326
  if (controller_rc instanceof import_stream.Stream || Buffer.isBuffer(controller_rc)) {
1327
1327
  await this.writeAsync(res, controller_rc);
1328
- res.end();
1329
1328
  } else if (!header_content_type && typeof controller_rc === "object") {
1330
1329
  res.setHeader("Content-Type", "application/json");
1331
- res.end(this.convertToString(controller_rc));
1330
+ res.write(this.convertToString(controller_rc));
1332
1331
  } else if (!header_content_type) {
1333
1332
  res.setHeader("Content-Type", "text/plain");
1334
- res.end(this.convertToString(controller_rc));
1333
+ res.write(this.convertToString(controller_rc));
1335
1334
  } else {
1336
- res.end(this.convertToString(controller_rc));
1335
+ res.write(this.convertToString(controller_rc));
1337
1336
  }
1338
1337
  return;
1339
1338
  } else {
1340
1339
  res.statusCode = [200].includes(res.statusCode) ? 204 : res.statusCode;
1341
- res.end();
1342
1340
  }
1343
1341
  }
1344
1342
  async writeAsync(res, chunk) {
@@ -1630,7 +1628,24 @@ var import_clipanion = require("clipanion");
1630
1628
 
1631
1629
  // src/http.mts
1632
1630
  var http_exports = {};
1631
+ __export(http_exports, {
1632
+ handleHttpErrors: () => handleHttpErrors
1633
+ });
1634
+ var import_neko_http = require("@devbro/neko-http");
1633
1635
  __reExport(http_exports, require("@devbro/neko-http"));
1636
+ async function handleHttpErrors(err, req, res) {
1637
+ if (err instanceof import_neko_http.HttpError) {
1638
+ res.writeHead(err.statusCode, { "Content-Type": "application/json" });
1639
+ res.write(JSON.stringify({ message: err.message, error: err.code }));
1640
+ logger().warn({ msg: "HttpError: " + err.message, err });
1641
+ return;
1642
+ } else {
1643
+ logger().error({ msg: "Error: " + err.message, err });
1644
+ }
1645
+ res.writeHead(500, { "Content-Type": "application/json" });
1646
+ res.write(JSON.stringify({ error: "Internal Server Error" }));
1647
+ }
1648
+ __name(handleHttpErrors, "handleHttpErrors");
1634
1649
 
1635
1650
  // src/facades.mts
1636
1651
  var import_neko_logger = require("@devbro/neko-logger");
@@ -1839,18 +1854,7 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
1839
1854
  });
1840
1855
  var httpServer = (0, import_neko_helper2.createSingleton)(() => {
1841
1856
  const server = new http_exports.HttpServer();
1842
- server.setErrorHandler(async (err, req, res) => {
1843
- if (err instanceof http_exports.HttpError) {
1844
- res.writeHead(err.statusCode, { "Content-Type": "application/json" });
1845
- res.end(JSON.stringify({ message: err.message, error: err.code }));
1846
- logger().warn({ msg: "HttpError: " + err.message, err });
1847
- return;
1848
- } else {
1849
- logger().error({ msg: "Error: " + err.message, err });
1850
- }
1851
- res.writeHead(500, { "Content-Type": "" });
1852
- res.end(JSON.stringify({ error: "Internal Server Error" }));
1853
- });
1857
+ server.setErrorHandler(handleHttpErrors);
1854
1858
  server.setRouter(router());
1855
1859
  return server;
1856
1860
  });
@@ -1881,8 +1885,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
1881
1885
  queue_config.provider,
1882
1886
  queue_config.config
1883
1887
  );
1884
- const rc = new import_neko_queue2.QueueConnection(provider);
1885
- return rc;
1888
+ return new import_neko_queue2.QueueConnection(provider);
1886
1889
  });
1887
1890
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
1888
1891
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
@@ -161,20 +161,18 @@ var CompiledRoute = class {
161
161
  const header_content_type = res.getHeader("Content-Type");
162
162
  if (controller_rc instanceof import_stream.Stream || Buffer.isBuffer(controller_rc)) {
163
163
  await this.writeAsync(res, controller_rc);
164
- res.end();
165
164
  } else if (!header_content_type && typeof controller_rc === "object") {
166
165
  res.setHeader("Content-Type", "application/json");
167
- res.end(this.convertToString(controller_rc));
166
+ res.write(this.convertToString(controller_rc));
168
167
  } else if (!header_content_type) {
169
168
  res.setHeader("Content-Type", "text/plain");
170
- res.end(this.convertToString(controller_rc));
169
+ res.write(this.convertToString(controller_rc));
171
170
  } else {
172
- res.end(this.convertToString(controller_rc));
171
+ res.write(this.convertToString(controller_rc));
173
172
  }
174
173
  return;
175
174
  } else {
176
175
  res.statusCode = [200].includes(res.statusCode) ? 204 : res.statusCode;
177
- res.end();
178
176
  }
179
177
  }
180
178
  async writeAsync(res, chunk) {
@@ -466,7 +464,24 @@ var import_clipanion = require("clipanion");
466
464
 
467
465
  // src/http.mts
468
466
  var http_exports = {};
467
+ __export(http_exports, {
468
+ handleHttpErrors: () => handleHttpErrors
469
+ });
470
+ var import_neko_http = require("@devbro/neko-http");
469
471
  __reExport(http_exports, require("@devbro/neko-http"));
472
+ async function handleHttpErrors(err, req, res) {
473
+ if (err instanceof import_neko_http.HttpError) {
474
+ res.writeHead(err.statusCode, { "Content-Type": "application/json" });
475
+ res.write(JSON.stringify({ message: err.message, error: err.code }));
476
+ logger().warn({ msg: "HttpError: " + err.message, err });
477
+ return;
478
+ } else {
479
+ logger().error({ msg: "Error: " + err.message, err });
480
+ }
481
+ res.writeHead(500, { "Content-Type": "application/json" });
482
+ res.write(JSON.stringify({ error: "Internal Server Error" }));
483
+ }
484
+ __name(handleHttpErrors, "handleHttpErrors");
470
485
 
471
486
  // src/facades.mts
472
487
  var import_neko_logger = require("@devbro/neko-logger");
@@ -675,18 +690,7 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
675
690
  });
676
691
  var httpServer = (0, import_neko_helper2.createSingleton)(() => {
677
692
  const server = new http_exports.HttpServer();
678
- server.setErrorHandler(async (err, req, res) => {
679
- if (err instanceof http_exports.HttpError) {
680
- res.writeHead(err.statusCode, { "Content-Type": "application/json" });
681
- res.end(JSON.stringify({ message: err.message, error: err.code }));
682
- logger().warn({ msg: "HttpError: " + err.message, err });
683
- return;
684
- } else {
685
- logger().error({ msg: "Error: " + err.message, err });
686
- }
687
- res.writeHead(500, { "Content-Type": "" });
688
- res.end(JSON.stringify({ error: "Internal Server Error" }));
689
- });
693
+ server.setErrorHandler(handleHttpErrors);
690
694
  server.setRouter(router());
691
695
  return server;
692
696
  });
@@ -717,8 +721,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
717
721
  queue_config.provider,
718
722
  queue_config.config
719
723
  );
720
- const rc = new import_neko_queue2.QueueConnection(provider);
721
- return rc;
724
+ return new import_neko_queue2.QueueConnection(provider);
722
725
  });
723
726
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
724
727
  const cache_config = import_neko_config.config.get(["caches", label].join("."));