@typetron/framework 0.4.0-rc6 → 0.4.0-rc7
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/Framework/Auth/index.d.ts +1 -1
- package/Framework/Auth/index.js +9 -9
- package/Framework/Auth/index.js.map +1 -1
- package/Framework/Providers/WebsocketsProvider.d.ts +1 -1
- package/Framework/Providers/WebsocketsProvider.d.ts.map +1 -1
- package/Framework/Providers/WebsocketsProvider.js +8 -7
- package/Framework/Providers/WebsocketsProvider.js.map +1 -1
- package/Router/Action.d.ts +17 -0
- package/Router/Action.d.ts.map +1 -0
- package/Router/Action.js +43 -0
- package/Router/Action.js.map +1 -0
- package/Router/ActionRequest.d.ts +17 -0
- package/Router/ActionRequest.d.ts.map +1 -0
- package/Router/ActionRequest.js +43 -0
- package/Router/ActionRequest.js.map +1 -0
- package/Router/Decorators.d.ts +1 -1
- package/Router/Decorators.d.ts.map +1 -1
- package/Router/Decorators.js +34 -30
- package/Router/Decorators.js.map +1 -1
- package/Router/Http/Handler.d.ts +3 -2
- package/Router/Http/Handler.d.ts.map +1 -1
- package/Router/Http/Handler.js +3 -2
- package/Router/Http/Handler.js.map +1 -1
- package/Router/Http/HttpRoute.d.ts +23 -0
- package/Router/Http/HttpRoute.d.ts.map +1 -0
- package/Router/Http/HttpRoute.js +111 -0
- package/Router/Http/HttpRoute.js.map +1 -0
- package/Router/Http/Request.d.ts +13 -3
- package/Router/Http/Request.d.ts.map +1 -1
- package/Router/Http/Request.js +6 -9
- package/Router/Http/Request.js.map +1 -1
- package/Router/Http/Route.d.ts +24 -0
- package/Router/Http/Route.d.ts.map +1 -0
- package/Router/Http/Route.js +111 -0
- package/Router/Http/Route.js.map +1 -0
- package/Router/Metadata.d.ts +12 -6
- package/Router/Metadata.d.ts.map +1 -1
- package/Router/Metadata.js +9 -5
- package/Router/Metadata.js.map +1 -1
- package/Router/Middleware.d.ts +2 -1
- package/Router/Middleware.d.ts.map +1 -1
- package/Router/Request.d.ts +24 -0
- package/Router/Request.d.ts.map +1 -0
- package/Router/Request.js +43 -0
- package/Router/Request.js.map +1 -0
- package/Router/Route.d.ts +5 -15
- package/Router/Route.d.ts.map +1 -1
- package/Router/Route.js +3 -98
- package/Router/Route.js.map +1 -1
- package/Router/Router.d.ts +4 -4
- package/Router/Router.d.ts.map +1 -1
- package/Router/Router.js +1 -1
- package/Router/Router.js.map +1 -1
- package/Router/Servers/uNetworking.js +1 -1
- package/Router/Websockets/ActionRequest.d.ts +17 -0
- package/Router/Websockets/ActionRequest.d.ts.map +1 -0
- package/Router/Websockets/ActionRequest.js +43 -0
- package/Router/Websockets/ActionRequest.js.map +1 -0
- package/Router/Websockets/Handler.d.ts +6 -5
- package/Router/Websockets/Handler.d.ts.map +1 -1
- package/Router/Websockets/Handler.js +12 -12
- package/Router/Websockets/Handler.js.map +1 -1
- package/Router/Websockets/Request.d.ts +4 -0
- package/Router/Websockets/Request.d.ts.map +1 -0
- package/Router/Websockets/Request.js +8 -0
- package/Router/Websockets/Request.js.map +1 -0
- package/Router/Websockets/WebsocketAction.d.ts +7 -0
- package/Router/Websockets/WebsocketAction.d.ts.map +1 -0
- package/Router/Websockets/WebsocketAction.js +55 -0
- package/Router/Websockets/WebsocketAction.js.map +1 -0
- package/Router/Websockets/WebsocketEvent.js +1 -1
- package/Router/Websockets/WebsocketEvent.js.map +1 -1
- package/Router/Websockets/WebsocketRequest.d.ts +4 -0
- package/Router/Websockets/WebsocketRequest.d.ts.map +1 -0
- package/Router/Websockets/WebsocketRequest.js +8 -0
- package/Router/Websockets/WebsocketRequest.js.map +1 -0
- package/Router/Websockets/WebsocketRoute.d.ts +7 -0
- package/Router/Websockets/WebsocketRoute.d.ts.map +1 -0
- package/Router/Websockets/WebsocketRoute.js +55 -0
- package/Router/Websockets/WebsocketRoute.js.map +1 -0
- package/Router/Websockets/index.d.ts +3 -3
- package/Router/Websockets/index.d.ts.map +1 -1
- package/Router/Websockets/index.js +7 -7
- package/Router/Websockets/index.js.map +1 -1
- package/Router/Websockets/types.d.ts +6 -6
- package/Router/Websockets/types.d.ts.map +1 -1
- package/Support/index.d.ts +1 -0
- package/Support/index.d.ts.map +1 -1
- package/Testing/TestCase.d.ts +4 -4
- package/Testing/TestCase.d.ts.map +1 -1
- package/Testing/TestCase.js +10 -9
- package/Testing/TestCase.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,5 +2,5 @@ export * from './Auth';
|
|
|
2
2
|
export * from './User';
|
|
3
3
|
export * from './Authenticatable';
|
|
4
4
|
export declare const AuthUserIdentifier: unique symbol;
|
|
5
|
-
export declare function AuthUser(): (target:
|
|
5
|
+
export declare function AuthUser(): (target: object, property: string, parameterIndex?: number | undefined) => void;
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/Framework/Auth/index.js
CHANGED
|
@@ -26,18 +26,18 @@ function AuthUser() {
|
|
|
26
26
|
Container_1.InjectableMetadata.set(metadata, target.constructor);
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
|
-
// TODO refactor this so it doesn't add the metadata to both .routes and .
|
|
29
|
+
// TODO refactor this so it doesn't add the metadata to both .routes and .actions
|
|
30
30
|
const metadata = Metadata_1.ControllerMetadata.get(target.constructor);
|
|
31
|
-
const route = metadata.routes[property] || new
|
|
32
|
-
route.parametersOverrides[parameterIndex] = async function
|
|
31
|
+
// const route = metadata.routes[property] || new RouteMetadata()
|
|
32
|
+
// route.parametersOverrides[parameterIndex] = async function(container: Container) {
|
|
33
|
+
// return await container.get(AuthUserIdentifier)
|
|
34
|
+
// }
|
|
35
|
+
// metadata.routes[property] = route
|
|
36
|
+
const methodMetadata = metadata.methods[property] || new Metadata_1.MethodMetadata();
|
|
37
|
+
methodMetadata.parametersOverrides[parameterIndex] = async function (container) {
|
|
33
38
|
return await container.get(exports.AuthUserIdentifier);
|
|
34
39
|
};
|
|
35
|
-
metadata.
|
|
36
|
-
const event = metadata.events[property] || new Metadata_1.EventMetadata();
|
|
37
|
-
event.parametersOverrides[parameterIndex] = async function (container) {
|
|
38
|
-
return await container.get(exports.AuthUserIdentifier);
|
|
39
|
-
};
|
|
40
|
-
metadata.events[property] = event;
|
|
40
|
+
metadata.methods[property] = methodMetadata;
|
|
41
41
|
Metadata_1.ControllerMetadata.set(metadata, target.constructor);
|
|
42
42
|
}
|
|
43
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Framework/Auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Framework/Auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAsE;AACtE,oDAAyF;AAEzF,yCAAsB;AACtB,yCAAsB;AACtB,oDAAiC;AAEpB,QAAA,kBAAkB,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAA;AAEzE,SAAgB,QAAQ;IACpB,OAAO,UAAS,MAAc,EAAE,QAAgB,EAAE,cAAuB;QACrE,IAAI,cAAc,KAAK,SAAS,EAAE;YAC9B,MAAM,QAAQ,GAAG,8BAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAC3D,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,0BAAkB,CAAA;YACpD,QAAQ,CAAC,KAAK,GAAG,iBAAK,CAAC,OAAO,CAAA;YAC9B,8BAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;SACvD;aAAM;YACH,iFAAiF;YACjF,MAAM,QAAQ,GAAG,6BAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAE3D,iEAAiE;YACjE,qFAAqF;YACrF,qDAAqD;YACrD,IAAI;YACJ,oCAAoC;YAEpC,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,yBAAc,EAAE,CAAA;YACzE,cAAc,CAAC,mBAAmB,CAAC,cAAc,CAAC,GAAG,KAAK,WAAU,SAAoB;gBACpF,OAAO,MAAM,SAAS,CAAC,GAAG,CAAC,0BAAkB,CAAC,CAAA;YAClD,CAAC,CAAA;YACD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAA;YAE3C,6BAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;SACvD;IACL,CAAC,CAAA;AACL,CAAC;AA1BD,4BA0BC"}
|
|
@@ -8,6 +8,6 @@ export declare class WebsocketsProvider extends Provider {
|
|
|
8
8
|
errorHandler: ErrorHandlerInterface;
|
|
9
9
|
sockets: Map<string | number, WebSocket>;
|
|
10
10
|
register(): void | Promise<void>;
|
|
11
|
-
private
|
|
11
|
+
private handleAction;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=WebsocketsProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketsProvider.d.ts","sourceRoot":"","sources":["../../../Framework/Providers/WebsocketsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAGrC,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"WebsocketsProvider.d.ts","sourceRoot":"","sources":["../../../Framework/Providers/WebsocketsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAGrC,OAAO,EAAE,qBAAqB,EAAY,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAuB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASjF,qBAAa,kBAAmB,SAAQ,QAAQ;IAG5C,SAAS,EAAE,SAAS,CAAA;IAGpB,OAAO,EAAE,OAAO,CAAA;IAGhB,YAAY,EAAE,qBAAqB,CAAA;IAEnC,OAAO,kCAAwC;IAE/C,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YA4ElB,YAAY;CAS7B"}
|
|
@@ -17,6 +17,7 @@ const uWebSockets_js_1 = require("uWebSockets.js");
|
|
|
17
17
|
const util_1 = require("util");
|
|
18
18
|
const Http_1 = require("../../Router/Http");
|
|
19
19
|
const Websockets_1 = require("../../Router/Websockets");
|
|
20
|
+
const Request_1 = require("@Typetron/Router/Websockets/Request");
|
|
20
21
|
var WebsocketMessageStatus;
|
|
21
22
|
(function (WebsocketMessageStatus) {
|
|
22
23
|
WebsocketMessageStatus["OK"] = "OK";
|
|
@@ -46,7 +47,7 @@ class WebsocketsProvider extends Provider_1.Provider {
|
|
|
46
47
|
close: async (socket) => {
|
|
47
48
|
await this.handler.onClose?.run(socket.container, {});
|
|
48
49
|
},
|
|
49
|
-
/* For brevity we skip the other
|
|
50
|
+
/* For brevity we skip the other actions (upgrade, open, ping, pong, close) */
|
|
50
51
|
message: async (socket, message, isBinary) => {
|
|
51
52
|
const jsonData = stringDecoder.decode(message);
|
|
52
53
|
let data;
|
|
@@ -57,10 +58,10 @@ class WebsocketsProvider extends Provider_1.Provider {
|
|
|
57
58
|
throw new Error(`Invalid Websocket message sent: ${jsonData}`);
|
|
58
59
|
}
|
|
59
60
|
try {
|
|
60
|
-
const response = await this.
|
|
61
|
-
const
|
|
61
|
+
const response = await this.handleAction(socket.container, data);
|
|
62
|
+
const action = data.action;
|
|
62
63
|
const sentResponse = {
|
|
63
|
-
|
|
64
|
+
action,
|
|
64
65
|
message: response.body,
|
|
65
66
|
status: WebsocketMessageStatus.OK,
|
|
66
67
|
};
|
|
@@ -78,7 +79,7 @@ class WebsocketsProvider extends Provider_1.Provider {
|
|
|
78
79
|
message: error.content ?? error.message,
|
|
79
80
|
stack: error.stack.split('\n')
|
|
80
81
|
},
|
|
81
|
-
|
|
82
|
+
action: data.action,
|
|
82
83
|
status: WebsocketMessageStatus.Error
|
|
83
84
|
};
|
|
84
85
|
if (errorMessage.message) {
|
|
@@ -94,8 +95,8 @@ class WebsocketsProvider extends Provider_1.Provider {
|
|
|
94
95
|
}
|
|
95
96
|
});
|
|
96
97
|
}
|
|
97
|
-
async
|
|
98
|
-
const request = new
|
|
98
|
+
async handleAction(container, { action, message }) {
|
|
99
|
+
const request = new Request_1.Request(action, message?.body);
|
|
99
100
|
// TODO find a way to save parameters so they can be retrieved easily in the Resolvers (check routeEntity resolver for example)
|
|
100
101
|
message?.parameters?.forEach(parameter => {
|
|
101
102
|
request.parameters[String.random(15)] = parameter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketsProvider.js","sourceRoot":"","sources":["../../../Framework/Providers/WebsocketsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAsC;AACtC,+CAAmD;AACnD,sCAAqC;AACrC,mDAAuF;AACvF,+BAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"WebsocketsProvider.js","sourceRoot":"","sources":["../../../Framework/Providers/WebsocketsProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IncomingHttpHeaders } from 'http';
|
|
3
|
+
import { File } from '../Storage';
|
|
4
|
+
export declare class Action {
|
|
5
|
+
parameters: Record<string, string | number>;
|
|
6
|
+
private raw;
|
|
7
|
+
private details;
|
|
8
|
+
getHeader: <T extends string | string[]>(name: keyof IncomingHttpHeaders | string) => T | undefined;
|
|
9
|
+
constructor(name: string, cookies?: string | Record<string, string | undefined>, body?: string | object, files?: Record<string, File | File[]>);
|
|
10
|
+
get url(): string;
|
|
11
|
+
get body(): string | object | undefined;
|
|
12
|
+
get cookies(): Record<string, string | undefined>;
|
|
13
|
+
set body(body: string | object | undefined);
|
|
14
|
+
get files(): Record<string, File | File[]>;
|
|
15
|
+
set files(files: Record<string, File | File[]>);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=Action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../Router/Action.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,qBAAa,MAAM;IACR,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAK;IAEvD,OAAO,CAAC,GAAG,CAKV;IAID,OAAO,CAAC,OAAO,CAKT;IAEN,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,mBAAmB,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,CAAA;gBAG/F,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACrD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;IAUzC,IAAI,GAAG,IAAI,MAAM,CAIhB;IAED,IAAI,IAAI,IAYO,MAAM,GAAG,MAAM,GAAG,SAAS,CARzC;IAED,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAIhD;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAEzC;IAED,IAAI,KAAK,IAIQ,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAF7C;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EAE7C;CAsBJ"}
|
package/Router/Action.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Action = void 0;
|
|
4
|
+
class Action {
|
|
5
|
+
constructor(name, cookies, body, files) {
|
|
6
|
+
this.parameters = {};
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
8
|
+
// @ts-ignore
|
|
9
|
+
this.details = {};
|
|
10
|
+
this.raw = {
|
|
11
|
+
name: name,
|
|
12
|
+
cookies,
|
|
13
|
+
body,
|
|
14
|
+
files,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
get url() {
|
|
18
|
+
return this.details.action ?? (() => {
|
|
19
|
+
return this.details.action = this.raw.name;
|
|
20
|
+
})();
|
|
21
|
+
}
|
|
22
|
+
get body() {
|
|
23
|
+
return this.details.body ?? (() => {
|
|
24
|
+
return this.details.body = this.raw.body;
|
|
25
|
+
})();
|
|
26
|
+
}
|
|
27
|
+
get cookies() {
|
|
28
|
+
return this.details.cookies ?? (() => {
|
|
29
|
+
return { todo: 'parse cookies' };
|
|
30
|
+
})();
|
|
31
|
+
}
|
|
32
|
+
set body(body) {
|
|
33
|
+
this.details.body = body;
|
|
34
|
+
}
|
|
35
|
+
get files() {
|
|
36
|
+
return this.raw.files ?? {};
|
|
37
|
+
}
|
|
38
|
+
set files(files) {
|
|
39
|
+
this.raw.files = files;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.Action = Action;
|
|
43
|
+
//# sourceMappingURL=Action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../../Router/Action.ts"],"names":[],"mappings":";;;AAGA,MAAa,MAAM;IAqBf,YACI,IAAY,EACZ,OAAqD,EACrD,IAAsB,EACtB,KAAqC;QAxBlC,eAAU,GAAoC,EAAE,CAAA;QASvD,6DAA6D;QAC7D,aAAa;QACL,YAAO,GAKX,EAAE,CAAA;QAUF,IAAI,CAAC,GAAG,GAAG;YACP,IAAI,EAAE,IAAI;YACV,OAAO;YACP,IAAI;YACJ,KAAK;SACR,CAAA;IACL,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;YAChC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;QAC9C,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;YAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;QAC5C,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE;YACjC,OAAO,EAAC,IAAI,EAAE,eAAe,EAAC,CAAA;QAClC,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;IAED,IAAI,IAAI,CAAC,IAAiC;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;IAC5B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAA;IAC/B,CAAC;IAED,IAAI,KAAK,CAAC,KAAoC;QAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAC1B,CAAC;CAsBJ;AArFD,wBAqFC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IncomingHttpHeaders } from 'http';
|
|
3
|
+
import { File } from '../Storage';
|
|
4
|
+
export declare class Action {
|
|
5
|
+
parameters: Record<string, string | number>;
|
|
6
|
+
private raw;
|
|
7
|
+
private details;
|
|
8
|
+
getHeader: <T extends string | string[]>(name: keyof IncomingHttpHeaders | string) => T | undefined;
|
|
9
|
+
constructor(name: string, cookies?: string | Record<string, string | undefined>, body?: string | object, files?: Record<string, File | File[]>);
|
|
10
|
+
get url(): string;
|
|
11
|
+
get body(): string | object | undefined;
|
|
12
|
+
get cookies(): Record<string, string | undefined>;
|
|
13
|
+
set body(body: string | object | undefined);
|
|
14
|
+
get files(): Record<string, File | File[]>;
|
|
15
|
+
set files(files: Record<string, File | File[]>);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ActionRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionRequest.d.ts","sourceRoot":"","sources":["../../Router/ActionRequest.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,qBAAa,MAAM;IACR,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAK;IAEvD,OAAO,CAAC,GAAG,CAKV;IAID,OAAO,CAAC,OAAO,CAKT;IAEN,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,mBAAmB,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,CAAA;gBAG/F,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACrD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;IAUzC,IAAI,GAAG,IAAI,MAAM,CAIhB;IAED,IAAI,IAAI,IAYO,MAAM,GAAG,MAAM,GAAG,SAAS,CARzC;IAED,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAIhD;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAEzC;IAED,IAAI,KAAK,IAIQ,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAF7C;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EAE7C;CAsBJ"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Action = void 0;
|
|
4
|
+
class Action {
|
|
5
|
+
constructor(name, cookies, body, files) {
|
|
6
|
+
this.parameters = {};
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
8
|
+
// @ts-ignore
|
|
9
|
+
this.details = {};
|
|
10
|
+
this.raw = {
|
|
11
|
+
name: name,
|
|
12
|
+
cookies,
|
|
13
|
+
body,
|
|
14
|
+
files,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
get url() {
|
|
18
|
+
return this.details.action ?? (() => {
|
|
19
|
+
return this.details.action = this.raw.name;
|
|
20
|
+
})();
|
|
21
|
+
}
|
|
22
|
+
get body() {
|
|
23
|
+
return this.details.body ?? (() => {
|
|
24
|
+
return this.details.body = this.raw.body;
|
|
25
|
+
})();
|
|
26
|
+
}
|
|
27
|
+
get cookies() {
|
|
28
|
+
return this.details.cookies ?? (() => {
|
|
29
|
+
return { todo: 'parse cookies' };
|
|
30
|
+
})();
|
|
31
|
+
}
|
|
32
|
+
set body(body) {
|
|
33
|
+
this.details.body = body;
|
|
34
|
+
}
|
|
35
|
+
get files() {
|
|
36
|
+
return this.raw.files ?? {};
|
|
37
|
+
}
|
|
38
|
+
set files(files) {
|
|
39
|
+
this.raw.files = files;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.Action = Action;
|
|
43
|
+
//# sourceMappingURL=ActionRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionRequest.js","sourceRoot":"","sources":["../../Router/ActionRequest.ts"],"names":[],"mappings":";;;AAGA,MAAa,MAAM;IAqBf,YACI,IAAY,EACZ,OAAqD,EACrD,IAAsB,EACtB,KAAqC;QAxBlC,eAAU,GAAoC,EAAE,CAAA;QASvD,6DAA6D;QAC7D,aAAa;QACL,YAAO,GAKX,EAAE,CAAA;QAUF,IAAI,CAAC,GAAG,GAAG;YACP,IAAI,EAAE,IAAI;YACV,OAAO;YACP,IAAI;YACJ,KAAK;SACR,CAAA;IACL,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;YAChC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;QAC9C,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;YAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;QAC5C,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE;YACjC,OAAO,EAAC,IAAI,EAAE,eAAe,EAAC,CAAA;QAClC,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;IAED,IAAI,IAAI,CAAC,IAAiC;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;IAC5B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAA;IAC/B,CAAC;IAED,IAAI,KAAK,CAAC,KAAoC;QAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAC1B,CAAC;CAsBJ;AArFD,wBAqFC"}
|
package/Router/Decorators.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ declare class ControllerOptions {
|
|
|
5
5
|
prefix?: string;
|
|
6
6
|
}
|
|
7
7
|
export declare function Controller(path?: string, options?: ControllerOptions): (target: object) => void;
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function Action(name?: string): (target: object, action: string) => void;
|
|
9
9
|
export declare function OnOpen(target: object, action: string): void;
|
|
10
10
|
export declare function OnClose(target: object, action: string): void;
|
|
11
11
|
export declare function Arg(name: string): (target: object, action: string, parameterIndex: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Decorators.d.ts","sourceRoot":"","sources":["../../Router/Decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAe,IAAI,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"Decorators.d.ts","sourceRoot":"","sources":["../../Router/Decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAe,IAAI,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAM/B,cAAM,iBAAiB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,UAAU,CAAC,IAAI,SAAK,EAAE,OAAO,oBAAwB,YACjD,MAAM,UAkCzB;AAkCD,wBAAgB,MAAM,CAAC,IAAI,SAAK,YACZ,MAAM,UAAU,MAAM,UAGzC;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QASpD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QASrD;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,YACJ,MAAM,UAAU,MAAM,kBAAkB,MAAM,UAGzE;AAED,wBAAgB,GAAG,CAAC,IAAI,SAAK,EAAE,IAAI,SAAK,YACpB,MAAM,UAAU,MAAM,UAGzC;AAED,wBAAgB,IAAI,CAAC,IAAI,GAAE,MAAW,EAAE,IAAI,SAAK,YAC7B,MAAM,UAAU,MAAM,UAGzC;AAED,wBAAgB,GAAG,CAAC,IAAI,GAAE,MAAW,EAAE,IAAI,SAAK,YAC5B,MAAM,UAAU,MAAM,UAGzC;AAED,wBAAgB,KAAK,CAAC,IAAI,GAAE,MAAW,EAAE,IAAI,SAAK,YAC9B,MAAM,UAAU,MAAM,UAGzC;AAED,wBAAgB,MAAM,CAAC,IAAI,GAAE,MAAW,EAAE,IAAI,SAAK,YAC/B,MAAM,UAAU,MAAM,UAGzC;AAED,wBAAgB,UAAU,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,YACrD,MAAM,uCAiBzB;AAED,wBAAgB,OAAO,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,YACpB,MAAM,UAAU,MAAM,UAiBjD;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,YACN,MAAM,UAAU,MAAM,kBAAkB,MAAM,UAkBzE;AAED,wBAAgB,IAAI,aACQ,MAAM,UAAU,MAAM,kBAAkB,MAAM,UAiBzE"}
|
package/Router/Decorators.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Body = exports.Query = exports.AllowIf = exports.Middleware = exports.Delete = exports.Patch = exports.Put = exports.Post = exports.Get = exports.Arg = exports.OnClose = exports.OnOpen = exports.
|
|
3
|
+
exports.Body = exports.Query = exports.AllowIf = exports.Middleware = exports.Delete = exports.Patch = exports.Put = exports.Post = exports.Get = exports.Arg = exports.OnClose = exports.OnOpen = exports.Action = exports.Controller = void 0;
|
|
4
4
|
const Framework_1 = require("../Framework");
|
|
5
5
|
const Metadata_1 = require("./Metadata");
|
|
6
6
|
const Http_1 = require("./Http");
|
|
7
7
|
const Websockets_1 = require("./Websockets");
|
|
8
|
-
const
|
|
8
|
+
const WebsocketRoute_1 = require("./Websockets/WebsocketRoute");
|
|
9
9
|
class ControllerOptions {
|
|
10
10
|
}
|
|
11
11
|
function Controller(path = '', options = new ControllerOptions) {
|
|
@@ -19,52 +19,56 @@ function Controller(path = '', options = new ControllerOptions) {
|
|
|
19
19
|
const route = httpHandler.addRoute(path + (path && routeMetadata.path ? '/' : '') + routeMetadata.path, routeMetadata.method, target, action, prefix + (routeMetadata.name || action), routeMetadata.parametersTypes, metadata.middleware.concat(routeMetadata.middleware));
|
|
20
20
|
route.guards = routeMetadata.guards;
|
|
21
21
|
});
|
|
22
|
-
Object.keys(metadata.
|
|
23
|
-
const
|
|
24
|
-
const name = prefix + (
|
|
25
|
-
const
|
|
26
|
-
|
|
22
|
+
Object.keys(metadata.actions).forEach(actionName => {
|
|
23
|
+
const actionMetadata = metadata.actions[actionName];
|
|
24
|
+
const name = prefix + (actionMetadata.name || actionName);
|
|
25
|
+
const action = websocketHandler.addAction(name, target, actionName, actionMetadata.parametersTypes, metadata.middleware.concat(actionMetadata.middleware));
|
|
26
|
+
action.guards = actionMetadata.guards;
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
exports.Controller = Controller;
|
|
31
|
-
function
|
|
31
|
+
function addAction(controller, methodName, name) {
|
|
32
32
|
const metadata = Metadata_1.ControllerMetadata.get(controller);
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
const methodMetadata = metadata.methods[methodName];
|
|
34
|
+
const action = new Metadata_1.ActionMetadata();
|
|
35
|
+
Object.assign(action, methodMetadata);
|
|
36
|
+
action.parametersTypes = Reflect.getMetadata('design:paramtypes', controller.prototype, methodName);
|
|
37
|
+
action.name = name;
|
|
38
|
+
metadata.actions[methodName] = action;
|
|
37
39
|
Metadata_1.ControllerMetadata.set(metadata, controller);
|
|
38
40
|
}
|
|
39
|
-
function addRoute(controller,
|
|
41
|
+
function addRoute(controller, methodName, method, path, name) {
|
|
40
42
|
const metadata = Metadata_1.ControllerMetadata.get(controller);
|
|
41
|
-
const
|
|
42
|
-
route
|
|
43
|
+
const methodMetadata = metadata.methods[methodName];
|
|
44
|
+
const route = new Metadata_1.RouteMetadata();
|
|
45
|
+
Object.assign(route, methodMetadata);
|
|
46
|
+
route.parametersTypes = Reflect.getMetadata('design:paramtypes', controller.prototype, methodName);
|
|
43
47
|
route.path = path;
|
|
44
48
|
route.name = name;
|
|
45
49
|
route.method = method;
|
|
46
|
-
metadata.routes[
|
|
50
|
+
metadata.routes[methodName] = route;
|
|
47
51
|
Metadata_1.ControllerMetadata.set(metadata, controller);
|
|
48
52
|
}
|
|
49
|
-
function
|
|
53
|
+
function Action(name = '') {
|
|
50
54
|
return (target, action) => {
|
|
51
|
-
|
|
55
|
+
addAction(target.constructor, action, name);
|
|
52
56
|
};
|
|
53
57
|
}
|
|
54
|
-
exports.
|
|
58
|
+
exports.Action = Action;
|
|
55
59
|
function OnOpen(target, action) {
|
|
56
60
|
const websocketHandler = Framework_1.App.get(Websockets_1.Handler);
|
|
57
|
-
websocketHandler.onOpen = new
|
|
61
|
+
websocketHandler.onOpen = new WebsocketRoute_1.WebsocketRoute('', target.constructor, action, Reflect.getMetadata('design:paramtypes', target, action));
|
|
58
62
|
}
|
|
59
63
|
exports.OnOpen = OnOpen;
|
|
60
64
|
function OnClose(target, action) {
|
|
61
65
|
const websocketHandler = Framework_1.App.get(Websockets_1.Handler);
|
|
62
|
-
websocketHandler.onClose = new
|
|
66
|
+
websocketHandler.onClose = new WebsocketRoute_1.WebsocketRoute('', target.constructor, action, Reflect.getMetadata('design:paramtypes', target, action));
|
|
63
67
|
}
|
|
64
68
|
exports.OnClose = OnClose;
|
|
65
69
|
function Arg(name) {
|
|
66
70
|
return function (target, action, parameterIndex) {
|
|
67
|
-
//
|
|
71
|
+
// addAction(target.constructor as Constructor, action, name)
|
|
68
72
|
};
|
|
69
73
|
}
|
|
70
74
|
exports.Arg = Arg;
|
|
@@ -105,9 +109,9 @@ function Middleware(...middleware) {
|
|
|
105
109
|
}
|
|
106
110
|
const metadata = Metadata_1.ControllerMetadata.get(target);
|
|
107
111
|
if (action) {
|
|
108
|
-
const route = metadata.
|
|
112
|
+
const route = metadata.methods[action] || new Metadata_1.MethodMetadata();
|
|
109
113
|
route.middleware = route.middleware.concat(middleware);
|
|
110
|
-
metadata.
|
|
114
|
+
metadata.methods[action] = route;
|
|
111
115
|
}
|
|
112
116
|
else {
|
|
113
117
|
metadata.middleware = metadata.middleware.concat(middleware);
|
|
@@ -123,9 +127,9 @@ function AllowIf(...guards) {
|
|
|
123
127
|
}
|
|
124
128
|
const metadata = Metadata_1.ControllerMetadata.get(target);
|
|
125
129
|
if (action) {
|
|
126
|
-
const route = metadata.
|
|
130
|
+
const route = metadata.methods[action] || new Metadata_1.MethodMetadata();
|
|
127
131
|
route.guards = route.guards.concat(guards);
|
|
128
|
-
metadata.
|
|
132
|
+
metadata.methods[action] = route;
|
|
129
133
|
}
|
|
130
134
|
else {
|
|
131
135
|
metadata.guards = metadata.guards.concat(guards);
|
|
@@ -138,7 +142,7 @@ function Query(name) {
|
|
|
138
142
|
return function (target, action, parameterIndex) {
|
|
139
143
|
const metadata = Metadata_1.ControllerMetadata.get(target.constructor);
|
|
140
144
|
const parametersTypes = Reflect.getMetadata('design:paramtypes', target, action);
|
|
141
|
-
const route = metadata.
|
|
145
|
+
const route = metadata.methods[action] || new Metadata_1.MethodMetadata();
|
|
142
146
|
route.parametersOverrides[parameterIndex] = function (container) {
|
|
143
147
|
const request = container.get(Http_1.Request);
|
|
144
148
|
const value = request.query[name];
|
|
@@ -147,7 +151,7 @@ function Query(name) {
|
|
|
147
151
|
}
|
|
148
152
|
return value;
|
|
149
153
|
};
|
|
150
|
-
metadata.
|
|
154
|
+
metadata.methods[action] = route;
|
|
151
155
|
Metadata_1.ControllerMetadata.set(metadata, target.constructor);
|
|
152
156
|
};
|
|
153
157
|
}
|
|
@@ -155,7 +159,7 @@ exports.Query = Query;
|
|
|
155
159
|
function Body() {
|
|
156
160
|
return function (target, action, parameterIndex) {
|
|
157
161
|
const metadata = Metadata_1.ControllerMetadata.get(target.constructor);
|
|
158
|
-
const route = metadata.
|
|
162
|
+
const route = metadata.methods[action] || new Metadata_1.MethodMetadata();
|
|
159
163
|
route.parametersOverrides[parameterIndex] = function (container) {
|
|
160
164
|
const request = container.get(Http_1.Request);
|
|
161
165
|
if (!request.body) {
|
|
@@ -163,7 +167,7 @@ function Body() {
|
|
|
163
167
|
}
|
|
164
168
|
return request.body;
|
|
165
169
|
};
|
|
166
|
-
metadata.
|
|
170
|
+
metadata.methods[action] = route;
|
|
167
171
|
Metadata_1.ControllerMetadata.set(metadata, target.constructor);
|
|
168
172
|
};
|
|
169
173
|
}
|
package/Router/Decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Decorators.js","sourceRoot":"","sources":["../../Router/Decorators.ts"],"names":[],"mappings":";;;AAAA,4CAA+C;AAG/C,
|
|
1
|
+
{"version":3,"file":"Decorators.js","sourceRoot":"","sources":["../../Router/Decorators.ts"],"names":[],"mappings":"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"}
|
package/Router/Http/Handler.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Container } from '../../Container';
|
|
2
|
-
import { MiddlewareInterface,
|
|
2
|
+
import { MiddlewareInterface, Router } from '../';
|
|
3
3
|
import { ErrorHandlerInterface, Http, Response } from './';
|
|
4
4
|
import { Request } from './Request';
|
|
5
|
+
import { HttpRoute as Route } from './HttpRoute';
|
|
5
6
|
import { Abstract, Constructor, Type } from '@Typetron/Support';
|
|
6
7
|
export declare class Handler {
|
|
7
8
|
router: Router;
|
|
8
9
|
errorHandler: ErrorHandlerInterface;
|
|
9
10
|
cachedRoutes: Record<string, number>;
|
|
10
|
-
addRoute(uri: string, method: Http.Method, controller: Constructor, action: string, name: string, parametersTypes?: (Type<
|
|
11
|
+
addRoute(uri: string, method: Http.Method, controller: Constructor, action: string, name: string, parametersTypes?: (Type<(...args: any[]) => any> | FunctionConstructor)[], middleware?: Abstract<MiddlewareInterface>[]): Route;
|
|
11
12
|
startServer(app: Container): void;
|
|
12
13
|
handle(app: Container, request: Request): Promise<Response>;
|
|
13
14
|
private findRouteIndex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../../Router/Http/Handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../../Router/Http/Handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAsC,MAAM,EAAE,MAAM,KAAK,CAAA;AACrF,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,aAAa,CAAA;AAGhD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAQ/D,qBAAa,OAAO;IAEhB,MAAM,EAAE,MAAM,CAAA;IAGd,YAAY,EAAE,qBAAqB,CAAA;IAEnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAK;IAEzC,QAAQ,CACJ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,UAAU,EAAE,WAAW,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,eAAe,GAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAI,GAAG,CAAC,GAAG,mBAAmB,CAAC,EAAO,EAC5E,UAAU,GAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAO,GACjD,KAAK;IAkBR,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAa3B,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAwCjE,OAAO,CAAC,cAAc;IAsCtB,OAAO,CAAC,UAAU;CASrB"}
|
package/Router/Http/Handler.js
CHANGED
|
@@ -14,6 +14,7 @@ const Container_1 = require("../../Container");
|
|
|
14
14
|
const __1 = require("../");
|
|
15
15
|
const _1 = require("./");
|
|
16
16
|
const Request_1 = require("./Request");
|
|
17
|
+
const HttpRoute_1 = require("./HttpRoute");
|
|
17
18
|
const Framework_1 = require("../../Framework");
|
|
18
19
|
const Servers_1 = require("@Typetron/Router/Servers");
|
|
19
20
|
const httpServers = {
|
|
@@ -26,7 +27,7 @@ class Handler {
|
|
|
26
27
|
}
|
|
27
28
|
addRoute(uri, method, controller, action, name, parametersTypes = [], middleware = []) {
|
|
28
29
|
uri = this.prepareUri(uri);
|
|
29
|
-
const route = new
|
|
30
|
+
const route = new HttpRoute_1.HttpRoute(uri, method, name, controller, action, parametersTypes, middleware);
|
|
30
31
|
if (this.router.routes.find(item => item.uri === uri && item.method === method)) {
|
|
31
32
|
throw new Error(`There is already a route with the same url: [${method}] '${uri}'`);
|
|
32
33
|
}
|
|
@@ -59,7 +60,7 @@ class Handler {
|
|
|
59
60
|
const routeIndex = this.cachedRoutes[`${request.method} ${request.uri}`]
|
|
60
61
|
?? this.findRouteIndex(request.uri ?? '', request.method);
|
|
61
62
|
const route = this.router.routes[routeIndex];
|
|
62
|
-
container.set(
|
|
63
|
+
container.set(HttpRoute_1.HttpRoute, route);
|
|
63
64
|
request.parameters = route.parameters;
|
|
64
65
|
let routeStack = async () => {
|
|
65
66
|
const content = await route.run(container);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../../Router/Http/Handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../../Router/Http/Handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Container } from '../../Container';
|
|
2
|
+
import { Abstract, Constructor, Type } from '../../Support';
|
|
3
|
+
import { MiddlewareInterface } from './../Middleware';
|
|
4
|
+
import { Route } from '@Typetron/Router';
|
|
5
|
+
import { AnyFunction } from '@Typetron/Support';
|
|
6
|
+
export declare class HttpRoute extends Route {
|
|
7
|
+
uri: string;
|
|
8
|
+
method: string;
|
|
9
|
+
name: string;
|
|
10
|
+
controller: Constructor;
|
|
11
|
+
controllerMethod: string;
|
|
12
|
+
parametersTypes: (Type<AnyFunction> | FunctionConstructor)[];
|
|
13
|
+
middleware: Abstract<MiddlewareInterface>[];
|
|
14
|
+
private readonly uriParts;
|
|
15
|
+
constructor(uri: string, method: string, name: string, controller: Constructor, controllerMethod: string, parametersTypes?: (Type<AnyFunction> | FunctionConstructor)[], middleware?: Abstract<MiddlewareInterface>[]);
|
|
16
|
+
run(container: Container): Promise<object | string>;
|
|
17
|
+
matches(uri: string): boolean;
|
|
18
|
+
splitUriParts(): void;
|
|
19
|
+
getUrl(): string;
|
|
20
|
+
private resolveParameters;
|
|
21
|
+
private hasCorrectPrimitiveType;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=HttpRoute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpRoute.d.ts","sourceRoot":"","sources":["../../../Router/Http/HttpRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,qBAAa,SAAU,SAAQ,KAAK;IAKrB,GAAG,EAAE,MAAM;IACX,MAAM,EAAE,MAAM;IACd,IAAI;IACJ,UAAU,EAAE,WAAW;IACvB,gBAAgB,EAAE,MAAM;IACxB,eAAe,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,mBAAmB,CAAC,EAAE;IAC5D,UAAU,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;IATtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmD;gBAGjE,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,QAAK,EACT,UAAU,EAAE,WAAW,EACvB,gBAAgB,EAAE,MAAM,EACxB,eAAe,GAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,mBAAmB,CAAC,EAAO,EACjE,UAAU,GAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAO;IAMrD,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAqBzD,OAAO,CAAC,GAAG,EAAE,MAAM;IAyBnB,aAAa;IAiBb,MAAM,IAAI,MAAM;YASF,iBAAiB;IAuB/B,OAAO,CAAC,uBAAuB;CAIlC"}
|