framework-do-dede 0.0.52 → 0.0.53

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.
@@ -1,5 +1,5 @@
1
1
  import { Registry } from "../di/registry";
2
- import { InternalServerError } from "../http";
2
+ import { InternalServerError, ServerError } from "../http";
3
3
  export default class ControllerHandler {
4
4
  constructor(httpServer, port) {
5
5
  for (const { instance, instanceMethod, middlewares, method, route, statusCode, params, query, validation, offLogs, metricsHandlers } of this.registryControllers()) {
@@ -8,7 +8,7 @@ export default class ControllerHandler {
8
8
  route,
9
9
  statusCode,
10
10
  params,
11
- query
11
+ query,
12
12
  }, async (input) => {
13
13
  const requestMetrics = {
14
14
  date: new Date(),
@@ -57,8 +57,9 @@ export default class ControllerHandler {
57
57
  catch (error) {
58
58
  if (!offLogs)
59
59
  console.log('\x1b[31m%s\x1b[0m', `❌ [LOG] Erro: "${logger.handler.instance}.${logger.handler.method}:" - error: ${error.message}`);
60
- const capturedError = this.extractError(error);
60
+ const capturedError = this.extractError(error, httpServer);
61
61
  requestMetrics.error = capturedError;
62
+ input.setStatus(capturedError.statusCode);
62
63
  console.log('capturedError = ', capturedError);
63
64
  return capturedError;
64
65
  }
@@ -130,7 +131,10 @@ export default class ControllerHandler {
130
131
  }
131
132
  return filter;
132
133
  }
133
- extractError(error) {
134
+ extractError(error, httpServer) {
135
+ if (error instanceof ServerError) {
136
+ error = new InternalServerError(error.message, httpServer.getDefaultMessageError());
137
+ }
134
138
  return {
135
139
  message: error.message,
136
140
  statusCode: error.getStatusCode(),
@@ -20,12 +20,11 @@ export default abstract class HttpServer {
20
20
  protected framework: FrameworkWeb;
21
21
  protected frameworkName: string;
22
22
  private defaultMessageError;
23
- private set;
24
23
  constructor(framework: FrameworkWeb, frameworkName: 'elysia' | 'express');
25
24
  use(middleware: CallableFunction): HttpServer;
26
25
  register(httpServerParams: HttpServerParams, handler: CallableFunction): void;
27
- private test;
28
26
  setDefaultMessageError(message: string): void;
27
+ getDefaultMessageError(): string;
29
28
  listen(port: number): void;
30
29
  private mountRoute;
31
30
  private elysia;
@@ -4,7 +4,6 @@ export default class HttpServer {
4
4
  framework;
5
5
  frameworkName;
6
6
  defaultMessageError = '';
7
- set = null;
8
7
  constructor(framework, frameworkName) {
9
8
  if (frameworkName !== 'elysia' && frameworkName !== 'express')
10
9
  throw new FrameworkError('Framework not supported');
@@ -17,49 +16,16 @@ export default class HttpServer {
17
16
  }
18
17
  register(httpServerParams, handler) {
19
18
  const route = this.mountRoute(httpServerParams);
20
- if (this.frameworkName === 'elysia') {
21
- this.test(httpServerParams, route, handler);
22
- try {
23
- return this.elysia(httpServerParams, route, handler);
24
- }
25
- catch (error) {
26
- if (error instanceof ServerError) {
27
- this.set.status = error.getStatusCode();
28
- throw error;
29
- }
30
- if (this.set)
31
- this.set.status = 500;
32
- throw new InternalServerError(error.message, this.defaultMessageError);
33
- }
34
- finally {
35
- if (this.set)
36
- this.set.status = null;
37
- }
38
- }
19
+ if (this.frameworkName === 'elysia')
20
+ return this.elysia(httpServerParams, route, handler);
39
21
  return this.express(httpServerParams, route, handler);
40
22
  }
41
- async test(httpServerParams, route, handler) {
42
- return new Promise((resolve, rejected) => {
43
- return resolve(this.elysia(httpServerParams, route, handler));
44
- }).then((response) => {
45
- if (response instanceof ServerError) {
46
- console.log('the response is', response);
47
- this.set.status = response.getStatusCode();
48
- // throw response;
49
- }
50
- else {
51
- console.log('the response is', response);
52
- console.log('set', this.set);
53
- if (this.set)
54
- this.set.status = 500;
55
- console.log('now set', this.set);
56
- }
57
- });
58
- // this.elysia(httpServerParams, route, handler)
59
- }
60
23
  setDefaultMessageError(message) {
61
24
  this.defaultMessageError = message;
62
25
  }
26
+ getDefaultMessageError() {
27
+ return this.defaultMessageError;
28
+ }
63
29
  listen(port) {
64
30
  this.framework.listen(port);
65
31
  }
@@ -78,8 +44,8 @@ export default class HttpServer {
78
44
  (this.framework[method])(route, async ({ headers, set, query, params, body, request }) => {
79
45
  headers['ip'] = this.framework.server?.requestIP(request).address;
80
46
  set.status = httpServerParams.statusCode ?? 200;
81
- this.set = set;
82
47
  const output = await handler({
48
+ setStatus: (statusCode) => set.status = statusCode,
83
49
  headers,
84
50
  query,
85
51
  params,
@@ -94,6 +60,7 @@ export default class HttpServer {
94
60
  request.headers['ip'] = request.ip;
95
61
  try {
96
62
  const output = await handler({
63
+ setStatus: (statusCode) => res.status(statusCode),
97
64
  headers: request.headers,
98
65
  query: request.query,
99
66
  params: request.params,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "framework-do-dede",
3
- "version": "0.0.52",
3
+ "version": "0.0.53",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",