quantum-flow 1.3.1 → 1.3.5
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/app/aws/lambda.d.ts +1 -1
- package/dist/app/aws/lambda.js +7 -7
- package/dist/app/http/Application.js +4 -6
- package/dist/app/http/Socket.js +6 -6
- package/dist/core/Controller.d.ts +3 -3
- package/dist/core/Controller.js +2 -1
- package/dist/examples/controllers/user.js +5 -0
- package/dist/types/common.d.ts +1 -7
- package/dist/utils/controller.js +2 -2
- package/package.json +1 -1
- /package/dist/app/http/websocket/{WebsocetService.d.ts → WebsocketService.d.ts} +0 -0
- /package/dist/app/http/websocket/{WebsocetService.js → WebsocketService.js} +0 -0
package/dist/app/aws/lambda.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { APIGatewayProxyEvent, APIGatewayProxyResult, Context, Handler } from 'aws-lambda';
|
|
2
|
-
import { LambdaRequest, LambdaResponse
|
|
2
|
+
import { LambdaApp, LambdaRequest, LambdaResponse } from '../../types/index.js';
|
|
3
3
|
export declare class LambdaAdapter {
|
|
4
4
|
private static getHeaderValue;
|
|
5
5
|
static toRequest(event: APIGatewayProxyEvent, context: Context): LambdaRequest;
|
package/dist/app/aws/lambda.js
CHANGED
|
@@ -123,14 +123,14 @@ class LambdaAdapter {
|
|
|
123
123
|
};
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
let
|
|
126
|
+
let origin = LambdaAdapter.getHeaderValue(request?.headers, 'origin');
|
|
127
|
+
const originHeader = Array.isArray(origin) ? origin[0] : origin;
|
|
127
128
|
if (originHeader) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
129
|
+
headers['Access-Control-Allow-Origin'] = originHeader;
|
|
130
|
+
headers['Access-Control-Allow-Credentials'] = 'true';
|
|
131
|
+
headers['Access-Control-Allow-Methods'] = 'GET,POST,PUT,DELETE,OPTIONS';
|
|
132
|
+
headers['Access-Control-Allow-Headers'] =
|
|
133
|
+
'Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token';
|
|
134
134
|
}
|
|
135
135
|
if (request?.cookies && Object.keys(request.cookies).length > 0) {
|
|
136
136
|
Object.entries(request.cookies).forEach(([name, value]) => {
|
|
@@ -8,8 +8,8 @@ const _constants_1 = require("../../constants.js");
|
|
|
8
8
|
const _utils_1 = require("../../utils/index.js");
|
|
9
9
|
const http_1 = __importDefault(require("http"));
|
|
10
10
|
const Socket_1 = require("./Socket");
|
|
11
|
-
const WebsocetService_1 = require("./websocket/WebsocetService");
|
|
12
11
|
const WebsocketServer_1 = require("./websocket/WebsocketServer");
|
|
12
|
+
const WebsocketService_1 = require("./websocket/WebsocketService");
|
|
13
13
|
class HttpServer extends Socket_1.Socket {
|
|
14
14
|
app;
|
|
15
15
|
config;
|
|
@@ -22,7 +22,7 @@ class HttpServer extends Socket_1.Socket {
|
|
|
22
22
|
this.wss = new WebsocketServer_1.WebSocketServer(app, {
|
|
23
23
|
path: this.config.websocket.path || '/',
|
|
24
24
|
});
|
|
25
|
-
|
|
25
|
+
WebsocketService_1.WebSocketService.getInstance().initialize(this.wss);
|
|
26
26
|
}
|
|
27
27
|
this.app = app;
|
|
28
28
|
this.logConfig();
|
|
@@ -36,7 +36,7 @@ class HttpServer extends Socket_1.Socket {
|
|
|
36
36
|
║ 🔌 Port: ${this.config.port}
|
|
37
37
|
║ 🔌 Websocket: ${!!this.config.websocket}
|
|
38
38
|
║ 🔧 Global Middlewares: ${this.config.middlewares?.length || 0}
|
|
39
|
-
║ 🔧 Error
|
|
39
|
+
║ 🔧 Error handler: ${!this.config.errorHandler}
|
|
40
40
|
║ 🎯 Global Interceptors: ${!!this.config.interceptor?.length}
|
|
41
41
|
║ 📦 Controllers: ${_constants_1.STATISTIC.controllers}
|
|
42
42
|
║ 📦 Routes: ${_constants_1.STATISTIC.routes}
|
|
@@ -141,9 +141,7 @@ class HttpServer extends Socket_1.Socket {
|
|
|
141
141
|
let processed = appRequest;
|
|
142
142
|
for (const middleware of this.config.middlewares?.reverse() || []) {
|
|
143
143
|
const result = await middleware(processed, request, response);
|
|
144
|
-
|
|
145
|
-
processed = result;
|
|
146
|
-
}
|
|
144
|
+
processed = result ?? processed;
|
|
147
145
|
}
|
|
148
146
|
return processed;
|
|
149
147
|
}
|
package/dist/app/http/Socket.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Socket = void 0;
|
|
4
|
-
const
|
|
4
|
+
const WebsocketService_1 = require("./websocket/WebsocketService");
|
|
5
5
|
class Socket {
|
|
6
6
|
wss;
|
|
7
7
|
registerWebSocketControllers(controllers) {
|
|
@@ -14,19 +14,19 @@ class Socket {
|
|
|
14
14
|
return this;
|
|
15
15
|
}
|
|
16
16
|
sendToClient(clientId, message) {
|
|
17
|
-
return
|
|
17
|
+
return WebsocketService_1.WebSocketService.getInstance().sendToClient(clientId, message);
|
|
18
18
|
}
|
|
19
19
|
publishToTopic(topic, data) {
|
|
20
|
-
|
|
20
|
+
WebsocketService_1.WebSocketService.getInstance().publishToTopic(topic, data);
|
|
21
21
|
}
|
|
22
22
|
broadcast(message, excludeClientId) {
|
|
23
|
-
|
|
23
|
+
WebsocketService_1.WebSocketService.getInstance().broadcast(message, excludeClientId);
|
|
24
24
|
}
|
|
25
25
|
getWebSocketStats() {
|
|
26
|
-
return
|
|
26
|
+
return WebsocketService_1.WebSocketService.getInstance().getStats();
|
|
27
27
|
}
|
|
28
28
|
isWebSocketAvailable() {
|
|
29
|
-
return
|
|
29
|
+
return WebsocketService_1.WebSocketService.getInstance().isAvailable();
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
exports.Socket = Socket;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AppRequest, ControllerClass, ControllerConfig, ControllerInstance, InterceptorCB, RouteContext } from '../types/index.js';
|
|
1
|
+
import { AppRequest, ControllerClass, ControllerConfig, ControllerInstance, InterceptorCB, MiddlewareCB, RouteContext } from '../types/index.js';
|
|
2
2
|
import { IncomingMessage, ServerResponse } from 'http';
|
|
3
3
|
import 'reflect-metadata';
|
|
4
4
|
/**
|
|
@@ -45,8 +45,8 @@ export declare function Controller(config: string | ControllerConfig, middleware
|
|
|
45
45
|
name: string;
|
|
46
46
|
pathParams: Record<string, string>;
|
|
47
47
|
priority: number;
|
|
48
|
-
methodMiddlewares:
|
|
49
|
-
methodInterceptors:
|
|
48
|
+
methodMiddlewares: MiddlewareCB[];
|
|
49
|
+
methodInterceptors: InterceptorCB[];
|
|
50
50
|
};
|
|
51
51
|
};
|
|
52
52
|
} & T;
|
package/dist/core/Controller.js
CHANGED
|
@@ -70,6 +70,7 @@ function Controller(config, middlewares = []) {
|
|
|
70
70
|
super(...args);
|
|
71
71
|
}
|
|
72
72
|
async getResponse(data) {
|
|
73
|
+
let y;
|
|
73
74
|
try {
|
|
74
75
|
let appResponse = await this.executeControllerMethod(data.controllerInstance, data.name, data.payload, data.request, data.response);
|
|
75
76
|
let status = appResponse.status ?? 200;
|
|
@@ -159,7 +160,7 @@ function Controller(config, middlewares = []) {
|
|
|
159
160
|
let payload = { ...context.appRequest, params: pathParams };
|
|
160
161
|
for (const mw of allMiddlewares) {
|
|
161
162
|
const mwResult = await mw(payload, context.request, context.response);
|
|
162
|
-
payload =
|
|
163
|
+
payload = mwResult ?? payload;
|
|
163
164
|
}
|
|
164
165
|
return this.getResponse({
|
|
165
166
|
interceptors: [...context.interceptorChain, controllerMeta.interceptor].filter((el) => !!el),
|
|
@@ -59,6 +59,11 @@ exports.User = User = __decorate([
|
|
|
59
59
|
(0, core_1.Controller)({
|
|
60
60
|
prefix: 'user',
|
|
61
61
|
controllers: [userMetadata_1.UserMetadata],
|
|
62
|
+
middlewares: [
|
|
63
|
+
(req) => {
|
|
64
|
+
return req;
|
|
65
|
+
},
|
|
66
|
+
],
|
|
62
67
|
interceptor: (data, req, res) => {
|
|
63
68
|
return { data, intercepted: true };
|
|
64
69
|
},
|
package/dist/types/common.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export type AxiosQuery = {
|
|
|
38
38
|
export interface IController {
|
|
39
39
|
handleRequest: Router;
|
|
40
40
|
}
|
|
41
|
-
export type MiddlewareCB = (appRequest: AppRequest, request?: IncomingMessage,
|
|
41
|
+
export type MiddlewareCB = (appRequest: AppRequest, request?: IncomingMessage, response?: ServerResponse) => void | Promise<AppRequest> | AppRequest;
|
|
42
42
|
export type InterceptorCB = (data: any, req?: IncomingMessage, res?: ServerResponse) => Promise<unknown> | unknown;
|
|
43
43
|
export type ErrorCB = (error: Error, req?: IncomingMessage, res?: ServerResponse) => Promise<ResponseWithStatus> | ResponseWithStatus;
|
|
44
44
|
export type ParamDecoratorType = 'body' | 'params' | 'query' | 'request' | 'headers' | 'cookies' | 'response' | 'multipart' | 'event' | 'context';
|
|
@@ -48,12 +48,6 @@ export interface ParamMetadata {
|
|
|
48
48
|
dto?: any;
|
|
49
49
|
name?: string;
|
|
50
50
|
}
|
|
51
|
-
export interface ParamMetadata {
|
|
52
|
-
index: number;
|
|
53
|
-
type: ParamDecoratorType;
|
|
54
|
-
dto?: any;
|
|
55
|
-
name?: string;
|
|
56
|
-
}
|
|
57
51
|
export type ResponseWithStatus = {
|
|
58
52
|
status: number;
|
|
59
53
|
[key: string]: any;
|
package/dist/utils/controller.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getControllerMethods = exports.executeControllerMethod = void 0;
|
|
4
4
|
const _types_1 = require("../types/index.js");
|
|
5
5
|
const _utils_1 = require("./index.js");
|
|
6
|
-
const
|
|
6
|
+
const WebsocketService_1 = require("../app/http/websocket/WebsocketService");
|
|
7
7
|
const validate_1 = require("./validate");
|
|
8
8
|
const _constants_1 = require("../constants.js");
|
|
9
9
|
const getBodyAndMultipart = (payload) => {
|
|
@@ -53,7 +53,7 @@ const executeControllerMethod = async (controller, propertyName, payload, reques
|
|
|
53
53
|
for (let i = 0; i < totalParams; i++) {
|
|
54
54
|
const wsParam = wsParams.find((p) => p.index === i);
|
|
55
55
|
if (wsParam) {
|
|
56
|
-
args[i] =
|
|
56
|
+
args[i] = WebsocketService_1.WebSocketService.getInstance();
|
|
57
57
|
continue;
|
|
58
58
|
}
|
|
59
59
|
const param = paramMetadata.find((p) => p.index === i);
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|