@tsed/socketio 6.87.1 → 6.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{SocketIOModule.d.ts → cjs/SocketIOModule.d.ts} +0 -0
- package/lib/{SocketIOModule.js → cjs/SocketIOModule.js} +20 -20
- package/lib/cjs/SocketIOModule.js.map +1 -0
- package/lib/{class → cjs/class}/SocketHandlersBuilder.d.ts +0 -0
- package/lib/{class → cjs/class}/SocketHandlersBuilder.js +1 -1
- package/lib/cjs/class/SocketHandlersBuilder.js.map +1 -0
- package/lib/{class → cjs/class}/SocketProviderMetadata.d.ts +0 -0
- package/lib/{class → cjs/class}/SocketProviderMetadata.js +0 -0
- package/lib/cjs/class/SocketProviderMetadata.js.map +1 -0
- package/lib/{constants → cjs/constants}/index.d.ts +0 -0
- package/lib/{constants → cjs/constants}/index.js +0 -0
- package/lib/cjs/constants/index.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/args.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -0
- package/lib/{decorators → cjs/decorators}/inputAndEmit.js +2 -2
- package/lib/cjs/decorators/inputAndEmit.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/io.d.ts +0 -0
- package/lib/{decorators → cjs/decorators}/io.js +1 -1
- package/lib/cjs/decorators/io.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/nsp.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -0
- package/lib/{decorators → cjs/decorators}/socketMiddleware.js +1 -1
- package/lib/cjs/decorators/socketMiddleware.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketMiddlewareError.d.ts +0 -0
- package/lib/{decorators → cjs/decorators}/socketMiddlewareError.js +1 -1
- package/lib/cjs/decorators/socketMiddlewareError.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketReturns.d.ts +0 -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.d.ts +0 -0
- package/lib/{decorators → cjs/decorators}/socketService.js +1 -1
- package/lib/cjs/decorators/socketService.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/socketSession.d.ts +0 -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.d.ts +0 -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.d.ts +0 -0
- package/lib/{decorators → cjs/decorators}/socketUseBefore.js +0 -0
- package/lib/cjs/decorators/socketUseBefore.js.map +1 -0
- package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
- package/lib/cjs/index.js +32 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/OnNamespaceInit.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -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.d.ts +0 -0
- package/lib/{interfaces → cjs/interfaces}/SocketReturnsTypes.js +0 -0
- package/lib/cjs/interfaces/SocketReturnsTypes.js.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/index.d.ts +0 -0
- package/lib/cjs/interfaces/index.js +11 -0
- package/lib/cjs/interfaces/index.js.map +1 -0
- package/lib/{registries → cjs/registries}/NspSessionRegistry.d.ts +0 -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.d.ts +0 -0
- package/lib/{services → cjs/services}/SocketIOServer.js +1 -1
- package/lib/cjs/services/SocketIOServer.js.map +1 -0
- package/lib/{services → cjs/services}/SocketIOService.d.ts +0 -0
- package/lib/{services → cjs/services}/SocketIOService.js +5 -5
- package/lib/cjs/services/SocketIOService.js.map +1 -0
- package/lib/esm/SocketIOModule.js +105 -0
- package/lib/esm/SocketIOModule.js.map +1 -0
- package/lib/esm/class/SocketHandlersBuilder.js +202 -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/index.js +2 -0
- package/lib/esm/constants/index.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 +23 -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 +29 -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/index.js +8 -0
- package/lib/esm/interfaces/index.js.map +1 -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 +64 -0
- package/lib/esm/services/SocketIOService.js.map +1 -0
- package/lib/types/SocketIOModule.d.ts +29 -0
- package/lib/types/class/SocketHandlersBuilder.d.ts +47 -0
- package/lib/types/class/SocketProviderMetadata.d.ts +19 -0
- package/lib/types/constants/index.d.ts +1 -0
- package/lib/types/decorators/args.d.ts +28 -0
- package/lib/types/decorators/broadcast.d.ts +23 -0
- package/lib/types/decorators/broadcastOthers.d.ts +23 -0
- package/lib/types/decorators/emit.d.ts +23 -0
- package/lib/types/decorators/input.d.ts +20 -0
- package/lib/types/decorators/inputAndBroadcast.d.ts +20 -0
- package/lib/types/decorators/inputAndBroadcastOthers.d.ts +20 -0
- package/lib/types/decorators/inputAndEmit.d.ts +20 -0
- package/lib/types/decorators/io.d.ts +19 -0
- package/lib/types/decorators/nsp.d.ts +64 -0
- package/lib/types/decorators/socket.d.ts +25 -0
- package/lib/types/decorators/socketErr.d.ts +21 -0
- package/lib/types/decorators/socketEventName.d.ts +21 -0
- package/lib/types/decorators/socketFilter.d.ts +9 -0
- package/lib/types/decorators/socketMiddleware.d.ts +54 -0
- package/lib/types/decorators/socketMiddlewareError.d.ts +50 -0
- package/lib/types/decorators/socketReturns.d.ts +9 -0
- package/lib/types/decorators/socketService.d.ts +11 -0
- package/lib/types/decorators/socketSession.d.ts +23 -0
- package/lib/types/decorators/socketUseAfter.d.ts +52 -0
- package/lib/types/decorators/socketUseBefore.d.ts +56 -0
- package/lib/types/index.d.ts +25 -0
- package/lib/types/interfaces/OnNamespaceInit.d.ts +7 -0
- package/lib/types/interfaces/SocketFilters.d.ts +11 -0
- package/lib/types/interfaces/SocketHandlerMetadata.d.ts +18 -0
- package/lib/types/interfaces/SocketInjectableNsp.d.ts +4 -0
- package/lib/types/interfaces/SocketParamMetadata.d.ts +7 -0
- package/lib/types/interfaces/SocketProviderTypes.d.ts +7 -0
- package/lib/types/interfaces/SocketReturnsTypes.d.ts +8 -0
- package/lib/types/interfaces/index.d.ts +15 -0
- package/lib/types/registries/NspSessionRegistry.d.ts +1 -0
- package/lib/types/services/SocketIOServer.d.ts +4 -0
- package/lib/types/services/SocketIOService.d.ts +30 -0
- package/package.json +25 -17
- package/tsconfig.compile.esm.json +23 -0
- 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.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 +0 -32
- 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.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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,gEAAiC;AAEjC,aAAa;AACb,4DAA6B;AAC7B,8EAA+C;AAE/C,aAAa;AACb,kEAAmC;AACnC,iEAAkC;AAClC,+DAAgC;AAChC,gEAAiC;AACjC,iEAAkC;AAClC,sEAAuC;AACvC,4EAA6C;AAC7C,yEAA0C;AAC1C,8EAA+C;AAC/C,oFAAqD;AACrD,mEAAoC;AACpC,sEAAuC;AACvC,yEAA0C;AAC1C,6EAA8C;AAC9C,kFAAmD;AACnD,0EAA2C;AAC3C,0EAA2C;AAC3C,2EAA4C;AAC5C,4EAA6C;AAC7C,4EAA6C;AAE7C,UAAU;AACV,yEAA0C;AAC1C,0EAA2C","sourcesContent":["export * from \"./SocketIOModule\";\n\n// interfaces\nexport * from \"./interfaces\";\nexport * from \"./class/SocketProviderMetadata\";\n\n// decorators\nexport * from \"./decorators/input\";\nexport * from \"./decorators/args\";\nexport * from \"./decorators/io\";\nexport * from \"./decorators/nsp\";\nexport * from \"./decorators/emit\";\nexport * from \"./decorators/broadcast\";\nexport * from \"./decorators/broadcastOthers\";\nexport * from \"./decorators/inputAndEmit\";\nexport * from \"./decorators/inputAndBroadcast\";\nexport * from \"./decorators/inputAndBroadcastOthers\";\nexport * from \"./decorators/socket\";\nexport * from \"./decorators/socketErr\";\nexport * from \"./decorators/socketFilter\";\nexport * from \"./decorators/socketMiddleware\";\nexport * from \"./decorators/socketMiddlewareError\";\nexport * from \"./decorators/socketService\";\nexport * from \"./decorators/socketSession\";\nexport * from \"./decorators/socketUseAfter\";\nexport * from \"./decorators/socketUseBefore\";\nexport * from \"./decorators/socketEventName\";\n\n// service\nexport * from \"./services/SocketIOServer\";\nexport * from \"./services/SocketIOService\";\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnNamespaceInit.js","sourceRoot":"","sources":["../../../src/interfaces/OnNamespaceInit.ts"],"names":[],"mappings":"","sourcesContent":["import {Namespace} from \"socket.io\";\n\n/**\n *\n */\nexport interface OnNamespaceInit {\n $onNamespaceInit(nsp: Namespace): void;\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketFilters.js","sourceRoot":"","sources":["../../../src/interfaces/SocketFilters.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,yCAAwB,CAAA;IACxB,4BAAW,CAAA;IACX,oCAAmB,CAAA;IACnB,8BAAa,CAAA;AACf,CAAC,EAPW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAOxB","sourcesContent":["/**\n * @ignore\n */\nexport enum SocketFilters {\n ARGS = \"args\",\n SOCKET = \"socket\",\n EVENT_NAME = \"eventName\",\n NSP = \"nsp\",\n SESSION = \"session\",\n ERR = \"error\"\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketHandlerMetadata.js","sourceRoot":"","sources":["../../../src/interfaces/SocketHandlerMetadata.ts"],"names":[],"mappings":"","sourcesContent":["import {SocketParamMetadata} from \"./SocketParamMetadata\";\nimport {SocketReturnsTypes} from \"./SocketReturnsTypes\";\n\n/**\n *\n */\nexport interface SocketHandlerMetadata {\n eventName?: string;\n methodClassName: string;\n useBefore?: any[];\n useAfter?: any[];\n parameters?: {[key: number]: SocketParamMetadata};\n returns?: {\n type: SocketReturnsTypes;\n eventName: string;\n };\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketInjectableNsp.js","sourceRoot":"","sources":["../../../src/interfaces/SocketInjectableNsp.ts"],"names":[],"mappings":"","sourcesContent":["export interface SocketInjectableNsp {\n propertyKey: string;\n nsp?: string;\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketParamMetadata.js","sourceRoot":"","sources":["../../../src/interfaces/SocketParamMetadata.ts"],"names":[],"mappings":"","sourcesContent":["import {MetadataTypes} from \"@tsed/core\";\nimport {SocketFilters} from \"./SocketFilters\";\n\nexport interface SocketParamMetadata extends Partial<MetadataTypes> {\n filter: SocketFilters;\n mapIndex?: number;\n useConverter?: boolean;\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketProviderTypes.js","sourceRoot":"","sources":["../../../src/interfaces/SocketProviderTypes.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,gDAAyB,CAAA;AAC3B,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B","sourcesContent":["/**\n *\n */\nexport enum SocketProviderTypes {\n SERVICE = \"service\",\n MIDDLEWARE = \"middleware\"\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketReturnsTypes.js","sourceRoot":"","sources":["../../../src/interfaces/SocketReturnsTypes.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,0DAAoC,CAAA;IACpC,mCAAa,CAAA;AACf,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B","sourcesContent":["/**\n * @ignore\n */\nexport enum SocketReturnsTypes {\n BROADCAST = \"broadcast\",\n BROADCAST_OTHERS = \"broadcastOthers\",\n EMIT = \"emit\"\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
(0, tslib_1.__exportStar)(require("./SocketHandlerMetadata"), exports);
|
|
5
|
+
(0, tslib_1.__exportStar)(require("./SocketParamMetadata"), exports);
|
|
6
|
+
(0, tslib_1.__exportStar)(require("./SocketProviderTypes"), exports);
|
|
7
|
+
(0, tslib_1.__exportStar)(require("./OnNamespaceInit"), exports);
|
|
8
|
+
(0, tslib_1.__exportStar)(require("./SocketFilters"), exports);
|
|
9
|
+
(0, tslib_1.__exportStar)(require("./SocketReturnsTypes"), exports);
|
|
10
|
+
(0, tslib_1.__exportStar)(require("./SocketInjectableNsp"), exports);
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAUA,uEAAwC;AACxC,qEAAsC;AACtC,qEAAsC;AACtC,iEAAkC;AAClC,+DAAgC;AAChC,oEAAqC;AACrC,qEAAsC","sourcesContent":["import SocketIO from \"socket.io\";\n\ndeclare global {\n namespace TsED {\n interface Configuration {\n socketIO: Partial<SocketIO.ServerOptions>;\n }\n }\n}\n\nexport * from \"./SocketHandlerMetadata\";\nexport * from \"./SocketParamMetadata\";\nexport * from \"./SocketProviderTypes\";\nexport * from \"./OnNamespaceInit\";\nexport * from \"./SocketFilters\";\nexport * from \"./SocketReturnsTypes\";\nexport * from \"./SocketInjectableNsp\";\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NspSessionRegistry.js","sourceRoot":"","sources":["../../../src/registries/NspSessionRegistry.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAM,QAAQ,GAAkC,IAAI,GAAG,EAAE,CAAC;AAE1D,SAAgB,aAAa,CAAC,YAAoB,GAAG;IACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC5B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;KACpC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAND,sCAMC","sourcesContent":["/**\n *\n * @type {Map<any, any>}\n */\nconst SESSIONS: Map<string, Map<string, any>> = new Map();\n\nexport function getNspSession(namespace: string = \"/\") {\n if (!SESSIONS.has(namespace)) {\n SESSIONS.set(namespace, new Map());\n }\n\n return SESSIONS.get(namespace);\n}\n"]}
|
|
File without changes
|
|
@@ -6,7 +6,7 @@ const socket_io_1 = require("socket.io");
|
|
|
6
6
|
Object.defineProperty(exports, "Server", { enumerable: true, get: function () { return socket_io_1.Server; } });
|
|
7
7
|
// tslint:disable-next-line: variable-name
|
|
8
8
|
exports.SocketIOServer = socket_io_1.Server;
|
|
9
|
-
common_1.registerProvider({
|
|
9
|
+
(0, common_1.registerProvider)({
|
|
10
10
|
provide: socket_io_1.Server,
|
|
11
11
|
useFactory() {
|
|
12
12
|
return new socket_io_1.Server();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketIOServer.js","sourceRoot":"","sources":["../../../src/services/SocketIOServer.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAC9C,yCAAiC;AAOzB,uFAPA,kBAAM,OAOA;AAHd,0CAA0C;AAC7B,QAAA,cAAc,GAAG,kBAAM,CAAC;AAIrC,IAAA,yBAAgB,EAAC;IACf,OAAO,EAAE,kBAAM;IACf,UAAU;QACR,OAAO,IAAI,kBAAM,EAAE,CAAC;IACtB,CAAC;CACF,CAAC,CAAC","sourcesContent":["import {registerProvider} from \"@tsed/common\";\nimport {Server} from \"socket.io\";\n\nexport type SocketIOServer = Server;\n\n// tslint:disable-next-line: variable-name\nexport const SocketIOServer = Server;\n\nexport {Server};\n\nregisterProvider({\n provide: Server,\n useFactory() {\n return new Server();\n }\n});\n"]}
|
|
File without changes
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SocketIOService = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const common_1 = require("@tsed/common");
|
|
6
|
-
const socket_io_1 = tslib_1.__importDefault(require("socket.io")); // tslint:disable-line: no-unused-variable
|
|
6
|
+
const socket_io_1 = (0, tslib_1.__importDefault)(require("socket.io")); // tslint:disable-line: no-unused-variable
|
|
7
7
|
const SocketHandlersBuilder_1 = require("../class/SocketHandlersBuilder");
|
|
8
8
|
const SocketProviderMetadata_1 = require("../class/SocketProviderMetadata");
|
|
9
9
|
const io_1 = require("../decorators/io");
|
|
@@ -58,10 +58,10 @@ let SocketIOService = class SocketIOService {
|
|
|
58
58
|
nspConfig.instances.push(builder);
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
|
-
SocketIOService = tslib_1.__decorate([
|
|
62
|
-
common_1.Service(),
|
|
63
|
-
tslib_1.__param(1, io_1.IO),
|
|
64
|
-
tslib_1.__metadata("design:paramtypes", [common_1.InjectorService, socket_io_1.default.Server, common_1.ConverterService])
|
|
61
|
+
SocketIOService = (0, tslib_1.__decorate)([
|
|
62
|
+
(0, common_1.Service)(),
|
|
63
|
+
(0, tslib_1.__param)(1, io_1.IO),
|
|
64
|
+
(0, tslib_1.__metadata)("design:paramtypes", [common_1.InjectorService, socket_io_1.default.Server, common_1.ConverterService])
|
|
65
65
|
], SocketIOService);
|
|
66
66
|
exports.SocketIOService = SocketIOService;
|
|
67
67
|
//# sourceMappingURL=SocketIOService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketIOService.js","sourceRoot":"","sources":["../../../src/services/SocketIOService.ts"],"names":[],"mappings":";;;;AAAA,yCAAkF;AAClF,uEAAiC,CAAC,0CAA0C;AAC5E,0EAAqE;AACrE,4EAAuE;AACvE,yCAAoC;AAEpC;;GAEG;AAEH,IAAa,eAAe,GAA5B,MAAa,eAAe;IAO1B,YAAoB,QAAyB,EAAc,EAAmB,EAAU,gBAAkC;QAAtG,aAAQ,GAAR,QAAQ,CAAiB;QAAc,OAAE,GAAF,EAAE,CAAiB;QAAU,qBAAgB,GAAhB,gBAAgB,CAAkB;QAN1H;;;WAGG;QACK,eAAU,GAA2D,IAAI,GAAG,EAAE,CAAC;IAEsC,CAAC;IAE9H;;;;OAIG;IACI,MAAM,CAAC,YAAoB,GAAG;QACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YACnC,MAAM,IAAI,GAAG,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAC,CAAC;YAEzD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAErC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;gBACnC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAA8B,EAAE,EAAE;oBACxD,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;oBAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAA8B,EAAE,EAAE;wBACxD,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,QAAuB;QAC9C,MAAM,QAAQ,GAA2B,IAAI,+CAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpG,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACrC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,6CAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEtG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;CACF,CAAA;AAtDY,eAAe;IAD3B,IAAA,gBAAO,GAAE;IAQwC,wBAAA,OAAE,CAAA;kDAApB,wBAAe,EAAkB,mBAAQ,CAAC,MAAM,EAA4B,yBAAgB;GAP/G,eAAe,CAsD3B;AAtDY,0CAAe","sourcesContent":["import {ConverterService, InjectorService, Provider, Service} from \"@tsed/common\";\nimport SocketIO from \"socket.io\"; // tslint:disable-line: no-unused-variable\nimport {SocketHandlersBuilder} from \"../class/SocketHandlersBuilder\";\nimport {SocketProviderMetadata} from \"../class/SocketProviderMetadata\";\nimport {IO} from \"../decorators/io\";\n\n/**\n *\n */\n@Service()\nexport class SocketIOService {\n /**\n *\n * @type {Map<any, any>}\n */\n private namespaces: Map<string, {nsp: SocketIO.Namespace; instances: any}> = new Map();\n\n constructor(private injector: InjectorService, @IO private io: SocketIO.Server, private converterService: ConverterService) {}\n\n /**\n *\n * @param {string} namespace\n * @returns {SocketIO.Namespace}\n */\n public getNsp(namespace: string = \"/\"): {nsp: SocketIO.Namespace; instances: any[]} {\n if (!this.namespaces.has(namespace)) {\n const conf = {nsp: this.io.of(namespace), instances: []};\n\n this.namespaces.set(namespace, conf);\n\n conf.nsp.on(\"connection\", (socket) => {\n conf.instances.forEach((builder: SocketHandlersBuilder) => {\n builder.onConnection(socket, conf.nsp);\n });\n\n socket.on(\"disconnect\", () => {\n conf.instances.forEach((builder: SocketHandlersBuilder) => {\n builder.onDisconnect(socket, conf.nsp);\n });\n });\n });\n }\n\n return this.namespaces.get(namespace)!;\n }\n\n /**\n *\n * @param {Provider<any>} provider\n */\n public addSocketProvider(provider: Provider<any>) {\n const wsConfig: SocketProviderMetadata = new SocketProviderMetadata(provider.store.get(\"socketIO\"));\n\n const nspConfig = this.getNsp(wsConfig.namespace);\n const nsps = new Map();\n\n this.namespaces.forEach((value, nsp) => {\n nsps.set(nsp, value.nsp);\n });\n\n const builder = new SocketHandlersBuilder(provider, this.converterService, this.injector).build(nsps);\n\n nspConfig.instances.push(builder);\n }\n}\n"]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { __decorate, __metadata, __param } from "tslib";
|
|
2
|
+
import { $log, Constant, HttpServer, HttpsServer, Inject, InjectorService, Module } from "@tsed/common";
|
|
3
|
+
import { catchError, nameOf } from "@tsed/core";
|
|
4
|
+
import { Server } from "socket.io";
|
|
5
|
+
import { SocketProviderMetadata } from "./class/SocketProviderMetadata"; // tslint:disable-line: no-unused-variable
|
|
6
|
+
import { PROVIDER_TYPE_SOCKET_SERVICE } from "./constants";
|
|
7
|
+
import { IO } from "./decorators/io";
|
|
8
|
+
import { SocketIOService } from "./services/SocketIOService";
|
|
9
|
+
/**
|
|
10
|
+
* @ignore
|
|
11
|
+
*/
|
|
12
|
+
let SocketIOModule = class SocketIOModule {
|
|
13
|
+
constructor(injector, httpServer, httpsServer, io, socketIOService) {
|
|
14
|
+
this.injector = injector;
|
|
15
|
+
this.httpServer = httpServer;
|
|
16
|
+
this.httpsServer = httpsServer;
|
|
17
|
+
this.io = io;
|
|
18
|
+
this.socketIOService = socketIOService;
|
|
19
|
+
}
|
|
20
|
+
$afterListen() {
|
|
21
|
+
if (this.httpPort) {
|
|
22
|
+
this.io.attach(this.httpServer, { ...this.settings });
|
|
23
|
+
}
|
|
24
|
+
if (this.httpsPort) {
|
|
25
|
+
this.io.attach(this.httpsServer, { ...this.settings });
|
|
26
|
+
}
|
|
27
|
+
if (this.settings.adapter) {
|
|
28
|
+
this.io.adapter(this.settings.adapter);
|
|
29
|
+
}
|
|
30
|
+
this.getWebsocketServices().forEach((provider) => this.socketIOService.addSocketProvider(provider));
|
|
31
|
+
if (!this.disableRoutesSummary) {
|
|
32
|
+
this.printSocketEvents();
|
|
33
|
+
}
|
|
34
|
+
return this.injector.emit("$afterSocketListen");
|
|
35
|
+
}
|
|
36
|
+
$onDestroy() {
|
|
37
|
+
catchError(() => this.io.close());
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
*
|
|
41
|
+
* @returns {Provider<any>[]}
|
|
42
|
+
*/
|
|
43
|
+
getWebsocketServices() {
|
|
44
|
+
return Array.from(this.injector.getProviders(PROVIDER_TYPE_SOCKET_SERVICE));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
*
|
|
48
|
+
*/
|
|
49
|
+
printSocketEvents() {
|
|
50
|
+
const list = this.getWebsocketServices().reduce((acc, provider) => {
|
|
51
|
+
const socketProvider = new SocketProviderMetadata(provider.store.get("socketIO"));
|
|
52
|
+
if (socketProvider.namespace) {
|
|
53
|
+
socketProvider.getHandlers().forEach((handler) => {
|
|
54
|
+
acc.push({
|
|
55
|
+
namespace: socketProvider.namespace,
|
|
56
|
+
inputEvent: handler.eventName,
|
|
57
|
+
outputEvent: (handler.returns && handler.returns.eventName) || "",
|
|
58
|
+
outputType: (handler.returns && handler.returns.type) || "",
|
|
59
|
+
name: `${nameOf(provider.useClass)}.${handler.methodClassName}`
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return acc;
|
|
64
|
+
}, []);
|
|
65
|
+
this.injector.logger.info("Socket events mounted:");
|
|
66
|
+
const str = $log.drawTable(list, {
|
|
67
|
+
padding: 1,
|
|
68
|
+
header: {
|
|
69
|
+
namespace: "Namespace",
|
|
70
|
+
inputEvent: "Input event",
|
|
71
|
+
outputEvent: "Output event",
|
|
72
|
+
outputType: "Output type",
|
|
73
|
+
name: "Class method"
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
this.injector.logger.info("\n" + str.trim());
|
|
77
|
+
this.injector.logger.info("Socket server started...");
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
__decorate([
|
|
81
|
+
Constant("logger.disableRoutesSummary", false),
|
|
82
|
+
__metadata("design:type", Boolean)
|
|
83
|
+
], SocketIOModule.prototype, "disableRoutesSummary", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
Constant("socketIO", {}),
|
|
86
|
+
__metadata("design:type", Object)
|
|
87
|
+
], SocketIOModule.prototype, "settings", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
Constant("httpPort"),
|
|
90
|
+
__metadata("design:type", Object)
|
|
91
|
+
], SocketIOModule.prototype, "httpPort", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
Constant("httpsPort"),
|
|
94
|
+
__metadata("design:type", Object)
|
|
95
|
+
], SocketIOModule.prototype, "httpsPort", void 0);
|
|
96
|
+
SocketIOModule = __decorate([
|
|
97
|
+
Module(),
|
|
98
|
+
__param(1, Inject(HttpServer)),
|
|
99
|
+
__param(2, Inject(HttpsServer)),
|
|
100
|
+
__param(3, IO),
|
|
101
|
+
__metadata("design:paramtypes", [InjectorService, Object, Object, Server,
|
|
102
|
+
SocketIOService])
|
|
103
|
+
], SocketIOModule);
|
|
104
|
+
export { SocketIOModule };
|
|
105
|
+
//# sourceMappingURL=SocketIOModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketIOModule.js","sourceRoot":"","sources":["../../src/SocketIOModule.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAe,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAsB,MAAM,cAAc,CAAC;AACxI,OAAO,EAAC,UAAU,EAAE,MAAM,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,MAAM,EAAgB,MAAM,WAAW,CAAC;AAChD,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC,CAAC,0CAA0C;AACjH,OAAO,EAAC,4BAA4B,EAAC,MAAM,aAAa,CAAC;AACzD,OAAO,EAAC,EAAE,EAAC,MAAM,iBAAiB,CAAC;AACnC,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAE3D;;GAEG;AAEH,IAAa,cAAc,GAA3B,MAAa,cAAc;IAazB,YACU,QAAyB,EACL,UAAsB,EACrB,WAAwB,EACzC,EAAU,EACd,eAAgC;QAJhC,aAAQ,GAAR,QAAQ,CAAiB;QACL,eAAU,GAAV,UAAU,CAAY;QACrB,gBAAW,GAAX,WAAW,CAAa;QACzC,OAAE,GAAF,EAAE,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAiB;IACvC,CAAC;IAEJ,YAAY;QACV,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAC,GAAG,IAAI,CAAC,QAAQ,EAAC,CAAC,CAAC;SACrD;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAC,GAAG,IAAI,CAAC,QAAQ,EAAC,CAAC,CAAC;SACtD;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEpG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED,UAAU;QACR,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACO,oBAAoB;QAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACO,iBAAiB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,CAAC,GAAU,EAAE,QAAQ,EAAE,EAAE;YACvE,MAAM,cAAc,GAAG,IAAI,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YAElF,IAAI,cAAc,CAAC,SAAS,EAAE;gBAC5B,cAAc,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC/C,GAAG,CAAC,IAAI,CAAC;wBACP,SAAS,EAAE,cAAc,CAAC,SAAS;wBACnC,UAAU,EAAE,OAAO,CAAC,SAAS;wBAC7B,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;wBACjE,UAAU,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;wBAC3D,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE;qBAChE,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAEpD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YAC/B,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACN,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE,aAAa;gBACzB,WAAW,EAAE,cAAc;gBAC3B,UAAU,EAAE,aAAa;gBACzB,IAAI,EAAE,cAAc;aACrB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxD,CAAC;CACF,CAAA;AA3FC;IADC,QAAQ,CAAC,6BAA6B,EAAE,KAAK,CAAC;;4DACjB;AAG9B;IADC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;;gDACQ;AAGjC;IADC,QAAQ,CAAC,UAAU,CAAC;;gDACK;AAG1B;IADC,QAAQ,CAAC,WAAW,CAAC;;iDACK;AAXhB,cAAc;IAD1B,MAAM,EAAE;IAgBJ,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;IACnB,WAAA,EAAE,CAAA;qCAHe,eAAe,kBAGjB,MAAM;QACG,eAAe;GAlB/B,cAAc,CA6F1B;SA7FY,cAAc","sourcesContent":["import {$log, AfterListen, Constant, HttpServer, HttpsServer, Inject, InjectorService, Module, OnDestroy, Provider} from \"@tsed/common\";\nimport {catchError, 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\";\nimport {IO} from \"./decorators/io\";\nimport {SocketIOService} from \"./services/SocketIOService\";\n\n/**\n * @ignore\n */\n@Module()\nexport class SocketIOModule implements AfterListen, OnDestroy {\n @Constant(\"logger.disableRoutesSummary\", false)\n disableRoutesSummary: boolean;\n\n @Constant(\"socketIO\", {})\n settings: Partial<ServerOptions>;\n\n @Constant(\"httpPort\")\n httpPort: string | number;\n\n @Constant(\"httpsPort\")\n httpsPort: string | number;\n\n constructor(\n private injector: InjectorService,\n @Inject(HttpServer) private httpServer: HttpServer,\n @Inject(HttpsServer) private httpsServer: HttpsServer,\n @IO private io: Server,\n private socketIOService: SocketIOService\n ) {}\n\n $afterListen() {\n if (this.httpPort) {\n this.io.attach(this.httpServer, {...this.settings});\n }\n if (this.httpsPort) {\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 catchError(() => this.io.close());\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"]}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { Store } from "@tsed/core";
|
|
2
|
+
import { $log } from "@tsed/logger";
|
|
3
|
+
import { SocketFilters } from "../interfaces/SocketFilters";
|
|
4
|
+
import { SocketProviderTypes } from "../interfaces/SocketProviderTypes";
|
|
5
|
+
import { SocketReturnsTypes } from "../interfaces/SocketReturnsTypes";
|
|
6
|
+
import { getNspSession } from "../registries/NspSessionRegistry";
|
|
7
|
+
import { SocketProviderMetadata } from "./SocketProviderMetadata";
|
|
8
|
+
/**
|
|
9
|
+
* @ignore
|
|
10
|
+
*/
|
|
11
|
+
export class SocketHandlersBuilder {
|
|
12
|
+
constructor(provider, converterService, injector) {
|
|
13
|
+
this.provider = provider;
|
|
14
|
+
this.converterService = converterService;
|
|
15
|
+
this.injector = injector;
|
|
16
|
+
this.socketProviderMetadata = new SocketProviderMetadata(this.provider.store.get("socketIO"));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param {SocketHandlerMetadata} handlerMetadata
|
|
21
|
+
* @param scope
|
|
22
|
+
* @returns {(data) => void}
|
|
23
|
+
*/
|
|
24
|
+
static bindResponseMiddleware(handlerMetadata, scope) {
|
|
25
|
+
const { returns } = handlerMetadata;
|
|
26
|
+
return (response) => {
|
|
27
|
+
if (returns) {
|
|
28
|
+
switch (returns.type) {
|
|
29
|
+
case SocketReturnsTypes.BROADCAST:
|
|
30
|
+
scope.nsp.emit(returns.eventName, response);
|
|
31
|
+
break;
|
|
32
|
+
case SocketReturnsTypes.BROADCAST_OTHERS:
|
|
33
|
+
scope.socket.broadcast.emit(returns.eventName, response);
|
|
34
|
+
break;
|
|
35
|
+
case SocketReturnsTypes.EMIT:
|
|
36
|
+
scope.socket.emit(returns.eventName, response);
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* @returns {any}
|
|
45
|
+
*/
|
|
46
|
+
build(nsps) {
|
|
47
|
+
const instance = this.injector.get(this.provider.token);
|
|
48
|
+
const { injectNamespaces, namespace } = this.socketProviderMetadata;
|
|
49
|
+
const nsp = nsps.get(namespace);
|
|
50
|
+
instance.$onConnection && this.socketProviderMetadata.createHook("$onConnection", "connection");
|
|
51
|
+
instance.$onDisconnect && this.socketProviderMetadata.createHook("$onDisconnect", "disconnect");
|
|
52
|
+
instance._nspSession = getNspSession(namespace);
|
|
53
|
+
injectNamespaces.forEach((setting) => {
|
|
54
|
+
instance[setting.propertyKey] = nsps.get(setting.nsp || namespace);
|
|
55
|
+
});
|
|
56
|
+
instance["nsp"] = nsp;
|
|
57
|
+
if (instance.$onNamespaceInit) {
|
|
58
|
+
instance.$onNamespaceInit(nsp);
|
|
59
|
+
}
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
*
|
|
64
|
+
* @param {Socket} socket
|
|
65
|
+
* @param {Namespace} nsp
|
|
66
|
+
*/
|
|
67
|
+
onConnection(socket, nsp) {
|
|
68
|
+
const { socketProviderMetadata } = this;
|
|
69
|
+
const instance = this.injector.get(this.provider.token);
|
|
70
|
+
this.buildHandlers(socket, nsp);
|
|
71
|
+
this.createSession(socket);
|
|
72
|
+
if (instance.$onConnection) {
|
|
73
|
+
this.invoke(instance, socketProviderMetadata.$onConnection, { socket, nsp });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
onDisconnect(socket, nsp) {
|
|
77
|
+
const instance = this.injector.get(this.provider.token);
|
|
78
|
+
const { socketProviderMetadata } = this;
|
|
79
|
+
if (instance.$onDisconnect) {
|
|
80
|
+
this.invoke(instance, socketProviderMetadata.$onDisconnect, { socket, nsp });
|
|
81
|
+
}
|
|
82
|
+
this.destroySession(socket);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
*
|
|
86
|
+
* @param {Socket} socket
|
|
87
|
+
*/
|
|
88
|
+
createSession(socket) {
|
|
89
|
+
const instance = this.injector.get(this.provider.token);
|
|
90
|
+
instance._nspSession.set(socket.id, new Map());
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
*
|
|
94
|
+
* @param {Socket} socket
|
|
95
|
+
*/
|
|
96
|
+
destroySession(socket) {
|
|
97
|
+
const instance = this.injector.get(this.provider.token);
|
|
98
|
+
instance._nspSession.delete(socket.id);
|
|
99
|
+
}
|
|
100
|
+
buildHandlers(socket, nsp) {
|
|
101
|
+
const { socketProviderMetadata } = this;
|
|
102
|
+
socketProviderMetadata.getHandlers().forEach((handler) => {
|
|
103
|
+
const { eventName } = handler;
|
|
104
|
+
if (eventName) {
|
|
105
|
+
socket.on(eventName, (...args) => {
|
|
106
|
+
this.runQueue(handler, args, socket, nsp);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
async runQueue(handlerMetadata, args, socket, nsp) {
|
|
112
|
+
let promise = Promise.resolve(args);
|
|
113
|
+
const instance = this.injector.get(this.provider.token);
|
|
114
|
+
const { useBefore, useAfter } = this.socketProviderMetadata;
|
|
115
|
+
const scope = {
|
|
116
|
+
args,
|
|
117
|
+
socket,
|
|
118
|
+
nsp,
|
|
119
|
+
eventName: handlerMetadata.eventName
|
|
120
|
+
};
|
|
121
|
+
promise = promise.then(() => this.deserialize(handlerMetadata, scope));
|
|
122
|
+
if (useBefore) {
|
|
123
|
+
useBefore.forEach((target) => (promise = this.bindMiddleware(target, scope, promise)));
|
|
124
|
+
}
|
|
125
|
+
if (handlerMetadata.useBefore) {
|
|
126
|
+
handlerMetadata.useBefore.forEach((target) => (promise = this.bindMiddleware(target, scope, promise)));
|
|
127
|
+
}
|
|
128
|
+
promise = promise
|
|
129
|
+
.then(() => this.invoke(instance, handlerMetadata, scope))
|
|
130
|
+
.then(SocketHandlersBuilder.bindResponseMiddleware(handlerMetadata, scope));
|
|
131
|
+
if (handlerMetadata.useAfter) {
|
|
132
|
+
handlerMetadata.useAfter.forEach((target) => (promise = this.bindMiddleware(target, scope, promise)));
|
|
133
|
+
}
|
|
134
|
+
if (useAfter) {
|
|
135
|
+
useAfter.forEach((target) => (promise = this.bindMiddleware(target, scope, promise)));
|
|
136
|
+
}
|
|
137
|
+
return promise.catch((er) => {
|
|
138
|
+
/* istanbul ignore next */
|
|
139
|
+
$log.error(handlerMetadata.eventName, er);
|
|
140
|
+
/* istanbul ignore next */
|
|
141
|
+
process.exit(-1);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
deserialize(handlerMetadata, scope) {
|
|
145
|
+
const { parameters } = handlerMetadata;
|
|
146
|
+
Object.keys(parameters || []).forEach((index) => {
|
|
147
|
+
const { filter, useConverter, mapIndex, type, collectionType } = parameters[index];
|
|
148
|
+
let value = scope.args[mapIndex];
|
|
149
|
+
if (filter === SocketFilters.ARGS && useConverter) {
|
|
150
|
+
value = this.converterService.deserialize(value, { type, collectionType });
|
|
151
|
+
scope.args[mapIndex] = value;
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
bindMiddleware(target, scope, promise) {
|
|
156
|
+
const instance = this.injector.get(target);
|
|
157
|
+
if (instance) {
|
|
158
|
+
const handlerMetadata = new SocketProviderMetadata(Store.from(instance).get("socketIO"));
|
|
159
|
+
if (handlerMetadata.type === SocketProviderTypes.MIDDLEWARE) {
|
|
160
|
+
if (handlerMetadata.error) {
|
|
161
|
+
return promise.catch((error) => this.invoke(instance, handlerMetadata.useHandler, { error, ...scope }));
|
|
162
|
+
}
|
|
163
|
+
return promise
|
|
164
|
+
.then(() => this.invoke(instance, handlerMetadata.useHandler, scope))
|
|
165
|
+
.then((result) => {
|
|
166
|
+
if (result) {
|
|
167
|
+
scope.args = [].concat(result);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return promise;
|
|
173
|
+
}
|
|
174
|
+
async invoke(instance, handlerMetadata, scope) {
|
|
175
|
+
const { methodClassName, parameters } = handlerMetadata;
|
|
176
|
+
return await instance[methodClassName](...this.buildParameters(parameters, scope));
|
|
177
|
+
}
|
|
178
|
+
buildParameters(parameters, scope) {
|
|
179
|
+
return Object.keys(parameters || []).map((index) => {
|
|
180
|
+
const param = parameters[index];
|
|
181
|
+
switch (param.filter) {
|
|
182
|
+
case SocketFilters.ARGS:
|
|
183
|
+
if (param.mapIndex !== undefined) {
|
|
184
|
+
return scope.args[param.mapIndex];
|
|
185
|
+
}
|
|
186
|
+
return scope.args;
|
|
187
|
+
case SocketFilters.EVENT_NAME:
|
|
188
|
+
return scope.eventName;
|
|
189
|
+
case SocketFilters.SOCKET:
|
|
190
|
+
return scope.socket;
|
|
191
|
+
case SocketFilters.NSP:
|
|
192
|
+
return scope.nsp;
|
|
193
|
+
case SocketFilters.ERR:
|
|
194
|
+
return scope.error;
|
|
195
|
+
case SocketFilters.SESSION:
|
|
196
|
+
const instance = this.injector.get(this.provider.token);
|
|
197
|
+
return instance._nspSession.get(scope.socket.id);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=SocketHandlersBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketHandlersBuilder.js","sourceRoot":"","sources":["../../../src/class/SocketHandlersBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import {ConverterService, InjectorService, Provider} from \"@tsed/common\";\nimport {Store} from \"@tsed/core\";\nimport {$log} from \"@tsed/logger\";\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<any>, private converterService: ConverterService, 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 = this.converterService.deserialize(value, {type, collectionType});\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"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export class SocketProviderMetadata {
|
|
2
|
+
constructor(options = {}) {
|
|
3
|
+
this.error = false;
|
|
4
|
+
this.injectNamespaces = [];
|
|
5
|
+
this.useBefore = [];
|
|
6
|
+
this.useAfter = [];
|
|
7
|
+
this.handlers = {};
|
|
8
|
+
options.type && (this.type = options.type);
|
|
9
|
+
options.namespace && (this.namespace = options.namespace);
|
|
10
|
+
options.error && (this.error = options.error);
|
|
11
|
+
options.injectNamespaces && (this.injectNamespaces = options.injectNamespaces);
|
|
12
|
+
options.useBefore && (this.useBefore = options.useBefore);
|
|
13
|
+
options.useAfter && (this.useAfter = options.useAfter);
|
|
14
|
+
options.handlers && (this.handlers = options.handlers);
|
|
15
|
+
}
|
|
16
|
+
get useHandler() {
|
|
17
|
+
return this.get("use");
|
|
18
|
+
}
|
|
19
|
+
get $onConnection() {
|
|
20
|
+
return this.get("$onConnection");
|
|
21
|
+
}
|
|
22
|
+
get $onDisconnect() {
|
|
23
|
+
return this.get("$onDisconnect");
|
|
24
|
+
}
|
|
25
|
+
get(key) {
|
|
26
|
+
return this.handlers[key];
|
|
27
|
+
}
|
|
28
|
+
set(key, metadata) {
|
|
29
|
+
this.handlers[key] = metadata;
|
|
30
|
+
}
|
|
31
|
+
getHandlers() {
|
|
32
|
+
return Object.entries(this.handlers)
|
|
33
|
+
.filter(([key]) => ["$onConnection", "$onDisconnect"].indexOf(key) === -1)
|
|
34
|
+
.map(([, handler]) => handler);
|
|
35
|
+
}
|
|
36
|
+
createHook(hook, eventName) {
|
|
37
|
+
this.set(hook, {
|
|
38
|
+
...(this.get(hook) || {}),
|
|
39
|
+
eventName,
|
|
40
|
+
methodClassName: hook
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=SocketProviderMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketProviderMetadata.js","sourceRoot":"","sources":["../../../src/class/SocketProviderMetadata.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,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","sourcesContent":["import {SocketHandlerMetadata, SocketInjectableNsp} from \"../interfaces\";\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":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,eAAe,CAAC","sourcesContent":["export const PROVIDER_TYPE_SOCKET_SERVICE = \"socketService\";\n"]}
|