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.
@@ -1,5 +1,5 @@
1
1
  import { APIGatewayProxyEvent, APIGatewayProxyResult, Context, Handler } from 'aws-lambda';
2
- import { LambdaRequest, LambdaResponse, LambdaApp } from '../../types/index.js';
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;
@@ -123,14 +123,14 @@ class LambdaAdapter {
123
123
  };
124
124
  }
125
125
  }
126
- let originHeader = LambdaAdapter.getHeaderValue(request?.headers, 'origin');
126
+ let origin = LambdaAdapter.getHeaderValue(request?.headers, 'origin');
127
+ const originHeader = Array.isArray(origin) ? origin[0] : origin;
127
128
  if (originHeader) {
128
- if (Array.isArray(originHeader)) {
129
- origin = originHeader[0];
130
- }
131
- else {
132
- origin = originHeader;
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
- WebsocetService_1.WebSocketService.getInstance().initialize(this.wss);
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 middlewares: ${this.config.errorHandler?.length || 0}
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
- if (result) {
145
- processed = result;
146
- }
144
+ processed = result ?? processed;
147
145
  }
148
146
  return processed;
149
147
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Socket = void 0;
4
- const WebsocetService_1 = require("./websocket/WebsocetService");
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 WebsocetService_1.WebSocketService.getInstance().sendToClient(clientId, message);
17
+ return WebsocketService_1.WebSocketService.getInstance().sendToClient(clientId, message);
18
18
  }
19
19
  publishToTopic(topic, data) {
20
- WebsocetService_1.WebSocketService.getInstance().publishToTopic(topic, data);
20
+ WebsocketService_1.WebSocketService.getInstance().publishToTopic(topic, data);
21
21
  }
22
22
  broadcast(message, excludeClientId) {
23
- WebsocetService_1.WebSocketService.getInstance().broadcast(message, excludeClientId);
23
+ WebsocketService_1.WebSocketService.getInstance().broadcast(message, excludeClientId);
24
24
  }
25
25
  getWebSocketStats() {
26
- return WebsocetService_1.WebSocketService.getInstance().getStats();
26
+ return WebsocketService_1.WebSocketService.getInstance().getStats();
27
27
  }
28
28
  isWebSocketAvailable() {
29
- return WebsocetService_1.WebSocketService.getInstance().isAvailable();
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: any[];
49
- methodInterceptors: any[];
48
+ methodMiddlewares: MiddlewareCB[];
49
+ methodInterceptors: InterceptorCB[];
50
50
  };
51
51
  };
52
52
  } & T;
@@ -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 = { ...payload, ...mwResult };
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
  },
@@ -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, respinse?: ServerResponse) => Promise<AppRequest> | AppRequest;
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;
@@ -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 WebsocetService_1 = require("../app/http/websocket/WebsocetService");
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] = WebsocetService_1.WebSocketService.getInstance();
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quantum-flow",
3
- "version": "1.3.1",
3
+ "version": "1.3.5",
4
4
  "description": "Decorator-based API framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",