@tsed/socketio 7.0.0-alpha.2 → 7.0.0-beta.11
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/.mocharc.js +2 -2
- package/.nycrc +1 -0
- package/lib/{SocketIOModule.js → cjs/SocketIOModule.js} +28 -24
- package/lib/cjs/SocketIOModule.js.map +1 -0
- package/lib/{class → cjs/class}/SocketHandlersBuilder.js +18 -15
- package/lib/cjs/class/SocketHandlersBuilder.js.map +1 -0
- package/lib/{class → cjs/class}/SocketProviderMetadata.js +0 -0
- package/lib/cjs/class/SocketProviderMetadata.js.map +1 -0
- package/lib/{constants/index.js → cjs/constants/constants.js} +1 -1
- package/lib/cjs/constants/constants.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/args.js +1 -1
- package/lib/cjs/decorators/args.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/broadcast.js +1 -1
- package/lib/cjs/decorators/broadcast.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/broadcastOthers.js +1 -1
- package/lib/cjs/decorators/broadcastOthers.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/emit.js +1 -1
- package/lib/cjs/decorators/emit.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/input.js +0 -0
- package/lib/cjs/decorators/input.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/inputAndBroadcast.js +2 -2
- package/lib/cjs/decorators/inputAndBroadcast.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/inputAndBroadcastOthers.js +2 -2
- package/lib/cjs/decorators/inputAndBroadcastOthers.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/inputAndEmit.js +2 -2
- package/lib/cjs/decorators/inputAndEmit.js.map +1 -0
- package/lib/cjs/decorators/io.js +13 -0
- package/lib/cjs/decorators/io.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/nsp.js +2 -2
- package/lib/cjs/decorators/nsp.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socket.js +1 -1
- package/lib/cjs/decorators/socket.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketErr.js +1 -1
- package/lib/cjs/decorators/socketErr.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketEventName.js +1 -1
- package/lib/cjs/decorators/socketEventName.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketFilter.js +0 -0
- package/lib/cjs/decorators/socketFilter.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketMiddleware.js +4 -4
- package/lib/cjs/decorators/socketMiddleware.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketMiddlewareError.js +2 -2
- package/lib/cjs/decorators/socketMiddlewareError.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketReturns.js +0 -0
- package/lib/cjs/decorators/socketReturns.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketService.js +2 -2
- package/lib/cjs/decorators/socketService.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketSession.js +1 -1
- package/lib/cjs/decorators/socketSession.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketUseAfter.js +0 -0
- package/lib/cjs/decorators/socketUseAfter.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketUseBefore.js +0 -0
- package/lib/cjs/decorators/socketUseBefore.js.map +1 -0
- package/lib/{index.js → cjs/index.js} +21 -10
- package/lib/cjs/index.js.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/OnNamespaceInit.js +0 -0
- package/lib/cjs/interfaces/OnNamespaceInit.js.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/SocketFilters.js +0 -0
- package/lib/cjs/interfaces/SocketFilters.js.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/SocketHandlerMetadata.js +0 -0
- package/lib/cjs/interfaces/SocketHandlerMetadata.js.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/SocketInjectableNsp.js +0 -0
- package/lib/cjs/interfaces/SocketInjectableNsp.js.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/SocketParamMetadata.js +0 -0
- package/lib/cjs/interfaces/SocketParamMetadata.js.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/SocketProviderTypes.js +0 -0
- package/lib/cjs/interfaces/SocketProviderTypes.js.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/SocketReturnsTypes.js +0 -0
- package/lib/cjs/interfaces/SocketReturnsTypes.js.map +1 -0
- package/lib/cjs/interfaces/interfaces.js +3 -0
- package/lib/cjs/interfaces/interfaces.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/lib/{registries → cjs/registries}/NspSessionRegistry.js +0 -0
- package/lib/cjs/registries/NspSessionRegistry.js.map +1 -0
- package/lib/{services → cjs/services}/SocketIOServer.js +2 -2
- package/lib/cjs/services/SocketIOServer.js.map +1 -0
- package/lib/{services → cjs/services}/SocketIOService.js +1 -1
- package/lib/cjs/services/SocketIOService.js.map +1 -0
- package/lib/esm/SocketIOModule.js +109 -0
- package/lib/esm/SocketIOModule.js.map +1 -0
- package/lib/esm/class/SocketHandlersBuilder.js +207 -0
- package/lib/esm/class/SocketHandlersBuilder.js.map +1 -0
- package/lib/esm/class/SocketProviderMetadata.js +44 -0
- package/lib/esm/class/SocketProviderMetadata.js.map +1 -0
- package/lib/esm/constants/constants.js +2 -0
- package/lib/esm/constants/constants.js.map +1 -0
- package/lib/esm/decorators/args.js +57 -0
- package/lib/esm/decorators/args.js.map +1 -0
- package/lib/esm/decorators/broadcast.js +28 -0
- package/lib/esm/decorators/broadcast.js.map +1 -0
- package/lib/esm/decorators/broadcastOthers.js +28 -0
- package/lib/esm/decorators/broadcastOthers.js.map +1 -0
- package/lib/esm/decorators/emit.js +28 -0
- package/lib/esm/decorators/emit.js.map +1 -0
- package/lib/esm/decorators/input.js +33 -0
- package/lib/esm/decorators/input.js.map +1 -0
- package/lib/esm/decorators/inputAndBroadcast.js +28 -0
- package/lib/esm/decorators/inputAndBroadcast.js.map +1 -0
- package/lib/esm/decorators/inputAndBroadcastOthers.js +28 -0
- package/lib/esm/decorators/inputAndBroadcastOthers.js.map +1 -0
- package/lib/esm/decorators/inputAndEmit.js +28 -0
- package/lib/esm/decorators/inputAndEmit.js.map +1 -0
- package/lib/esm/decorators/io.js +9 -0
- package/lib/esm/decorators/io.js.map +1 -0
- package/lib/esm/decorators/nsp.js +83 -0
- package/lib/esm/decorators/nsp.js.map +1 -0
- package/lib/esm/decorators/socket.js +28 -0
- package/lib/esm/decorators/socket.js.map +1 -0
- package/lib/esm/decorators/socketErr.js +26 -0
- package/lib/esm/decorators/socketErr.js.map +1 -0
- package/lib/esm/decorators/socketEventName.js +26 -0
- package/lib/esm/decorators/socketEventName.js.map +1 -0
- package/lib/esm/decorators/socketFilter.js +25 -0
- package/lib/esm/decorators/socketFilter.js.map +1 -0
- package/lib/esm/decorators/socketMiddleware.js +70 -0
- package/lib/esm/decorators/socketMiddleware.js.map +1 -0
- package/lib/esm/decorators/socketMiddlewareError.js +67 -0
- package/lib/esm/decorators/socketMiddlewareError.js.map +1 -0
- package/lib/esm/decorators/socketReturns.js +23 -0
- package/lib/esm/decorators/socketReturns.js.map +1 -0
- package/lib/esm/decorators/socketService.js +20 -0
- package/lib/esm/decorators/socketService.js.map +1 -0
- package/lib/esm/decorators/socketSession.js +27 -0
- package/lib/esm/decorators/socketSession.js.map +1 -0
- package/lib/esm/decorators/socketUseAfter.js +70 -0
- package/lib/esm/decorators/socketUseAfter.js.map +1 -0
- package/lib/esm/decorators/socketUseBefore.js +74 -0
- package/lib/esm/decorators/socketUseBefore.js.map +1 -0
- package/lib/esm/index.js +40 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/interfaces/OnNamespaceInit.js +2 -0
- package/lib/esm/interfaces/OnNamespaceInit.js.map +1 -0
- package/lib/esm/interfaces/SocketFilters.js +13 -0
- package/lib/esm/interfaces/SocketFilters.js.map +1 -0
- package/lib/esm/interfaces/SocketHandlerMetadata.js +2 -0
- package/lib/esm/interfaces/SocketHandlerMetadata.js.map +1 -0
- package/lib/esm/interfaces/SocketInjectableNsp.js +2 -0
- package/lib/esm/interfaces/SocketInjectableNsp.js.map +1 -0
- package/lib/esm/interfaces/SocketParamMetadata.js +2 -0
- package/lib/esm/interfaces/SocketParamMetadata.js.map +1 -0
- package/lib/esm/interfaces/SocketProviderTypes.js +9 -0
- package/lib/esm/interfaces/SocketProviderTypes.js.map +1 -0
- package/lib/esm/interfaces/SocketReturnsTypes.js +10 -0
- package/lib/esm/interfaces/SocketReturnsTypes.js.map +1 -0
- package/lib/esm/interfaces/interfaces.js +2 -0
- package/lib/esm/interfaces/interfaces.js.map +1 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/registries/NspSessionRegistry.js +12 -0
- package/lib/esm/registries/NspSessionRegistry.js.map +1 -0
- package/lib/esm/services/SocketIOServer.js +12 -0
- package/lib/esm/services/SocketIOServer.js.map +1 -0
- package/lib/esm/services/SocketIOService.js +63 -0
- package/lib/esm/services/SocketIOService.js.map +1 -0
- package/lib/types/SocketIOModule.d.ts +28 -0
- package/lib/{class → types/class}/SocketHandlersBuilder.d.ts +2 -2
- package/lib/{class → types/class}/SocketProviderMetadata.d.ts +2 -1
- package/lib/{constants/index.d.ts → types/constants/constants.d.ts} +0 -0
- package/lib/{decorators → types/decorators}/args.d.ts +0 -0
- package/lib/{decorators → types/decorators}/broadcast.d.ts +0 -0
- package/lib/{decorators → types/decorators}/broadcastOthers.d.ts +0 -0
- package/lib/{decorators → types/decorators}/emit.d.ts +0 -0
- package/lib/{decorators → types/decorators}/input.d.ts +0 -0
- package/lib/{decorators → types/decorators}/inputAndBroadcast.d.ts +0 -0
- package/lib/{decorators → types/decorators}/inputAndBroadcastOthers.d.ts +0 -0
- package/lib/{decorators → types/decorators}/inputAndEmit.d.ts +0 -0
- package/lib/{decorators → types/decorators}/io.d.ts +1 -0
- package/lib/{decorators → types/decorators}/nsp.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socket.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socketErr.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socketEventName.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socketFilter.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socketMiddleware.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socketMiddlewareError.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socketReturns.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socketService.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socketSession.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socketUseAfter.d.ts +0 -0
- package/lib/{decorators → types/decorators}/socketUseBefore.d.ts +0 -0
- package/lib/{index.d.ts → types/index.d.ts} +21 -7
- package/lib/{interfaces → types/interfaces}/OnNamespaceInit.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/SocketFilters.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/SocketHandlerMetadata.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/SocketInjectableNsp.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/SocketParamMetadata.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/SocketProviderTypes.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/SocketReturnsTypes.d.ts +0 -0
- package/lib/types/interfaces/interfaces.d.ts +8 -0
- package/lib/{registries → types/registries}/NspSessionRegistry.d.ts +0 -0
- package/lib/{services → types/services}/SocketIOServer.d.ts +0 -0
- package/lib/{services → types/services}/SocketIOService.d.ts +0 -0
- package/package.json +46 -26
- package/readme.md +80 -96
- package/tsconfig.compile.esm.json +12 -0
- package/lib/SocketIOModule.d.ts +0 -29
- package/lib/SocketIOModule.js.map +0 -1
- package/lib/class/SocketHandlersBuilder.js.map +0 -1
- package/lib/class/SocketProviderMetadata.js.map +0 -1
- package/lib/constants/index.js.map +0 -1
- package/lib/decorators/args.js.map +0 -1
- package/lib/decorators/broadcast.js.map +0 -1
- package/lib/decorators/broadcastOthers.js.map +0 -1
- package/lib/decorators/emit.js.map +0 -1
- package/lib/decorators/input.js.map +0 -1
- package/lib/decorators/inputAndBroadcast.js.map +0 -1
- package/lib/decorators/inputAndBroadcastOthers.js.map +0 -1
- package/lib/decorators/inputAndEmit.js.map +0 -1
- package/lib/decorators/io.js +0 -27
- package/lib/decorators/io.js.map +0 -1
- package/lib/decorators/nsp.js.map +0 -1
- package/lib/decorators/socket.js.map +0 -1
- package/lib/decorators/socketErr.js.map +0 -1
- package/lib/decorators/socketEventName.js.map +0 -1
- package/lib/decorators/socketFilter.js.map +0 -1
- package/lib/decorators/socketMiddleware.js.map +0 -1
- package/lib/decorators/socketMiddlewareError.js.map +0 -1
- package/lib/decorators/socketReturns.js.map +0 -1
- package/lib/decorators/socketService.js.map +0 -1
- package/lib/decorators/socketSession.js.map +0 -1
- package/lib/decorators/socketUseAfter.js.map +0 -1
- package/lib/decorators/socketUseBefore.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/interfaces/OnNamespaceInit.js.map +0 -1
- package/lib/interfaces/SocketFilters.js.map +0 -1
- package/lib/interfaces/SocketHandlerMetadata.js.map +0 -1
- package/lib/interfaces/SocketInjectableNsp.js.map +0 -1
- package/lib/interfaces/SocketParamMetadata.js.map +0 -1
- package/lib/interfaces/SocketProviderTypes.js.map +0 -1
- package/lib/interfaces/SocketReturnsTypes.js.map +0 -1
- package/lib/interfaces/index.d.ts +0 -15
- package/lib/interfaces/index.js +0 -11
- package/lib/interfaces/index.js.map +0 -1
- package/lib/registries/NspSessionRegistry.js.map +0 -1
- package/lib/services/SocketIOServer.js.map +0 -1
- package/lib/services/SocketIOService.js.map +0 -1
package/.mocharc.js
CHANGED
package/.nycrc
CHANGED
|
@@ -6,25 +6,21 @@ const common_1 = require("@tsed/common");
|
|
|
6
6
|
const core_1 = require("@tsed/core");
|
|
7
7
|
const socket_io_1 = require("socket.io");
|
|
8
8
|
const SocketProviderMetadata_1 = require("./class/SocketProviderMetadata"); // tslint:disable-line: no-unused-variable
|
|
9
|
-
const constants_1 = require("./constants");
|
|
9
|
+
const constants_1 = require("./constants/constants");
|
|
10
10
|
const io_1 = require("./decorators/io");
|
|
11
11
|
const SocketIOService_1 = require("./services/SocketIOService");
|
|
12
|
+
const http_1 = tslib_1.__importDefault(require("http"));
|
|
13
|
+
const https_1 = tslib_1.__importDefault(require("https"));
|
|
14
|
+
const di_1 = require("@tsed/di");
|
|
12
15
|
/**
|
|
13
16
|
* @ignore
|
|
14
17
|
*/
|
|
15
18
|
let SocketIOModule = class SocketIOModule {
|
|
16
|
-
constructor(injector, httpServer, httpsServer, io, socketIOService) {
|
|
17
|
-
this.injector = injector;
|
|
18
|
-
this.httpServer = httpServer;
|
|
19
|
-
this.httpsServer = httpsServer;
|
|
20
|
-
this.io = io;
|
|
21
|
-
this.socketIOService = socketIOService;
|
|
22
|
-
}
|
|
23
19
|
$afterListen() {
|
|
24
|
-
if (this.
|
|
20
|
+
if (this.httpServer) {
|
|
25
21
|
this.io.attach(this.httpServer, { ...this.settings });
|
|
26
22
|
}
|
|
27
|
-
if (this.
|
|
23
|
+
if (this.httpsServer) {
|
|
28
24
|
this.io.attach(this.httpsServer, { ...this.settings });
|
|
29
25
|
}
|
|
30
26
|
if (this.settings.adapter) {
|
|
@@ -37,7 +33,8 @@ let SocketIOModule = class SocketIOModule {
|
|
|
37
33
|
return this.injector.emit("$afterSocketListen");
|
|
38
34
|
}
|
|
39
35
|
$onDestroy() {
|
|
40
|
-
|
|
36
|
+
var _a, _b;
|
|
37
|
+
return ((_a = this.io) === null || _a === void 0 ? void 0 : _a.close) && ((_b = this.io) === null || _b === void 0 ? void 0 : _b.engine) && new Promise((resolve) => this.io.close(() => resolve(undefined)));
|
|
41
38
|
}
|
|
42
39
|
/**
|
|
43
40
|
*
|
|
@@ -59,7 +56,7 @@ let SocketIOModule = class SocketIOModule {
|
|
|
59
56
|
inputEvent: handler.eventName,
|
|
60
57
|
outputEvent: (handler.returns && handler.returns.eventName) || "",
|
|
61
58
|
outputType: (handler.returns && handler.returns.type) || "",
|
|
62
|
-
name: `${core_1.nameOf(provider.useClass)}.${handler.methodClassName}`
|
|
59
|
+
name: `${(0, core_1.nameOf)(provider.useClass)}.${handler.methodClassName}`
|
|
63
60
|
});
|
|
64
61
|
});
|
|
65
62
|
}
|
|
@@ -81,28 +78,35 @@ let SocketIOModule = class SocketIOModule {
|
|
|
81
78
|
}
|
|
82
79
|
};
|
|
83
80
|
tslib_1.__decorate([
|
|
84
|
-
common_1.Constant("logger.disableRoutesSummary", false),
|
|
81
|
+
(0, common_1.Constant)("logger.disableRoutesSummary", false),
|
|
85
82
|
tslib_1.__metadata("design:type", Boolean)
|
|
86
83
|
], SocketIOModule.prototype, "disableRoutesSummary", void 0);
|
|
87
84
|
tslib_1.__decorate([
|
|
88
|
-
common_1.Constant("socketIO", {}),
|
|
85
|
+
(0, common_1.Constant)("socketIO", {}),
|
|
89
86
|
tslib_1.__metadata("design:type", Object)
|
|
90
87
|
], SocketIOModule.prototype, "settings", void 0);
|
|
91
88
|
tslib_1.__decorate([
|
|
92
|
-
|
|
89
|
+
(0, di_1.Inject)(),
|
|
90
|
+
tslib_1.__metadata("design:type", common_1.InjectorService)
|
|
91
|
+
], SocketIOModule.prototype, "injector", void 0);
|
|
92
|
+
tslib_1.__decorate([
|
|
93
|
+
(0, di_1.Inject)(http_1.default.Server),
|
|
93
94
|
tslib_1.__metadata("design:type", Object)
|
|
94
|
-
], SocketIOModule.prototype, "
|
|
95
|
+
], SocketIOModule.prototype, "httpServer", void 0);
|
|
95
96
|
tslib_1.__decorate([
|
|
96
|
-
|
|
97
|
+
(0, di_1.Inject)(https_1.default.Server),
|
|
97
98
|
tslib_1.__metadata("design:type", Object)
|
|
98
|
-
], SocketIOModule.prototype, "
|
|
99
|
+
], SocketIOModule.prototype, "httpsServer", void 0);
|
|
100
|
+
tslib_1.__decorate([
|
|
101
|
+
(0, io_1.IO)(),
|
|
102
|
+
tslib_1.__metadata("design:type", socket_io_1.Server)
|
|
103
|
+
], SocketIOModule.prototype, "io", void 0);
|
|
104
|
+
tslib_1.__decorate([
|
|
105
|
+
(0, di_1.Inject)(),
|
|
106
|
+
tslib_1.__metadata("design:type", SocketIOService_1.SocketIOService)
|
|
107
|
+
], SocketIOModule.prototype, "socketIOService", void 0);
|
|
99
108
|
SocketIOModule = tslib_1.__decorate([
|
|
100
|
-
common_1.Module()
|
|
101
|
-
tslib_1.__param(1, common_1.Inject(common_1.HttpServer)),
|
|
102
|
-
tslib_1.__param(2, common_1.Inject(common_1.HttpsServer)),
|
|
103
|
-
tslib_1.__param(3, io_1.IO),
|
|
104
|
-
tslib_1.__metadata("design:paramtypes", [common_1.InjectorService, Object, Object, socket_io_1.Server,
|
|
105
|
-
SocketIOService_1.SocketIOService])
|
|
109
|
+
(0, common_1.Module)()
|
|
106
110
|
], SocketIOModule);
|
|
107
111
|
exports.SocketIOModule = SocketIOModule;
|
|
108
112
|
//# sourceMappingURL=SocketIOModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketIOModule.js","sourceRoot":"","sources":["../../src/SocketIOModule.ts"],"names":[],"mappings":"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","sourcesContent":["import {$log, AfterListen, Constant, InjectorService, Module, OnDestroy, Provider} from \"@tsed/common\";\nimport {nameOf} from \"@tsed/core\";\nimport {Server, ServerOptions} from \"socket.io\";\nimport {SocketProviderMetadata} from \"./class/SocketProviderMetadata\"; // tslint:disable-line: no-unused-variable\nimport {PROVIDER_TYPE_SOCKET_SERVICE} from \"./constants/constants\";\nimport {IO} from \"./decorators/io\";\nimport {SocketIOService} from \"./services/SocketIOService\";\nimport Http from \"http\";\nimport Https from \"https\";\nimport {Inject} from \"@tsed/di\";\n\n/**\n * @ignore\n */\n@Module()\nexport class SocketIOModule implements AfterListen, OnDestroy {\n @Constant(\"logger.disableRoutesSummary\", false)\n protected disableRoutesSummary: boolean;\n\n @Constant(\"socketIO\", {})\n protected settings: Partial<ServerOptions>;\n\n @Inject()\n protected injector: InjectorService;\n\n @Inject(Http.Server)\n protected httpServer: Http.Server | null;\n\n @Inject(Https.Server)\n protected httpsServer: Https.Server | null;\n\n @IO()\n private io: Server;\n\n @Inject()\n private socketIOService: SocketIOService;\n\n $afterListen() {\n if (this.httpServer) {\n this.io.attach(this.httpServer, {...this.settings});\n }\n\n if (this.httpsServer) {\n this.io.attach(this.httpsServer, {...this.settings});\n }\n\n if (this.settings.adapter) {\n this.io.adapter(this.settings.adapter);\n }\n\n this.getWebsocketServices().forEach((provider) => this.socketIOService.addSocketProvider(provider));\n\n if (!this.disableRoutesSummary) {\n this.printSocketEvents();\n }\n\n return this.injector.emit(\"$afterSocketListen\");\n }\n\n $onDestroy() {\n return this.io?.close && this.io?.engine && new Promise((resolve) => this.io.close(() => resolve(undefined)));\n }\n\n /**\n *\n * @returns {Provider<any>[]}\n */\n protected getWebsocketServices(): Provider<any>[] {\n return Array.from(this.injector.getProviders(PROVIDER_TYPE_SOCKET_SERVICE));\n }\n\n /**\n *\n */\n protected printSocketEvents() {\n const list = this.getWebsocketServices().reduce((acc: any[], provider) => {\n const socketProvider = new SocketProviderMetadata(provider.store.get(\"socketIO\"));\n\n if (socketProvider.namespace) {\n socketProvider.getHandlers().forEach((handler) => {\n acc.push({\n namespace: socketProvider.namespace,\n inputEvent: handler.eventName,\n outputEvent: (handler.returns && handler.returns.eventName) || \"\",\n outputType: (handler.returns && handler.returns.type) || \"\",\n name: `${nameOf(provider.useClass)}.${handler.methodClassName}`\n });\n });\n }\n\n return acc;\n }, []);\n\n this.injector.logger.info(\"Socket events mounted:\");\n\n const str = $log.drawTable(list, {\n padding: 1,\n header: {\n namespace: \"Namespace\",\n inputEvent: \"Input event\",\n outputEvent: \"Output event\",\n outputType: \"Output type\",\n name: \"Class method\"\n }\n });\n\n this.injector.logger.info(\"\\n\" + str.trim());\n\n this.injector.logger.info(\"Socket server started...\");\n }\n}\n"]}
|
|
@@ -47,12 +47,12 @@ class SocketHandlersBuilder {
|
|
|
47
47
|
* @returns {any}
|
|
48
48
|
*/
|
|
49
49
|
build(nsps) {
|
|
50
|
-
const
|
|
50
|
+
const instance = this.injector.get(this.provider.token);
|
|
51
51
|
const { injectNamespaces, namespace } = this.socketProviderMetadata;
|
|
52
52
|
const nsp = nsps.get(namespace);
|
|
53
53
|
instance.$onConnection && this.socketProviderMetadata.createHook("$onConnection", "connection");
|
|
54
54
|
instance.$onDisconnect && this.socketProviderMetadata.createHook("$onDisconnect", "disconnect");
|
|
55
|
-
instance._nspSession = NspSessionRegistry_1.getNspSession(namespace);
|
|
55
|
+
instance._nspSession = (0, NspSessionRegistry_1.getNspSession)(namespace);
|
|
56
56
|
injectNamespaces.forEach((setting) => {
|
|
57
57
|
instance[setting.propertyKey] = nsps.get(setting.nsp || namespace);
|
|
58
58
|
});
|
|
@@ -69,7 +69,7 @@ class SocketHandlersBuilder {
|
|
|
69
69
|
*/
|
|
70
70
|
onConnection(socket, nsp) {
|
|
71
71
|
const { socketProviderMetadata } = this;
|
|
72
|
-
const
|
|
72
|
+
const instance = this.injector.get(this.provider.token);
|
|
73
73
|
this.buildHandlers(socket, nsp);
|
|
74
74
|
this.createSession(socket);
|
|
75
75
|
if (instance.$onConnection) {
|
|
@@ -77,7 +77,7 @@ class SocketHandlersBuilder {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
onDisconnect(socket, nsp) {
|
|
80
|
-
const
|
|
80
|
+
const instance = this.injector.get(this.provider.token);
|
|
81
81
|
const { socketProviderMetadata } = this;
|
|
82
82
|
if (instance.$onDisconnect) {
|
|
83
83
|
this.invoke(instance, socketProviderMetadata.$onDisconnect, { socket, nsp });
|
|
@@ -89,14 +89,16 @@ class SocketHandlersBuilder {
|
|
|
89
89
|
* @param {Socket} socket
|
|
90
90
|
*/
|
|
91
91
|
createSession(socket) {
|
|
92
|
-
this.
|
|
92
|
+
const instance = this.injector.get(this.provider.token);
|
|
93
|
+
instance._nspSession.set(socket.id, new Map());
|
|
93
94
|
}
|
|
94
95
|
/**
|
|
95
96
|
*
|
|
96
97
|
* @param {Socket} socket
|
|
97
98
|
*/
|
|
98
99
|
destroySession(socket) {
|
|
99
|
-
this.
|
|
100
|
+
const instance = this.injector.get(this.provider.token);
|
|
101
|
+
instance._nspSession.delete(socket.id);
|
|
100
102
|
}
|
|
101
103
|
buildHandlers(socket, nsp) {
|
|
102
104
|
const { socketProviderMetadata } = this;
|
|
@@ -111,6 +113,7 @@ class SocketHandlersBuilder {
|
|
|
111
113
|
}
|
|
112
114
|
async runQueue(handlerMetadata, args, socket, nsp) {
|
|
113
115
|
let promise = Promise.resolve(args);
|
|
116
|
+
const instance = this.injector.get(this.provider.token);
|
|
114
117
|
const { useBefore, useAfter } = this.socketProviderMetadata;
|
|
115
118
|
const scope = {
|
|
116
119
|
args,
|
|
@@ -126,7 +129,7 @@ class SocketHandlersBuilder {
|
|
|
126
129
|
handlerMetadata.useBefore.forEach((target) => (promise = this.bindMiddleware(target, scope, promise)));
|
|
127
130
|
}
|
|
128
131
|
promise = promise
|
|
129
|
-
.then(() => this.invoke(
|
|
132
|
+
.then(() => this.invoke(instance, handlerMetadata, scope))
|
|
130
133
|
.then(SocketHandlersBuilder.bindResponseMiddleware(handlerMetadata, scope));
|
|
131
134
|
if (handlerMetadata.useAfter) {
|
|
132
135
|
handlerMetadata.useAfter.forEach((target) => (promise = this.bindMiddleware(target, scope, promise)));
|
|
@@ -147,20 +150,19 @@ class SocketHandlersBuilder {
|
|
|
147
150
|
const { filter, useConverter, mapIndex, type, collectionType } = parameters[index];
|
|
148
151
|
let value = scope.args[mapIndex];
|
|
149
152
|
if (filter === SocketFilters_1.SocketFilters.ARGS && useConverter) {
|
|
150
|
-
value = json_mapper_1.deserialize(value, {
|
|
151
|
-
type,
|
|
152
|
-
collectionType,
|
|
153
|
+
value = (0, json_mapper_1.deserialize)(value, {
|
|
153
154
|
useAlias: true,
|
|
154
|
-
additionalProperties: this.injector.settings.additionalProperties
|
|
155
|
+
additionalProperties: this.injector.settings.get("converter.additionalProperties") === "accept",
|
|
156
|
+
type,
|
|
157
|
+
collectionType
|
|
155
158
|
});
|
|
156
159
|
scope.args[mapIndex] = value;
|
|
157
160
|
}
|
|
158
161
|
});
|
|
159
162
|
}
|
|
160
163
|
bindMiddleware(target, scope, promise) {
|
|
161
|
-
const
|
|
162
|
-
if (
|
|
163
|
-
const instance = provider.instance;
|
|
164
|
+
const instance = this.injector.get(target);
|
|
165
|
+
if (instance) {
|
|
164
166
|
const handlerMetadata = new SocketProviderMetadata_1.SocketProviderMetadata(core_1.Store.from(instance).get("socketIO"));
|
|
165
167
|
if (handlerMetadata.type === SocketProviderTypes_1.SocketProviderTypes.MIDDLEWARE) {
|
|
166
168
|
if (handlerMetadata.error) {
|
|
@@ -199,7 +201,8 @@ class SocketHandlersBuilder {
|
|
|
199
201
|
case SocketFilters_1.SocketFilters.ERR:
|
|
200
202
|
return scope.error;
|
|
201
203
|
case SocketFilters_1.SocketFilters.SESSION:
|
|
202
|
-
|
|
204
|
+
const instance = this.injector.get(this.provider.token);
|
|
205
|
+
return instance._nspSession.get(scope.socket.id);
|
|
203
206
|
}
|
|
204
207
|
});
|
|
205
208
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketHandlersBuilder.js","sourceRoot":"","sources":["../../../src/class/SocketHandlersBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import {InjectorService, Provider} from \"@tsed/di\";\nimport {Store} from \"@tsed/core\";\nimport {$log} from \"@tsed/logger\";\nimport {deserialize} from \"@tsed/json-mapper\";\nimport {Namespace, Socket} from \"socket.io\";\nimport {SocketFilters} from \"../interfaces/SocketFilters\";\nimport {SocketHandlerMetadata} from \"../interfaces/SocketHandlerMetadata\";\nimport {SocketInjectableNsp} from \"../interfaces/SocketInjectableNsp\";\nimport {SocketParamMetadata} from \"../interfaces/SocketParamMetadata\";\nimport {SocketProviderTypes} from \"../interfaces/SocketProviderTypes\";\nimport {SocketReturnsTypes} from \"../interfaces/SocketReturnsTypes\";\nimport {getNspSession} from \"../registries/NspSessionRegistry\";\nimport {SocketProviderMetadata} from \"./SocketProviderMetadata\";\n\n/**\n * @ignore\n */\nexport class SocketHandlersBuilder {\n private socketProviderMetadata: SocketProviderMetadata;\n\n constructor(private provider: Provider, private injector: InjectorService) {\n this.socketProviderMetadata = new SocketProviderMetadata(this.provider.store.get(\"socketIO\"));\n }\n\n /**\n *\n * @param {SocketHandlerMetadata} handlerMetadata\n * @param scope\n * @returns {(data) => void}\n */\n private static bindResponseMiddleware(handlerMetadata: SocketHandlerMetadata, scope: any) {\n const {returns} = handlerMetadata;\n\n return (response: any): void => {\n if (returns) {\n switch (returns.type) {\n case SocketReturnsTypes.BROADCAST:\n scope.nsp.emit(returns.eventName, response);\n break;\n case SocketReturnsTypes.BROADCAST_OTHERS:\n scope.socket.broadcast.emit(returns.eventName, response);\n break;\n case SocketReturnsTypes.EMIT:\n scope.socket.emit(returns.eventName, response);\n break;\n }\n }\n };\n }\n\n /**\n *\n * @returns {any}\n */\n public build(nsps: Map<string, Namespace>) {\n const instance = this.injector.get(this.provider.token);\n const {injectNamespaces, namespace} = this.socketProviderMetadata;\n const nsp = nsps.get(namespace);\n\n instance.$onConnection && this.socketProviderMetadata.createHook(\"$onConnection\", \"connection\");\n instance.$onDisconnect && this.socketProviderMetadata.createHook(\"$onDisconnect\", \"disconnect\");\n\n instance._nspSession = getNspSession(namespace);\n\n injectNamespaces.forEach((setting: SocketInjectableNsp) => {\n instance[setting.propertyKey] = nsps.get(setting.nsp || namespace);\n });\n\n instance[\"nsp\"] = nsp;\n\n if (instance.$onNamespaceInit) {\n instance.$onNamespaceInit(nsp);\n }\n\n return this;\n }\n\n /**\n *\n * @param {Socket} socket\n * @param {Namespace} nsp\n */\n public onConnection(socket: Socket, nsp: Namespace) {\n const {socketProviderMetadata} = this;\n const instance = this.injector.get(this.provider.token);\n\n this.buildHandlers(socket, nsp);\n this.createSession(socket);\n\n if (instance.$onConnection) {\n this.invoke(instance, socketProviderMetadata.$onConnection, {socket, nsp});\n }\n }\n\n public onDisconnect(socket: Socket, nsp: Namespace) {\n const instance = this.injector.get(this.provider.token);\n const {socketProviderMetadata} = this;\n\n if (instance.$onDisconnect) {\n this.invoke(instance, socketProviderMetadata.$onDisconnect, {socket, nsp});\n }\n\n this.destroySession(socket);\n }\n\n /**\n *\n * @param {Socket} socket\n */\n private createSession(socket: Socket) {\n const instance = this.injector.get(this.provider.token);\n instance._nspSession.set(socket.id, new Map());\n }\n\n /**\n *\n * @param {Socket} socket\n */\n private destroySession(socket: Socket) {\n const instance = this.injector.get(this.provider.token);\n instance._nspSession.delete(socket.id);\n }\n\n private buildHandlers(socket: Socket, nsp: Namespace) {\n const {socketProviderMetadata} = this;\n\n socketProviderMetadata.getHandlers().forEach((handler) => {\n const {eventName} = handler;\n\n if (eventName) {\n socket.on(eventName, (...args) => {\n this.runQueue(handler, args, socket, nsp);\n });\n }\n });\n }\n\n private async runQueue(handlerMetadata: SocketHandlerMetadata, args: any[], socket: Socket, nsp: Namespace) {\n let promise: any = Promise.resolve(args);\n const instance = this.injector.get(this.provider.token);\n const {useBefore, useAfter} = this.socketProviderMetadata;\n const scope = {\n args,\n socket,\n nsp,\n eventName: handlerMetadata.eventName\n };\n\n promise = promise.then(() => this.deserialize(handlerMetadata, scope));\n\n if (useBefore) {\n useBefore.forEach((target: any) => (promise = this.bindMiddleware(target, scope, promise)));\n }\n\n if (handlerMetadata.useBefore) {\n handlerMetadata.useBefore.forEach((target) => (promise = this.bindMiddleware(target, scope, promise)));\n }\n\n promise = promise\n .then(() => this.invoke(instance, handlerMetadata, scope))\n .then(SocketHandlersBuilder.bindResponseMiddleware(handlerMetadata, scope));\n\n if (handlerMetadata.useAfter) {\n handlerMetadata.useAfter.forEach((target) => (promise = this.bindMiddleware(target, scope, promise)));\n }\n\n if (useAfter) {\n useAfter.forEach((target: any) => (promise = this.bindMiddleware(target, scope, promise)));\n }\n\n return promise.catch((er: any) => {\n /* istanbul ignore next */\n $log.error(handlerMetadata.eventName, er);\n /* istanbul ignore next */\n process.exit(-1);\n });\n }\n\n private deserialize(handlerMetadata: SocketHandlerMetadata, scope: any) {\n const {parameters} = handlerMetadata;\n Object.keys(parameters || []).forEach((index: any) => {\n const {filter, useConverter, mapIndex, type, collectionType} = parameters![index];\n let value = scope.args[mapIndex!];\n\n if (filter === SocketFilters.ARGS && useConverter) {\n value = deserialize(value, {\n useAlias: true,\n additionalProperties: this.injector.settings.get(\"converter.additionalProperties\") === \"accept\",\n type,\n collectionType\n });\n scope.args[mapIndex!] = value;\n }\n });\n }\n\n private bindMiddleware(target: any, scope: any, promise: Promise<any>): Promise<any> {\n const instance = this.injector.get(target);\n\n if (instance) {\n const handlerMetadata: SocketProviderMetadata = new SocketProviderMetadata(Store.from(instance).get(\"socketIO\"));\n\n if (handlerMetadata.type === SocketProviderTypes.MIDDLEWARE) {\n if (handlerMetadata.error) {\n return promise.catch((error: any) => this.invoke(instance, handlerMetadata.useHandler, {error, ...scope}));\n }\n\n return promise\n .then(() => this.invoke(instance, handlerMetadata.useHandler, scope))\n .then((result: any) => {\n if (result) {\n scope.args = [].concat(result);\n }\n });\n }\n }\n\n return promise;\n }\n\n private async invoke(instance: any, handlerMetadata: SocketHandlerMetadata, scope: any): Promise<any> {\n const {methodClassName, parameters} = handlerMetadata;\n\n return await instance[methodClassName](...this.buildParameters(parameters!, scope));\n }\n\n private buildParameters(parameters: {[key: number]: SocketParamMetadata}, scope: any): any[] {\n return Object.keys(parameters || []).map((index: any) => {\n const param: SocketParamMetadata = parameters[index];\n\n switch (param.filter) {\n case SocketFilters.ARGS:\n if (param.mapIndex !== undefined) {\n return scope.args[param.mapIndex];\n }\n\n return scope.args;\n\n case SocketFilters.EVENT_NAME:\n return scope.eventName;\n\n case SocketFilters.SOCKET:\n return scope.socket;\n\n case SocketFilters.NSP:\n return scope.nsp;\n\n case SocketFilters.ERR:\n return scope.error;\n\n case SocketFilters.SESSION:\n const instance = this.injector.get(this.provider.token);\n return instance._nspSession.get(scope.socket.id);\n }\n });\n }\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketProviderMetadata.js","sourceRoot":"","sources":["../../../src/class/SocketProviderMetadata.ts"],"names":[],"mappings":";;;AAIA,MAAa,sBAAsB;IASjC,YAAY,UAA2C,EAAE;QANlD,UAAK,GAAY,KAAK,CAAC;QACvB,qBAAgB,GAA0B,EAAE,CAAC;QAC7C,cAAS,GAAU,EAAE,CAAC;QACtB,aAAQ,GAAU,EAAE,CAAC;QACrB,aAAQ,GAA0C,EAAE,CAAC;QAG1D,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/E,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,QAA+B;QAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;IAChC,CAAC;IAED,WAAW;QACT,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;aACzE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,SAAiB;QACxC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,SAAS;YACT,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;CACF;AApDD,wDAoDC","sourcesContent":["import {SocketHandlerMetadata} from \"../interfaces/SocketHandlerMetadata\";\nimport {SocketInjectableNsp} from \"../interfaces/SocketInjectableNsp\";\nimport {SocketProviderTypes} from \"../interfaces/SocketProviderTypes\";\n\nexport class SocketProviderMetadata {\n public type: SocketProviderTypes;\n public namespace: string;\n public error: boolean = false;\n public injectNamespaces: SocketInjectableNsp[] = [];\n public useBefore: any[] = [];\n public useAfter: any[] = [];\n public handlers: Record<string, SocketHandlerMetadata> = {};\n\n constructor(options: Partial<SocketProviderMetadata> = {}) {\n options.type && (this.type = options.type);\n options.namespace && (this.namespace = options.namespace);\n options.error && (this.error = options.error);\n options.injectNamespaces && (this.injectNamespaces = options.injectNamespaces);\n options.useBefore && (this.useBefore = options.useBefore);\n options.useAfter && (this.useAfter = options.useAfter);\n options.handlers && (this.handlers = options.handlers);\n }\n\n get useHandler() {\n return this.get(\"use\");\n }\n\n get $onConnection() {\n return this.get(\"$onConnection\");\n }\n\n get $onDisconnect() {\n return this.get(\"$onDisconnect\");\n }\n\n get(key: string): SocketHandlerMetadata {\n return this.handlers[key];\n }\n\n set(key: string, metadata: SocketHandlerMetadata): void {\n this.handlers[key] = metadata;\n }\n\n getHandlers() {\n return Object.entries(this.handlers)\n .filter(([key]) => [\"$onConnection\", \"$onDisconnect\"].indexOf(key) === -1)\n .map(([, handler]) => handler);\n }\n\n createHook(hook: string, eventName: string): void {\n this.set(hook, {\n ...(this.get(hook) || {}),\n eventName,\n methodClassName: hook\n });\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,4BAA4B,GAAG,eAAe,CAAC","sourcesContent":["export const PROVIDER_TYPE_SOCKET_SERVICE = \"socketService\";\n"]}
|
|
@@ -43,7 +43,7 @@ function Args(mapIndex, useType) {
|
|
|
43
43
|
mapIndex,
|
|
44
44
|
useConverter: true,
|
|
45
45
|
type: useType || type,
|
|
46
|
-
collectionType: core_1.isCollection(type) ? type : undefined
|
|
46
|
+
collectionType: (0, core_1.isCollection)(type) ? type : undefined
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
store.merge("socketIO", {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/decorators/args.ts"],"names":[],"mappings":";;;AAAA,qCAAyD;AACzD,+DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,IAAI,CAAC,QAAiB,EAAE,OAAa;IACnD,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,KAAa,EAAE,EAAE;QACzD,MAAM,KAAK,GAAG,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,eAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG;YACZ,MAAM,EAAE,6BAAa,CAAC,IAAI;YAC1B,YAAY,EAAE,KAAK;SACpB,CAAC;QAEF,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBACnB,QAAQ;gBACR,YAAY,EAAE,IAAI;gBAClB,IAAI,EAAE,OAAO,IAAI,IAAI;gBACrB,cAAc,EAAE,IAAA,mBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aACtD,CAAC,CAAC;SACJ;QAED,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;YACtB,QAAQ,EAAE;gBACR,CAAC,WAAW,CAAC,EAAE;oBACb,UAAU,EAAE;wBACV,CAAC,KAAK,CAAC,EAAE,KAAK;qBACf;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AA5BD,oBA4BC","sourcesContent":["import {isCollection, Metadata, Store} from \"@tsed/core\";\nimport {SocketFilters} from \"../interfaces/SocketFilters\";\n\n/**\n * Inject the list of arguments in the decorated parameter.\n *\n * `@Args` accept an index parameter to pick up directly the item in the arguments list.\n *\n * ### Example\n *\n * ```typescript\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @Input(\"event\")\n * myMethod(@Args() arguments: any[]) {\n *\n * }\n *\n * @Input(\"event2\")\n * myMethod2(@Args(0) data: any) {\n *\n * }\n * }\n * ```\n *\n * @decorator\n * @param mapIndex\n * @param useType\n */\nexport function Args(mapIndex?: number, useType?: any): any {\n return (target: any, propertyKey: string, index: number) => {\n const store = Store.from(target);\n const type = Metadata.getParamTypes(target, propertyKey)[index];\n const param = {\n filter: SocketFilters.ARGS,\n useConverter: false\n };\n\n if (mapIndex !== undefined) {\n Object.assign(param, {\n mapIndex,\n useConverter: true,\n type: useType || type,\n collectionType: isCollection(type) ? type : undefined\n });\n }\n\n store.merge(\"socketIO\", {\n handlers: {\n [propertyKey]: {\n parameters: {\n [index]: param\n }\n }\n }\n });\n };\n}\n"]}
|
|
@@ -26,7 +26,7 @@ const socketReturns_1 = require("./socketReturns");
|
|
|
26
26
|
* @param eventName
|
|
27
27
|
*/
|
|
28
28
|
function Broadcast(eventName) {
|
|
29
|
-
return socketReturns_1.SocketReturns(eventName, SocketReturnsTypes_1.SocketReturnsTypes.BROADCAST);
|
|
29
|
+
return (0, socketReturns_1.SocketReturns)(eventName, SocketReturnsTypes_1.SocketReturnsTypes.BROADCAST);
|
|
30
30
|
}
|
|
31
31
|
exports.Broadcast = Broadcast;
|
|
32
32
|
//# sourceMappingURL=broadcast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../../src/decorators/broadcast.ts"],"names":[],"mappings":";;;AAAA,yEAAoE;AACpE,mDAA8C;AAE9C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,IAAA,6BAAa,EAAC,SAAS,EAAE,uCAAkB,CAAC,SAAS,CAAC,CAAC;AAChE,CAAC;AAFD,8BAEC","sourcesContent":["import {SocketReturnsTypes} from \"../interfaces/SocketReturnsTypes\";\nimport {SocketReturns} from \"./socketReturns\";\n\n/**\n * Broadcast the response for all client registered in the same namespace.\n *\n * With the `@Broadcast` decorator, the method will accept a return type (Promise or not).\n *\n * ### Example\n *\n * ```typescript\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @Input(\"event\")\n * @Broadcast(\"returnEvent\")\n * async myMethod(@Args(0) data: any, @Nsp socket): Promise<any> {\n * return Promise.resolve({data})\n * }\n * }\n * ```\n *\n * @decorator\n * @param eventName\n */\nexport function Broadcast(eventName: string) {\n return SocketReturns(eventName, SocketReturnsTypes.BROADCAST);\n}\n"]}
|
|
@@ -26,7 +26,7 @@ const socketReturns_1 = require("./socketReturns");
|
|
|
26
26
|
* @param eventName
|
|
27
27
|
*/
|
|
28
28
|
function BroadcastOthers(eventName) {
|
|
29
|
-
return socketReturns_1.SocketReturns(eventName, SocketReturnsTypes_1.SocketReturnsTypes.BROADCAST_OTHERS);
|
|
29
|
+
return (0, socketReturns_1.SocketReturns)(eventName, SocketReturnsTypes_1.SocketReturnsTypes.BROADCAST_OTHERS);
|
|
30
30
|
}
|
|
31
31
|
exports.BroadcastOthers = BroadcastOthers;
|
|
32
32
|
//# sourceMappingURL=broadcastOthers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcastOthers.js","sourceRoot":"","sources":["../../../src/decorators/broadcastOthers.ts"],"names":[],"mappings":";;;AAAA,yEAAoE;AACpE,mDAA8C;AAE9C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,eAAe,CAAC,SAAiB;IAC/C,OAAO,IAAA,6BAAa,EAAC,SAAS,EAAE,uCAAkB,CAAC,gBAAgB,CAAC,CAAC;AACvE,CAAC;AAFD,0CAEC","sourcesContent":["import {SocketReturnsTypes} from \"../interfaces/SocketReturnsTypes\";\nimport {SocketReturns} from \"./socketReturns\";\n\n/**\n * Broadcast the response for all client registered in the same namespace except to the current client.\n *\n * With the `@BroadcastOthers` decorator, the method will accept a return type (Promise or not).\n *\n * ### Example\n *\n * ```typescript\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @Input(\"event\")\n * @BroadcastOthers(\"returnEvent\")\n * async myMethod(@Args(0) data: any, @Nsp socket): Promise<any> {\n * return Promise.resolve({data})\n * }\n * }\n * ```\n *\n * @decorator\n * @param eventName\n */\nexport function BroadcastOthers(eventName: string) {\n return SocketReturns(eventName, SocketReturnsTypes.BROADCAST_OTHERS);\n}\n"]}
|
|
@@ -26,7 +26,7 @@ const socketReturns_1 = require("./socketReturns");
|
|
|
26
26
|
* @param eventName
|
|
27
27
|
*/
|
|
28
28
|
function Emit(eventName) {
|
|
29
|
-
return socketReturns_1.SocketReturns(eventName, SocketReturnsTypes_1.SocketReturnsTypes.EMIT);
|
|
29
|
+
return (0, socketReturns_1.SocketReturns)(eventName, SocketReturnsTypes_1.SocketReturnsTypes.EMIT);
|
|
30
30
|
}
|
|
31
31
|
exports.Emit = Emit;
|
|
32
32
|
//# sourceMappingURL=emit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../../src/decorators/emit.ts"],"names":[],"mappings":";;;AAAA,yEAAoE;AACpE,mDAA8C;AAE9C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,IAAI,CAAC,SAAiB;IACpC,OAAO,IAAA,6BAAa,EAAC,SAAS,EAAE,uCAAkB,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAFD,oBAEC","sourcesContent":["import {SocketReturnsTypes} from \"../interfaces/SocketReturnsTypes\";\nimport {SocketReturns} from \"./socketReturns\";\n\n/**\n * Emit the response to the client.\n *\n * With the `@Emit` decorator, the method will accept a return type (Promise or not).\n *\n * ### Example\n *\n * ```typescript\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @Input(\"event\")\n * @Emit(\"returnEvent\")\n * async myMethod(@Args(0) data: any, @Nsp socket): Promise<any> {\n * return Promise.resolve({data})\n * }\n * }\n * ```\n *\n * @decorator\n * @param eventName\n */\nexport function Emit(eventName: string) {\n return SocketReturns(eventName, SocketReturnsTypes.EMIT);\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/decorators/input.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAEjC;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,KAAK,CAAC,SAAiB;IACrC,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QAC1E,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE;YACnC,QAAQ,EAAE;gBACR,CAAC,WAAW,CAAC,EAAE;oBACb,SAAS;oBACT,eAAe,EAAE,WAAW;iBAC7B;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAXD,sBAWC","sourcesContent":["import {Store} from \"@tsed/core\";\n\n/**\n * Attach the decorated method to the socket event.\n *\n * ### Example\n *\n * ```typescript\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @Input(\"event\")\n * myMethod(@Args(0) data: any, @Nsp socket) {\n *\n * }\n * }\n * ```\n *\n * @decorator\n * @param eventName\n */\nexport function Input(eventName: string) {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n Store.from(target).merge(\"socketIO\", {\n handlers: {\n [propertyKey]: {\n eventName,\n methodClassName: propertyKey\n }\n }\n });\n };\n}\n"]}
|
|
@@ -24,8 +24,8 @@ const input_1 = require("./input");
|
|
|
24
24
|
*/
|
|
25
25
|
function InputAndBroadcast(eventName) {
|
|
26
26
|
return (target, propertyKey, descriptor) => {
|
|
27
|
-
input_1.Input(eventName)(target, propertyKey, descriptor);
|
|
28
|
-
broadcast_1.Broadcast(eventName)(target, propertyKey, descriptor);
|
|
27
|
+
(0, input_1.Input)(eventName)(target, propertyKey, descriptor);
|
|
28
|
+
(0, broadcast_1.Broadcast)(eventName)(target, propertyKey, descriptor);
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
exports.InputAndBroadcast = InputAndBroadcast;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputAndBroadcast.js","sourceRoot":"","sources":["../../../src/decorators/inputAndBroadcast.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AACtC,mCAA8B;AAE9B;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,iBAAiB,CAAC,SAAiB;IACjD,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QAC1E,IAAA,aAAK,EAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,IAAA,qBAAS,EAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AALD,8CAKC","sourcesContent":["import {Broadcast} from \"./broadcast\";\nimport {Input} from \"./input\";\n\n/**\n * Attach the decorated method to the socket event and broadcast the response to all clients.\n *\n * ### Example\n *\n * ```typescript\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @InputAndBroadcast(\"event\")\n * async myMethod(@Args(0) data: any, @Nsp socket) {\n * return {data: \"data\"};\n * }\n * }\n * ```\n *\n * @decorator\n * @param eventName\n */\nexport function InputAndBroadcast(eventName: string) {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n Input(eventName)(target, propertyKey, descriptor);\n Broadcast(eventName)(target, propertyKey, descriptor);\n };\n}\n"]}
|
|
@@ -24,8 +24,8 @@ const input_1 = require("./input");
|
|
|
24
24
|
*/
|
|
25
25
|
function InputAndBroadcastOthers(eventName) {
|
|
26
26
|
return (target, propertyKey, descriptor) => {
|
|
27
|
-
input_1.Input(eventName)(target, propertyKey, descriptor);
|
|
28
|
-
broadcastOthers_1.BroadcastOthers(eventName)(target, propertyKey, descriptor);
|
|
27
|
+
(0, input_1.Input)(eventName)(target, propertyKey, descriptor);
|
|
28
|
+
(0, broadcastOthers_1.BroadcastOthers)(eventName)(target, propertyKey, descriptor);
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
exports.InputAndBroadcastOthers = InputAndBroadcastOthers;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputAndBroadcastOthers.js","sourceRoot":"","sources":["../../../src/decorators/inputAndBroadcastOthers.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAClD,mCAA8B;AAE9B;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,uBAAuB,CAAC,SAAiB;IACvD,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QAC1E,IAAA,aAAK,EAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,IAAA,iCAAe,EAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AALD,0DAKC","sourcesContent":["import {BroadcastOthers} from \"./broadcastOthers\";\nimport {Input} from \"./input\";\n\n/**\n * Attach the decorated method to the socket event and broadcast the response to all clients with the exception of the connected customer.\n *\n * ### Example\n *\n * ```typescript\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @InputAndBroadcastOthers(\"event\")\n * async myMethod(@Args(0) data: any, @Nsp socket) {\n * return {data: \"data\"};\n * }\n * }\n * ```\n *\n * @decorator\n * @param eventName\n */\nexport function InputAndBroadcastOthers(eventName: string) {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n Input(eventName)(target, propertyKey, descriptor);\n BroadcastOthers(eventName)(target, propertyKey, descriptor);\n };\n}\n"]}
|
|
@@ -24,8 +24,8 @@ const input_1 = require("./input");
|
|
|
24
24
|
*/
|
|
25
25
|
function InputAndEmit(eventName) {
|
|
26
26
|
return (target, propertyKey, descriptor) => {
|
|
27
|
-
input_1.Input(eventName)(target, propertyKey, descriptor);
|
|
28
|
-
emit_1.Emit(eventName)(target, propertyKey, descriptor);
|
|
27
|
+
(0, input_1.Input)(eventName)(target, propertyKey, descriptor);
|
|
28
|
+
(0, emit_1.Emit)(eventName)(target, propertyKey, descriptor);
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
exports.InputAndEmit = InputAndEmit;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputAndEmit.js","sourceRoot":"","sources":["../../../src/decorators/inputAndEmit.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAC5B,mCAA8B;AAE9B;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,YAAY,CAAC,SAAiB;IAC5C,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QAC1E,IAAA,aAAK,EAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,IAAA,WAAI,EAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AALD,oCAKC","sourcesContent":["import {Emit} from \"./emit\";\nimport {Input} from \"./input\";\n\n/**\n * Attach the decorated method to the socket event and emit the response to the client.\n *\n * ### Example\n *\n * ```typescript\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @InputAndEmit(\"event\")\n * async myMethod(@Args(0) data: any, @Nsp socket) {\n * return {data: \"data\"};\n * }\n * }\n * ```\n *\n * @decorator\n * @param eventName\n */\nexport function InputAndEmit(eventName: string) {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n Input(eventName)(target, propertyKey, descriptor);\n Emit(eventName)(target, propertyKey, descriptor);\n };\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IO = void 0;
|
|
4
|
+
const di_1 = require("@tsed/di");
|
|
5
|
+
const SocketIOServer_1 = require("../services/SocketIOServer");
|
|
6
|
+
function IO(target, targetKey, descriptor) {
|
|
7
|
+
if (target) {
|
|
8
|
+
return (0, di_1.Inject)(SocketIOServer_1.Server)(target, targetKey, descriptor);
|
|
9
|
+
}
|
|
10
|
+
return (0, di_1.Inject)(SocketIOServer_1.Server);
|
|
11
|
+
}
|
|
12
|
+
exports.IO = IO;
|
|
13
|
+
//# sourceMappingURL=io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../../src/decorators/io.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAEhC,+DAAkD;AAqBlD,SAAgB,EAAE,CAAC,MAAkB,EAAE,SAAkB,EAAE,UAAuD;IAChH,IAAI,MAAM,EAAE;QACV,OAAO,IAAA,WAAM,EAAC,uBAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;KACtD;IACD,OAAO,IAAA,WAAM,EAAC,uBAAM,CAAC,CAAC;AACxB,CAAC;AALD,gBAKC","sourcesContent":["import {Inject} from \"@tsed/di\";\nimport {Type} from \"@tsed/core\";\nimport {Server} from \"../services/SocketIOServer\";\n\n/**\n * Inject the [SocketIO.Server](https://socket.io/docs/server-api/) instance in the decorated parameter.\n *\n * ### Example\n *\n * ```typescript\n * @SocketService(\"/nsp\")\n * export class MyWS {\n * constructor(@IO private io: Server) {}\n * }\n * ```\n *\n * @param target\n * @param targetKey\n * @param descriptor\n * @decorator\n */\nexport function IO(): (...args: any[]) => any;\nexport function IO(target: Type<any>, targetKey: string, descriptor: TypedPropertyDescriptor<Function> | number): any;\nexport function IO(target?: Type<any>, targetKey?: string, descriptor?: TypedPropertyDescriptor<Function> | number): any {\n if (target) {\n return Inject(Server)(target, targetKey, descriptor);\n }\n return Inject(Server);\n}\n"]}
|
|
@@ -76,13 +76,13 @@ function Namespace(target, propertyKey, index) {
|
|
|
76
76
|
});
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
|
-
if (core_1.decoratorTypeOf([target, propertyKey, index]) === core_1.DecoratorTypes.PROP) {
|
|
79
|
+
if ((0, core_1.decoratorTypeOf)([target, propertyKey, index]) === core_1.DecoratorTypes.PROP) {
|
|
80
80
|
core_1.Store.from(target).merge("socketIO", {
|
|
81
81
|
injectNamespaces: [{ propertyKey }]
|
|
82
82
|
});
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
return socketFilter_1.SocketFilter(SocketFilters_1.SocketFilters.NSP)(target, propertyKey, index);
|
|
85
|
+
return (0, socketFilter_1.SocketFilter)(SocketFilters_1.SocketFilters.NSP)(target, propertyKey, index);
|
|
86
86
|
}
|
|
87
87
|
exports.Namespace = Namespace;
|
|
88
88
|
//# sourceMappingURL=nsp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nsp.js","sourceRoot":"","sources":["../../../src/decorators/nsp.ts"],"names":[],"mappings":";;;AAAA,qCAAkE;AAElE,+DAA0D;AAC1D,iDAA4C;AAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,SAAgB,GAAG,CAAC,MAAW,EAAE,WAAoB,EAAE,KAAc;IACnE,OAAO,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAFD,kBAEC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,SAAS,CAAC,MAAW,EAAE,WAAoB,EAAE,KAAc;IACzE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,GAAG,GAAG,MAAgB,CAAC;QAE7B,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,EAAE;YAC1C,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE;gBACnC,gBAAgB,EAAE,CAAC,EAAC,WAAW,EAAE,GAAG,EAAC,CAAC;aACvC,CAAC,CAAC;QACL,CAAC,CAAC;KACH;IAED,IAAI,IAAA,sBAAe,EAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,KAAK,qBAAc,CAAC,IAAI,EAAE;QACzE,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE;YACnC,gBAAgB,EAAE,CAAC,EAAC,WAAW,EAAC,CAAC;SAClC,CAAC,CAAC;QAEH,OAAO;KACR;IAED,OAAO,IAAA,2BAAY,EAAC,6BAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAY,EAAE,KAAM,CAAC,CAAC;AACvE,CAAC;AApBD,8BAoBC","sourcesContent":["import {decoratorTypeOf, DecoratorTypes, Store} from \"@tsed/core\";\nimport {Namespace as NamespaceType} from \"socket.io\";\nimport {SocketFilters} from \"../interfaces/SocketFilters\";\nimport {SocketFilter} from \"./socketFilter\";\n\nexport type Namespace = NamespaceType;\nexport type Nsp = NamespaceType;\n\n/**\n * Inject the [SocketIO.Namespace](https://socket.io/docs/rooms-and-namespaces/#namespaces) instance in the decorated parameter.\n *\n * ### Example\n *\n * ```typescript\n * import {Nsp, SocketService, Input} from \"@tsed/socketio\";\n *\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @Nsp\n * nsp: SocketIO.Namespace; // will inject SocketIO.Namespace (not available on constructor)\n *\n * @Nsp(\"/my-other-namespace\")\n * nspOther: SocketIO.Namespace; // communication between two namespace\n *\n * @Input(\"event\")\n * myMethod(@Nsp namespace: SocketIO.Namespace) {\n *\n * }\n * }\n * ```\n *\n * @param target\n * @param {string} propertyKey\n * @param {number} index\n * @decorator\n */\nexport function Nsp(target: any, propertyKey?: string, index?: number): any {\n return Namespace(target, propertyKey, index);\n}\n\n/**\n * Inject the [SocketIO.Namespace](https://socket.io/docs/rooms-and-namespaces/#namespaces) instance in the decorated parameter.\n *\n * ### Example\n *\n * ```typescript\n * import {Namespace, SocketService, Input} from \"@tsed/socketio\";\n *\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @Nsp\n * nsp: Namespace; // will inject SocketIO.Namespace (not available on constructor)\n *\n * @Nsp(\"/my-other-namespace\")\n * nspOther: Namespace; // communication between two namespace\n *\n * @Input(\"event\")\n * myMethod(@Namespace namespace: Namespace) {\n *\n * }\n * }\n * ```\n *\n * @param target\n * @param {string} propertyKey\n * @param {number} index\n * @alias {Nsp}\n * @decorator\n */\nexport function Namespace(target: any, propertyKey?: string, index?: number): any {\n if (typeof target === \"string\") {\n const nsp = target as string;\n\n return (target: any, propertyKey: string) => {\n Store.from(target).merge(\"socketIO\", {\n injectNamespaces: [{propertyKey, nsp}]\n });\n };\n }\n\n if (decoratorTypeOf([target, propertyKey, index]) === DecoratorTypes.PROP) {\n Store.from(target).merge(\"socketIO\", {\n injectNamespaces: [{propertyKey}]\n });\n\n return;\n }\n\n return SocketFilter(SocketFilters.NSP)(target, propertyKey!, index!);\n}\n"]}
|
|
@@ -26,7 +26,7 @@ const socketFilter_1 = require("./socketFilter");
|
|
|
26
26
|
* @decorator
|
|
27
27
|
*/
|
|
28
28
|
function Socket(target, propertyKey, index) {
|
|
29
|
-
return socketFilter_1.SocketFilter(SocketFilters_1.SocketFilters.SOCKET)(target, propertyKey, index);
|
|
29
|
+
return (0, socketFilter_1.SocketFilter)(SocketFilters_1.SocketFilters.SOCKET)(target, propertyKey, index);
|
|
30
30
|
}
|
|
31
31
|
exports.Socket = Socket;
|
|
32
32
|
//# sourceMappingURL=socket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/decorators/socket.ts"],"names":[],"mappings":";;;AACA,+DAA0D;AAC1D,iDAA4C;AAI5C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,MAAM,CAAC,MAAW,EAAE,WAAmB,EAAE,KAAa;IACpE,OAAO,IAAA,2BAAY,EAAC,6BAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AACxE,CAAC;AAFD,wBAEC","sourcesContent":["import {Socket as SocketType} from \"socket.io\";\nimport {SocketFilters} from \"../interfaces/SocketFilters\";\nimport {SocketFilter} from \"./socketFilter\";\n\nexport type Socket = SocketType;\n\n/**\n * Inject the Socket instance in the decorated parameter.\n *\n * ### Example\n *\n * ```typescript\n * @SocketService(\"/nsp\")\n * export class MyWS {\n *\n * @Input(\"event\")\n * myMethod(@Socket socket) {\n *\n * }\n * }\n * ```\n *\n * @experimental\n * @param target\n * @param {string} propertyKey\n * @param {number} index\n * @decorator\n */\nexport function Socket(target: any, propertyKey: string, index: number): any {\n return SocketFilter(SocketFilters.SOCKET)(target, propertyKey, index);\n}\n"]}
|
|
@@ -24,7 +24,7 @@ const socketFilter_1 = require("./socketFilter");
|
|
|
24
24
|
* @param index
|
|
25
25
|
*/
|
|
26
26
|
function SocketErr(target, propertyKey, index) {
|
|
27
|
-
return socketFilter_1.SocketFilter(SocketFilters_1.SocketFilters.ERR)(target, propertyKey, index);
|
|
27
|
+
return (0, socketFilter_1.SocketFilter)(SocketFilters_1.SocketFilters.ERR)(target, propertyKey, index);
|
|
28
28
|
}
|
|
29
29
|
exports.SocketErr = SocketErr;
|
|
30
30
|
//# sourceMappingURL=socketErr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketErr.js","sourceRoot":"","sources":["../../../src/decorators/socketErr.ts"],"names":[],"mappings":";;;AAAA,+DAA0D;AAC1D,iDAA4C;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,SAAS,CAAC,MAAW,EAAE,WAAmB,EAAE,KAAa;IACvE,OAAO,IAAA,2BAAY,EAAC,6BAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC;AAFD,8BAEC","sourcesContent":["import {SocketFilters} from \"../interfaces/SocketFilters\";\nimport {SocketFilter} from \"./socketFilter\";\n\n/**\n * Inject the error in the parameters\n *\n * ### Example\n *\n * ```typescript\n * @SocketMiddlewareError()\n * export class MyMiddleware {\n *\n * myMethod(@SocketErr err: any, @Args() arguments: any[]) {\n *\n * }\n * }\n * ```\n *\n * @decorator\n * @param target\n * @param propertyKey\n * @param index\n */\nexport function SocketErr(target: any, propertyKey: string, index: number): any {\n return SocketFilter(SocketFilters.ERR)(target, propertyKey, index);\n}\n"]}
|
|
@@ -24,7 +24,7 @@ const socketFilter_1 = require("./socketFilter");
|
|
|
24
24
|
* @decorator
|
|
25
25
|
*/
|
|
26
26
|
function SocketEventName(target, propertyKey, index) {
|
|
27
|
-
return socketFilter_1.SocketFilter(SocketFilters_1.SocketFilters.EVENT_NAME)(target, propertyKey, index);
|
|
27
|
+
return (0, socketFilter_1.SocketFilter)(SocketFilters_1.SocketFilters.EVENT_NAME)(target, propertyKey, index);
|
|
28
28
|
}
|
|
29
29
|
exports.SocketEventName = SocketEventName;
|
|
30
30
|
//# sourceMappingURL=socketEventName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketEventName.js","sourceRoot":"","sources":["../../../src/decorators/socketEventName.ts"],"names":[],"mappings":";;;AAAA,+DAA0D;AAC1D,iDAA4C;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,eAAe,CAAC,MAAW,EAAE,WAAmB,EAAE,KAAa;IAC7E,OAAO,IAAA,2BAAY,EAAC,6BAAa,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC5E,CAAC;AAFD,0CAEC","sourcesContent":["import {SocketFilters} from \"../interfaces/SocketFilters\";\nimport {SocketFilter} from \"./socketFilter\";\n\n/**\n * Inject the Socket instance in the decorated parameter.\n *\n * ### Example\n *\n * ```typescript\n * @SocketMiddleware(\"/nsp\")\n * export class MyMiddleware {\n * use(@SocketEventName eventName: string) {\n *\n * }\n * }\n * ```\n *\n * @experimental\n * @param target\n * @param {string} propertyKey\n * @param {number} index\n * @decorator\n */\nexport function SocketEventName(target: any, propertyKey: string, index: number): any {\n return SocketFilter(SocketFilters.EVENT_NAME)(target, propertyKey, index);\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketFilter.js","sourceRoot":"","sources":["../../../src/decorators/socketFilter.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAGjC;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,MAAqB,EAAE,QAAiB;IACnE,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,KAAa,EAAE,EAAE;QACzD,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE;YACnC,QAAQ,EAAE;gBACR,CAAC,WAAW,CAAC,EAAE;oBACb,UAAU,EAAE;wBACV,CAAC,KAAK,CAAC,EAAE;4BACP,MAAM;4BACN,QAAQ;yBACT;qBACF;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAfD,oCAeC","sourcesContent":["import {Store} from \"@tsed/core\";\nimport {SocketFilters} from \"../interfaces/SocketFilters\";\n\n/**\n *\n * @param {SocketFilters} filter\n * @param {number} mapIndex\n * @returns {(target: any, propertyKey: string, index: number) => Store}\n * @decorator\n */\nexport function SocketFilter(filter: SocketFilters, mapIndex?: number) {\n return (target: any, propertyKey: string, index: number) => {\n Store.from(target).merge(\"socketIO\", {\n handlers: {\n [propertyKey]: {\n parameters: {\n [index]: {\n filter,\n mapIndex\n }\n }\n }\n }\n });\n };\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SocketMiddleware = void 0;
|
|
4
|
-
const
|
|
4
|
+
const platform_middlewares_1 = require("@tsed/platform-middlewares");
|
|
5
5
|
const core_1 = require("@tsed/core");
|
|
6
|
-
const
|
|
6
|
+
const SocketProviderTypes_1 = require("../interfaces/SocketProviderTypes");
|
|
7
7
|
/**
|
|
8
8
|
* Declare a new SocketMiddleware.
|
|
9
9
|
*
|
|
@@ -60,14 +60,14 @@ const interfaces_1 = require("../interfaces");
|
|
|
60
60
|
function SocketMiddleware() {
|
|
61
61
|
return (target) => {
|
|
62
62
|
core_1.Store.from(target).merge("socketIO", {
|
|
63
|
-
type:
|
|
63
|
+
type: SocketProviderTypes_1.SocketProviderTypes.MIDDLEWARE,
|
|
64
64
|
handlers: {
|
|
65
65
|
use: {
|
|
66
66
|
methodClassName: "use"
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
});
|
|
70
|
-
return
|
|
70
|
+
return (0, platform_middlewares_1.Middleware)()(target);
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
exports.SocketMiddleware = SocketMiddleware;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketMiddleware.js","sourceRoot":"","sources":["../../../src/decorators/socketMiddleware.ts"],"names":[],"mappings":";;;AAAA,qEAAsD;AACtD,qCAAuC;AACvC,2EAAsE;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,CAAC,MAAiB,EAAE,EAAE;QAC3B,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE;YACnC,IAAI,EAAE,yCAAmB,CAAC,UAAU;YACpC,QAAQ,EAAE;gBACR,GAAG,EAAE;oBACH,eAAe,EAAE,KAAK;iBACvB;aACF;SACF,CAAC,CAAC;QAEH,OAAO,IAAA,iCAAU,GAAE,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAbD,4CAaC","sourcesContent":["import {Middleware} from \"@tsed/platform-middlewares\";\nimport {Store, Type} from \"@tsed/core\";\nimport {SocketProviderTypes} from \"../interfaces/SocketProviderTypes\";\n\n/**\n * Declare a new SocketMiddleware.\n *\n * ### Example\n *\n * A middleware can be also used on a `SocketService` either on a class or on a method.\n *\n * Here an example of a middleware:\n *\n * ```typescript\n * @SocketMiddleware()\n * export class UserConverterSocketMiddleware {\n * constructor(private converterService: ConverterService) {\n * }\n * async use(@Args() args: any[]) {\n *\n * let [user] = args;\n * // update Arguments\n * user = this.converterService.deserialize(user, User);\n *\n * return [user];\n * }\n * }\n * ```\n * > The user instance will be forwarded to the next middleware and to your decorated method.\n *\n * Then:\n *\n * ```typescript\n * import {SocketService, SocketUseAfter, SocketUseBefore, Emit, Input, Args} from \"@tsed/socketio\";\n * import {UserConverterSocketMiddleware} from \"../middlewares\";\n * import {User} from \"../models/User\";\n *\n * @SocketService(\"/my-namespace\")\n * @SocketUseBefore(UserConverterSocketMiddleware) // global version\n * export class MySocketService {\n *\n * @Input(\"eventName\")\n * @Emit(\"responseEventName\") // or Broadcast or BroadcastOthers\n * @SocketUseBefore(UserConverterSocketMiddleware)\n * async myMethod(@Args(0) user: User) {\n *\n * console.log(user);\n *\n * return user;\n * }\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @experimental\n */\nexport function SocketMiddleware(): Function {\n return (target: Type<any>) => {\n Store.from(target).merge(\"socketIO\", {\n type: SocketProviderTypes.MIDDLEWARE,\n handlers: {\n use: {\n methodClassName: \"use\"\n }\n }\n });\n\n return Middleware()(target);\n };\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SocketMiddlewareError = void 0;
|
|
4
|
-
const
|
|
4
|
+
const platform_middlewares_1 = require("@tsed/platform-middlewares");
|
|
5
5
|
const core_1 = require("@tsed/core");
|
|
6
6
|
const SocketProviderTypes_1 = require("../interfaces/SocketProviderTypes");
|
|
7
7
|
/**
|
|
@@ -64,7 +64,7 @@ function SocketMiddlewareError() {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
|
-
return
|
|
67
|
+
return (0, platform_middlewares_1.Middleware)()(target);
|
|
68
68
|
};
|
|
69
69
|
}
|
|
70
70
|
exports.SocketMiddlewareError = SocketMiddlewareError;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketMiddlewareError.js","sourceRoot":"","sources":["../../../src/decorators/socketMiddlewareError.ts"],"names":[],"mappings":";;;AAAA,qEAAsD;AACtD,qCAAuC;AACvC,2EAAsE;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,SAAgB,qBAAqB;IACnC,OAAO,CAAC,MAAiB,EAAE,EAAE;QAC3B,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE;YACnC,IAAI,EAAE,yCAAmB,CAAC,UAAU;YACpC,KAAK,EAAE,IAAI;YAEX,QAAQ,EAAE;gBACR,GAAG,EAAE;oBACH,eAAe,EAAE,KAAK;iBACvB;aACF;SACF,CAAC,CAAC;QAEH,OAAO,IAAA,iCAAU,GAAE,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAfD,sDAeC","sourcesContent":["import {Middleware} from \"@tsed/platform-middlewares\";\nimport {Store, Type} from \"@tsed/core\";\nimport {SocketProviderTypes} from \"../interfaces/SocketProviderTypes\";\n\n/**\n * Declare a new SocketMiddlewareError.\n *\n * ### Example\n *\n * A middleware can be also used on a `SocketService` either on a class or on a method.\n *\n * Here an example of a middleware:\n *\n * ```typescript\n * import {SocketMiddlewareError, SocketErr, Socket, Args} from \"@tsed/socketio\";\n *\n * @SocketMiddlewareError()\n * export class ErrorHandlerSocketMiddleware {\n * async use(@SocketEventName, @SocketErr err: any, @Socket socket: SocketIO.Socket) {\n * console.error(err);\n * socket.emit(\"error\", {message: \"An error has occured\"})\n * }\n * }\n * ```\n *\n * Then:\n *\n * ```typescript\n * import {SocketService, SocketUseAfter, SocketUseBefore, Emit, Input, Args} from \"@tsed/socketio\";\n * import {ErrorHandlerSocketMiddleware} from \"../middlewares\";\n * import {User} from \"../models/User\";\n *\n * @SocketService(\"/my-namespace\")\n * @SocketUseAfter(ErrorHandlerSocketMiddleware) // global version\n * export class MySocketService {\n *\n * @Input(\"eventName\")\n * @Emit(\"responseEventName\") // or Broadcast or BroadcastOthers\n * @SocketUseAfter(ErrorHandlerSocketMiddleware)\n * async myMethod(@Args(0) userName: User) {\n *\n * console.log(user);\n * throw new Error(\"Error\");\n *\n * return user;\n * }\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @experimental\n */\nexport function SocketMiddlewareError(): Function {\n return (target: Type<any>) => {\n Store.from(target).merge(\"socketIO\", {\n type: SocketProviderTypes.MIDDLEWARE,\n error: true,\n\n handlers: {\n use: {\n methodClassName: \"use\"\n }\n }\n });\n\n return Middleware()(target);\n };\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketReturns.js","sourceRoot":"","sources":["../../../src/decorators/socketReturns.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAGjC;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,SAAiB,EAAE,IAAwB;IACvE,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QAC1E,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE;YACnC,QAAQ,EAAE;gBACR,CAAC,WAAW,CAAC,EAAE;oBACb,OAAO,EAAE;wBACP,SAAS;wBACT,IAAI;qBACL;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAbD,sCAaC","sourcesContent":["import {Store} from \"@tsed/core\";\nimport {SocketReturnsTypes} from \"../interfaces/SocketReturnsTypes\";\n\n/**\n *\n * @param {string} eventName\n * @param {SocketReturnsTypes} type\n * @returns {(target: any, propertyKey: string, descriptor: PropertyDescriptor) => void}\n * @decorator\n */\nexport function SocketReturns(eventName: string, type: SocketReturnsTypes) {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n Store.from(target).merge(\"socketIO\", {\n handlers: {\n [propertyKey]: {\n returns: {\n eventName,\n type\n }\n }\n }\n });\n };\n}\n"]}
|