@athenna/http 1.2.5 → 1.2.6
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/package.json +1 -1
- package/src/Kernels/HttpKernel.d.ts +23 -7
- package/src/Kernels/HttpKernel.js +51 -21
package/package.json
CHANGED
|
@@ -16,17 +16,33 @@ export declare abstract class HttpKernel {
|
|
|
16
16
|
*/
|
|
17
17
|
protected abstract namedMiddlewares: Record<string, Promise<any> | MiddlewareContractClass>;
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
|
-
* Also configure the error handler, detect environment and
|
|
21
|
-
* configure log intercept middleware for requests.
|
|
19
|
+
* Register all global and named middlewares to the server.
|
|
22
20
|
*
|
|
23
|
-
* @return
|
|
21
|
+
* @return void
|
|
24
22
|
*/
|
|
25
|
-
|
|
23
|
+
registerMiddlewares(): Promise<void>;
|
|
26
24
|
/**
|
|
27
|
-
* Register
|
|
25
|
+
* Register cors plugin
|
|
28
26
|
*
|
|
29
27
|
* @return void
|
|
30
28
|
*/
|
|
31
|
-
|
|
29
|
+
registerCors(): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Register rate limit plugin
|
|
32
|
+
*
|
|
33
|
+
* @return void
|
|
34
|
+
*/
|
|
35
|
+
registerRateLimit(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Register the default error handler
|
|
38
|
+
*
|
|
39
|
+
* @return void
|
|
40
|
+
*/
|
|
41
|
+
registerErrorHandler(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Register log terminate middleware
|
|
44
|
+
*
|
|
45
|
+
* @return void
|
|
46
|
+
*/
|
|
47
|
+
registerLogMiddleware(): Promise<void>;
|
|
32
48
|
}
|
|
@@ -5,31 +5,14 @@ const logger_1 = require("@athenna/logger");
|
|
|
5
5
|
const config_1 = require("@athenna/config");
|
|
6
6
|
const utils_1 = require("@secjs/utils");
|
|
7
7
|
const HttpErrorHandler_1 = require("../Handlers/HttpErrorHandler");
|
|
8
|
+
const Server_1 = require("../Facades/Server");
|
|
8
9
|
class HttpKernel {
|
|
9
|
-
/**
|
|
10
|
-
* Returns an instance of any class that extends HttpKernel.
|
|
11
|
-
* Also configure the error handler, detect environment and
|
|
12
|
-
* configure log intercept middleware for requests.
|
|
13
|
-
*
|
|
14
|
-
* @return HttpKernel
|
|
15
|
-
*/
|
|
16
|
-
constructor() {
|
|
17
|
-
const httpServer = ioc.safeUse('Athenna/Core/HttpServer');
|
|
18
|
-
httpServer.setErrorHandler(HttpErrorHandler_1.HttpErrorHandler.handler);
|
|
19
|
-
if (config_1.Config.get('http.log')) {
|
|
20
|
-
httpServer.use(async (ctx) => {
|
|
21
|
-
await logger_1.Log.channel('request').log(ctx);
|
|
22
|
-
return ctx.next();
|
|
23
|
-
}, 'terminate');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
10
|
/**
|
|
27
11
|
* Register all global and named middlewares to the server.
|
|
28
12
|
*
|
|
29
13
|
* @return void
|
|
30
14
|
*/
|
|
31
15
|
async registerMiddlewares() {
|
|
32
|
-
const httpServer = ioc.safeUse('Athenna/Core/HttpServer');
|
|
33
16
|
/**
|
|
34
17
|
* Binding the named middlewares inside the container and
|
|
35
18
|
* creating a simple alias to use it inside Route.
|
|
@@ -52,15 +35,62 @@ class HttpKernel {
|
|
|
52
35
|
}
|
|
53
36
|
Middleware = ioc.safeUse(`App/Middlewares/${Middleware.name}`);
|
|
54
37
|
if (Middleware.handle) {
|
|
55
|
-
|
|
38
|
+
Server_1.Server.use(Middleware.handle, 'handle');
|
|
56
39
|
}
|
|
57
40
|
if (Middleware.intercept) {
|
|
58
|
-
|
|
41
|
+
Server_1.Server.use(Middleware.intercept, 'intercept');
|
|
59
42
|
}
|
|
60
43
|
if (Middleware.terminate) {
|
|
61
|
-
|
|
44
|
+
Server_1.Server.use(Middleware.terminate, 'terminate');
|
|
62
45
|
}
|
|
63
46
|
}
|
|
64
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Register cors plugin
|
|
50
|
+
*
|
|
51
|
+
* @return void
|
|
52
|
+
*/
|
|
53
|
+
async registerCors() {
|
|
54
|
+
if (config_1.Config.get('http.noCors')) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
Server_1.Server.registerCors(config_1.Config.get('http.cors'));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Register rate limit plugin
|
|
61
|
+
*
|
|
62
|
+
* @return void
|
|
63
|
+
*/
|
|
64
|
+
async registerRateLimit() {
|
|
65
|
+
if (config_1.Config.get('http.noRateLimit')) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
Server_1.Server.registerRateLimit(config_1.Config.get('http.rateLimit'));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Register the default error handler
|
|
72
|
+
*
|
|
73
|
+
* @return void
|
|
74
|
+
*/
|
|
75
|
+
async registerErrorHandler() {
|
|
76
|
+
if (config_1.Config.get('http.noErrorHandler')) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
Server_1.Server.setErrorHandler(HttpErrorHandler_1.HttpErrorHandler.handler);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Register log terminate middleware
|
|
83
|
+
*
|
|
84
|
+
* @return void
|
|
85
|
+
*/
|
|
86
|
+
async registerLogMiddleware() {
|
|
87
|
+
if (!config_1.Config.get('http.logRequests')) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
Server_1.Server.use(async (ctx) => {
|
|
91
|
+
await logger_1.Log.channel('request').log(ctx);
|
|
92
|
+
return ctx.next();
|
|
93
|
+
}, 'terminate');
|
|
94
|
+
}
|
|
65
95
|
}
|
|
66
96
|
exports.HttpKernel = HttpKernel;
|