framework-do-dede 3.2.0 → 3.3.1
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.
- package/dist/application/controller.js +9 -0
- package/dist/application/usecase.js +0 -2
- package/dist/dede.js +0 -3
- package/dist/http/controller.handler.js +4 -2
- package/dist/http/errors/server.js +0 -4
- package/dist/http/http-server.js +0 -3
- package/dist/infra/di/registry.js +3 -2
- package/package.json +2 -2
|
@@ -30,11 +30,17 @@ export function flushControllers() {
|
|
|
30
30
|
});
|
|
31
31
|
controllers = [];
|
|
32
32
|
}
|
|
33
|
+
function isClass(fn) {
|
|
34
|
+
return /^\s*class\s/.test(Function.prototype.toString.call(fn));
|
|
35
|
+
}
|
|
33
36
|
export function UseMiddleware(middlewareClass) {
|
|
34
37
|
return function (target, propertyKey, descriptor) {
|
|
35
38
|
if (typeof middlewareClass !== 'function' && !middlewareClass?.execute) {
|
|
36
39
|
throw new FrameworkError('Middleware must implement execute()');
|
|
37
40
|
}
|
|
41
|
+
if (typeof middlewareClass === 'function' && isClass(middlewareClass) && !middlewareClass.prototype?.execute) {
|
|
42
|
+
throw new FrameworkError('Middleware must implement execute()');
|
|
43
|
+
}
|
|
38
44
|
if (typeof middlewareClass === 'function' && middlewareClass.prototype?.execute) {
|
|
39
45
|
const middlewares = Reflect.getMetadata('middlewares', target, propertyKey) || [];
|
|
40
46
|
middlewares.push(middlewareClass);
|
|
@@ -52,6 +58,9 @@ export function UseMiddlewares(middlewareClasses) {
|
|
|
52
58
|
if (typeof middlewareClass !== 'function' && !middlewareClass?.execute) {
|
|
53
59
|
throw new FrameworkError('Middleware must implement execute()');
|
|
54
60
|
}
|
|
61
|
+
if (typeof middlewareClass === 'function' && isClass(middlewareClass) && !middlewareClass.prototype?.execute) {
|
|
62
|
+
throw new FrameworkError('Middleware must implement execute()');
|
|
63
|
+
}
|
|
55
64
|
}
|
|
56
65
|
const existingMiddlewares = Reflect.getMetadata('middlewares', target, propertyKey) || [];
|
|
57
66
|
existingMiddlewares.push(...middlewareClasses);
|
package/dist/dede.js
CHANGED
|
@@ -3,9 +3,6 @@ import { ElysiaServerAdapter } from "./http/elysia-server.adapter";
|
|
|
3
3
|
import { ExpressServerAdapter } from "./http/express-server.adapter";
|
|
4
4
|
import { Registry } from "./infra/di/registry";
|
|
5
5
|
export class Dede {
|
|
6
|
-
framework;
|
|
7
|
-
defaultServerError;
|
|
8
|
-
httpServer;
|
|
9
6
|
constructor(framework, defaultServerError) {
|
|
10
7
|
this.framework = framework;
|
|
11
8
|
this.defaultServerError = defaultServerError;
|
|
@@ -28,9 +28,9 @@ export default class ControllerHandler {
|
|
|
28
28
|
const filterParams = this.filter(input.params, params);
|
|
29
29
|
const filterQueryParams = this.filter(input.query, query);
|
|
30
30
|
const filterHeaders = this.filter(input.headers, headers);
|
|
31
|
-
const normalizeBody = this.normalizeBracketNotation(body);
|
|
31
|
+
const normalizeBody = this.normalizeBracketNotation(input.body);
|
|
32
32
|
let filterBody = this.filter(normalizeBody, body);
|
|
33
|
-
if (bodyFilter
|
|
33
|
+
if (bodyFilter !== 'restrict') {
|
|
34
34
|
filterBody = { ...normalizeBody, ...filterBody };
|
|
35
35
|
}
|
|
36
36
|
mergedParams = { ...filterHeaders, ...filterParams, ...filterQueryParams, ...filterBody };
|
|
@@ -173,6 +173,8 @@ export default class ControllerHandler {
|
|
|
173
173
|
}
|
|
174
174
|
if (type === 'string')
|
|
175
175
|
value = value.toString();
|
|
176
|
+
if (type === 'number')
|
|
177
|
+
value = parseFloat(value);
|
|
176
178
|
filter[paramNameFiltered] = value;
|
|
177
179
|
}
|
|
178
180
|
return filter;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export class ServerError extends Error {
|
|
2
|
-
statusCode;
|
|
3
2
|
constructor(message, statusCode) {
|
|
4
3
|
super(message);
|
|
5
4
|
this.name = this.constructor.name;
|
|
@@ -10,8 +9,6 @@ export class ServerError extends Error {
|
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
11
|
export class CustomServerError extends Error {
|
|
13
|
-
statusCode;
|
|
14
|
-
custom;
|
|
15
12
|
constructor(custom, statusCode, nameError = '') {
|
|
16
13
|
super();
|
|
17
14
|
this.name = nameError || this.constructor.name;
|
|
@@ -56,7 +53,6 @@ export class BadRequest extends ServerError {
|
|
|
56
53
|
}
|
|
57
54
|
}
|
|
58
55
|
export class InternalServerError extends ServerError {
|
|
59
|
-
unexpectedError;
|
|
60
56
|
constructor(unexpectedError, defaultMessage = 'Ops, An unexpected error occurred') {
|
|
61
57
|
super(defaultMessage, 500);
|
|
62
58
|
this.unexpectedError = unexpectedError;
|
package/dist/http/http-server.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { FrameworkError } from "./errors/framework";
|
|
2
2
|
export default class HttpServer {
|
|
3
|
-
framework;
|
|
4
|
-
frameworkName;
|
|
5
|
-
defaultMessageError;
|
|
6
3
|
constructor(framework, frameworkName) {
|
|
7
4
|
if (frameworkName !== 'elysia' && frameworkName !== 'express')
|
|
8
5
|
throw new FrameworkError('Framework not supported');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "framework-do-dede",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"require": "./dist/index.cjs"
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
|
-
"test": "jest
|
|
15
|
+
"test": "jest",
|
|
16
16
|
"test:watch": "jest --watch",
|
|
17
17
|
"clean": "rimraf dist",
|
|
18
18
|
"build": "npm run clean && tsc -p tsconfig.build.json && tsc-alias",
|