@heliosjs/middlewares 1.5.2 → 2.0.0
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/types/core/common.d.ts +1 -1
- package/dist/types/core/controller.d.ts +33 -5
- package/dist/utils/shared/helpers.d.ts +1 -0
- package/dist/utils/shared/helpers.js +8 -0
- package/dist/utils/shared/helpers.js.map +1 -0
- package/dist/utils/shared/index.d.ts +1 -0
- package/dist/utils/shared/index.js +1 -0
- package/dist/utils/shared/index.js.map +1 -1
- package/dist/utils/sse/server.d.ts +2 -2
- package/dist/utils/sse/server.js +3 -3
- package/dist/utils/sse/server.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ErrorCB, HTTP_METHODS, InterceptorCB, MiddlewareCB } from './common';
|
|
1
|
+
import { HTTP_METHODS, InterceptorCB, MiddlewareCB, ParamMetadata } from './common';
|
|
3
2
|
import { CORSConfig } from './cors';
|
|
3
|
+
import { ErorrHandler } from './error';
|
|
4
4
|
import { Request } from './request';
|
|
5
|
+
import { Response } from './response';
|
|
5
6
|
import { SanitizerConfig } from './sanitize';
|
|
6
7
|
export type ControllerClass = {
|
|
7
8
|
new (...args: any[]): any;
|
|
@@ -13,7 +14,7 @@ export type ControllerMethods = Array<{
|
|
|
13
14
|
middlewares?: MiddlewareCB[];
|
|
14
15
|
}>;
|
|
15
16
|
export type ControllerType = {
|
|
16
|
-
handleRequest?(request: Request, response:
|
|
17
|
+
handleRequest?(request: Request, response: Response): Promise<any>;
|
|
17
18
|
ws?: WsControllerHandlers;
|
|
18
19
|
sse?: SeeControllerHandlers;
|
|
19
20
|
new (...args: any[]): any;
|
|
@@ -24,7 +25,7 @@ export type ControllerMetadata = {
|
|
|
24
25
|
middlewares: MiddlewareCB[];
|
|
25
26
|
interceptor?: InterceptorCB;
|
|
26
27
|
subControllers: ControllerInstance[];
|
|
27
|
-
errorHandler?:
|
|
28
|
+
errorHandler?: ErorrHandler;
|
|
28
29
|
cors?: CORSConfig;
|
|
29
30
|
sanitizers: SanitizerConfig[];
|
|
30
31
|
};
|
|
@@ -42,7 +43,7 @@ export type RouteContext = {
|
|
|
42
43
|
middlewareChain: MiddlewareCB[];
|
|
43
44
|
interceptorChain: InterceptorCB[];
|
|
44
45
|
corsChain: CORSConfig[];
|
|
45
|
-
errorHandlerChain:
|
|
46
|
+
errorHandlerChain: ErorrHandler[];
|
|
46
47
|
subPath: string;
|
|
47
48
|
sanitizersChain: SanitizerConfig[];
|
|
48
49
|
};
|
|
@@ -75,4 +76,31 @@ export type SeeControllerHandlers = {
|
|
|
75
76
|
error: HandlerMeta[];
|
|
76
77
|
};
|
|
77
78
|
};
|
|
79
|
+
export type Route = {
|
|
80
|
+
name: string;
|
|
81
|
+
route: string;
|
|
82
|
+
method: HTTP_METHODS;
|
|
83
|
+
cors?: CORSConfig[];
|
|
84
|
+
ok: number;
|
|
85
|
+
paramMetadata: ParamMetadata[];
|
|
86
|
+
interceptors: InterceptorCB[];
|
|
87
|
+
functions: {
|
|
88
|
+
sanitizers: SanitizerConfig[];
|
|
89
|
+
errors: ErorrHandler[];
|
|
90
|
+
middlewares: MiddlewareCB[];
|
|
91
|
+
}[];
|
|
92
|
+
fn: (...args: any[]) => any;
|
|
93
|
+
};
|
|
78
94
|
export type NextFunction = (error?: unknown) => void;
|
|
95
|
+
export type ControllerMeta = {
|
|
96
|
+
prefix: string;
|
|
97
|
+
routes: Route[];
|
|
98
|
+
interceptors: InterceptorCB[];
|
|
99
|
+
cors: CORSConfig[];
|
|
100
|
+
functions: {
|
|
101
|
+
sanitizers: SanitizerConfig[];
|
|
102
|
+
errors: ErorrHandler[];
|
|
103
|
+
middlewares: MiddlewareCB[];
|
|
104
|
+
}[];
|
|
105
|
+
children?: ControllerMeta[];
|
|
106
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const generateUniqueId: () => string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateUniqueId = void 0;
|
|
4
|
+
const generateUniqueId = () => {
|
|
5
|
+
return `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
6
|
+
};
|
|
7
|
+
exports.generateUniqueId = generateUniqueId;
|
|
8
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/shared/helpers.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B"}
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./helpers"), exports);
|
|
17
18
|
__exportStar(require("./parsers"), exports);
|
|
18
19
|
__exportStar(require("./validate"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ServerResponse } from 'http';
|
|
1
|
+
import { ServerResponse } from 'node:http';
|
|
2
2
|
import { ControllerType, ISSEServer, SSEClient, SSEMessage } from '../../types/core';
|
|
3
3
|
export declare class SSEServer implements ISSEServer {
|
|
4
|
-
private clients;
|
|
4
|
+
private readonly clients;
|
|
5
5
|
controllers: any[];
|
|
6
6
|
createConnection(res: ServerResponse): SSEClient;
|
|
7
7
|
sendToClient(clientId: string, message: SSEMessage): boolean;
|
package/dist/utils/sse/server.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SSEServer = void 0;
|
|
4
|
-
const
|
|
4
|
+
const shared_1 = require("../shared");
|
|
5
5
|
class SSEServer {
|
|
6
6
|
clients = new Map();
|
|
7
7
|
controllers = [];
|
|
8
8
|
createConnection(res) {
|
|
9
|
-
const clientId = (0,
|
|
9
|
+
const clientId = (0, shared_1.generateUniqueId)();
|
|
10
10
|
res.writeHead(200, {
|
|
11
11
|
'Content-Type': 'text/event-stream',
|
|
12
12
|
'Cache-Control': 'no-cache',
|
|
@@ -75,7 +75,7 @@ class SSEServer {
|
|
|
75
75
|
for (const controller of this.controllers) {
|
|
76
76
|
if (controller.sse.handlers && controller.sse.handlers[eventType]) {
|
|
77
77
|
for (const handler of controller.sse.handlers[eventType]) {
|
|
78
|
-
await handler.fn(event).catch(console.
|
|
78
|
+
await handler.fn(event).catch(console.error);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/utils/sse/server.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/utils/sse/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heliosjs/middlewares",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Core functionality for Quantum Flow",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"reflect-metadata": "^0.2.2"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@heliosjs/core": "^1.
|
|
33
|
+
"@heliosjs/core": "^1.4.0",
|
|
34
34
|
"typescript": ">=4.0.0"
|
|
35
35
|
}
|
|
36
36
|
}
|