@tsed/socketio 7.0.0-alpha.1 → 7.0.0-beta.10

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.
Files changed (233) hide show
  1. package/.mocharc.js +2 -2
  2. package/.nycrc +1 -0
  3. package/lib/{SocketIOModule.js → cjs/SocketIOModule.js} +28 -24
  4. package/lib/cjs/SocketIOModule.js.map +1 -0
  5. package/lib/{class → cjs/class}/SocketHandlersBuilder.js +22 -14
  6. package/lib/cjs/class/SocketHandlersBuilder.js.map +1 -0
  7. package/lib/{class → cjs/class}/SocketProviderMetadata.js +0 -0
  8. package/lib/cjs/class/SocketProviderMetadata.js.map +1 -0
  9. package/lib/{constants/index.js → cjs/constants/constants.js} +1 -1
  10. package/lib/cjs/constants/constants.js.map +1 -0
  11. package/lib/{decorators → cjs/decorators}/args.js +1 -1
  12. package/lib/cjs/decorators/args.js.map +1 -0
  13. package/lib/{decorators → cjs/decorators}/broadcast.js +1 -1
  14. package/lib/cjs/decorators/broadcast.js.map +1 -0
  15. package/lib/{decorators → cjs/decorators}/broadcastOthers.js +1 -1
  16. package/lib/cjs/decorators/broadcastOthers.js.map +1 -0
  17. package/lib/{decorators → cjs/decorators}/emit.js +1 -1
  18. package/lib/cjs/decorators/emit.js.map +1 -0
  19. package/lib/{decorators → cjs/decorators}/input.js +0 -0
  20. package/lib/cjs/decorators/input.js.map +1 -0
  21. package/lib/{decorators → cjs/decorators}/inputAndBroadcast.js +2 -2
  22. package/lib/cjs/decorators/inputAndBroadcast.js.map +1 -0
  23. package/lib/{decorators → cjs/decorators}/inputAndBroadcastOthers.js +2 -2
  24. package/lib/cjs/decorators/inputAndBroadcastOthers.js.map +1 -0
  25. package/lib/{decorators → cjs/decorators}/inputAndEmit.js +2 -2
  26. package/lib/cjs/decorators/inputAndEmit.js.map +1 -0
  27. package/lib/cjs/decorators/io.js +13 -0
  28. package/lib/cjs/decorators/io.js.map +1 -0
  29. package/lib/{decorators → cjs/decorators}/nsp.js +2 -2
  30. package/lib/cjs/decorators/nsp.js.map +1 -0
  31. package/lib/{decorators → cjs/decorators}/socket.js +1 -1
  32. package/lib/cjs/decorators/socket.js.map +1 -0
  33. package/lib/{decorators → cjs/decorators}/socketErr.js +1 -1
  34. package/lib/cjs/decorators/socketErr.js.map +1 -0
  35. package/lib/{decorators → cjs/decorators}/socketEventName.js +1 -1
  36. package/lib/cjs/decorators/socketEventName.js.map +1 -0
  37. package/lib/{decorators → cjs/decorators}/socketFilter.js +0 -0
  38. package/lib/cjs/decorators/socketFilter.js.map +1 -0
  39. package/lib/{decorators → cjs/decorators}/socketMiddleware.js +4 -4
  40. package/lib/cjs/decorators/socketMiddleware.js.map +1 -0
  41. package/lib/{decorators → cjs/decorators}/socketMiddlewareError.js +2 -2
  42. package/lib/cjs/decorators/socketMiddlewareError.js.map +1 -0
  43. package/lib/{decorators → cjs/decorators}/socketReturns.js +0 -0
  44. package/lib/cjs/decorators/socketReturns.js.map +1 -0
  45. package/lib/{decorators → cjs/decorators}/socketService.js +2 -2
  46. package/lib/cjs/decorators/socketService.js.map +1 -0
  47. package/lib/{decorators → cjs/decorators}/socketSession.js +1 -1
  48. package/lib/cjs/decorators/socketSession.js.map +1 -0
  49. package/lib/{decorators → cjs/decorators}/socketUseAfter.js +0 -0
  50. package/lib/cjs/decorators/socketUseAfter.js.map +1 -0
  51. package/lib/{decorators → cjs/decorators}/socketUseBefore.js +0 -0
  52. package/lib/cjs/decorators/socketUseBefore.js.map +1 -0
  53. package/lib/{index.js → cjs/index.js} +21 -10
  54. package/lib/cjs/index.js.map +1 -0
  55. package/lib/{interfaces → cjs/interfaces}/OnNamespaceInit.js +0 -0
  56. package/lib/cjs/interfaces/OnNamespaceInit.js.map +1 -0
  57. package/lib/{interfaces → cjs/interfaces}/SocketFilters.js +0 -0
  58. package/lib/cjs/interfaces/SocketFilters.js.map +1 -0
  59. package/lib/{interfaces → cjs/interfaces}/SocketHandlerMetadata.js +0 -0
  60. package/lib/cjs/interfaces/SocketHandlerMetadata.js.map +1 -0
  61. package/lib/{interfaces → cjs/interfaces}/SocketInjectableNsp.js +0 -0
  62. package/lib/cjs/interfaces/SocketInjectableNsp.js.map +1 -0
  63. package/lib/{interfaces → cjs/interfaces}/SocketParamMetadata.js +0 -0
  64. package/lib/cjs/interfaces/SocketParamMetadata.js.map +1 -0
  65. package/lib/{interfaces → cjs/interfaces}/SocketProviderTypes.js +0 -0
  66. package/lib/cjs/interfaces/SocketProviderTypes.js.map +1 -0
  67. package/lib/{interfaces → cjs/interfaces}/SocketReturnsTypes.js +0 -0
  68. package/lib/cjs/interfaces/SocketReturnsTypes.js.map +1 -0
  69. package/lib/cjs/interfaces/interfaces.js +3 -0
  70. package/lib/cjs/interfaces/interfaces.js.map +1 -0
  71. package/lib/cjs/package.json +3 -0
  72. package/lib/{registries → cjs/registries}/NspSessionRegistry.js +0 -0
  73. package/lib/cjs/registries/NspSessionRegistry.js.map +1 -0
  74. package/lib/{services → cjs/services}/SocketIOServer.js +2 -2
  75. package/lib/cjs/services/SocketIOServer.js.map +1 -0
  76. package/lib/{services → cjs/services}/SocketIOService.js +4 -5
  77. package/lib/cjs/services/SocketIOService.js.map +1 -0
  78. package/lib/esm/SocketIOModule.js +109 -0
  79. package/lib/esm/SocketIOModule.js.map +1 -0
  80. package/lib/esm/class/SocketHandlersBuilder.js +207 -0
  81. package/lib/esm/class/SocketHandlersBuilder.js.map +1 -0
  82. package/lib/esm/class/SocketProviderMetadata.js +44 -0
  83. package/lib/esm/class/SocketProviderMetadata.js.map +1 -0
  84. package/lib/esm/constants/constants.js +2 -0
  85. package/lib/esm/constants/constants.js.map +1 -0
  86. package/lib/esm/decorators/args.js +57 -0
  87. package/lib/esm/decorators/args.js.map +1 -0
  88. package/lib/esm/decorators/broadcast.js +28 -0
  89. package/lib/esm/decorators/broadcast.js.map +1 -0
  90. package/lib/esm/decorators/broadcastOthers.js +28 -0
  91. package/lib/esm/decorators/broadcastOthers.js.map +1 -0
  92. package/lib/esm/decorators/emit.js +28 -0
  93. package/lib/esm/decorators/emit.js.map +1 -0
  94. package/lib/esm/decorators/input.js +33 -0
  95. package/lib/esm/decorators/input.js.map +1 -0
  96. package/lib/esm/decorators/inputAndBroadcast.js +28 -0
  97. package/lib/esm/decorators/inputAndBroadcast.js.map +1 -0
  98. package/lib/esm/decorators/inputAndBroadcastOthers.js +28 -0
  99. package/lib/esm/decorators/inputAndBroadcastOthers.js.map +1 -0
  100. package/lib/esm/decorators/inputAndEmit.js +28 -0
  101. package/lib/esm/decorators/inputAndEmit.js.map +1 -0
  102. package/lib/esm/decorators/io.js +9 -0
  103. package/lib/esm/decorators/io.js.map +1 -0
  104. package/lib/esm/decorators/nsp.js +83 -0
  105. package/lib/esm/decorators/nsp.js.map +1 -0
  106. package/lib/esm/decorators/socket.js +28 -0
  107. package/lib/esm/decorators/socket.js.map +1 -0
  108. package/lib/esm/decorators/socketErr.js +26 -0
  109. package/lib/esm/decorators/socketErr.js.map +1 -0
  110. package/lib/esm/decorators/socketEventName.js +26 -0
  111. package/lib/esm/decorators/socketEventName.js.map +1 -0
  112. package/lib/esm/decorators/socketFilter.js +25 -0
  113. package/lib/esm/decorators/socketFilter.js.map +1 -0
  114. package/lib/esm/decorators/socketMiddleware.js +70 -0
  115. package/lib/esm/decorators/socketMiddleware.js.map +1 -0
  116. package/lib/esm/decorators/socketMiddlewareError.js +67 -0
  117. package/lib/esm/decorators/socketMiddlewareError.js.map +1 -0
  118. package/lib/esm/decorators/socketReturns.js +23 -0
  119. package/lib/esm/decorators/socketReturns.js.map +1 -0
  120. package/lib/esm/decorators/socketService.js +20 -0
  121. package/lib/esm/decorators/socketService.js.map +1 -0
  122. package/lib/esm/decorators/socketSession.js +27 -0
  123. package/lib/esm/decorators/socketSession.js.map +1 -0
  124. package/lib/esm/decorators/socketUseAfter.js +70 -0
  125. package/lib/esm/decorators/socketUseAfter.js.map +1 -0
  126. package/lib/esm/decorators/socketUseBefore.js +74 -0
  127. package/lib/esm/decorators/socketUseBefore.js.map +1 -0
  128. package/lib/esm/index.js +40 -0
  129. package/lib/esm/index.js.map +1 -0
  130. package/lib/esm/interfaces/OnNamespaceInit.js +2 -0
  131. package/lib/esm/interfaces/OnNamespaceInit.js.map +1 -0
  132. package/lib/esm/interfaces/SocketFilters.js +13 -0
  133. package/lib/esm/interfaces/SocketFilters.js.map +1 -0
  134. package/lib/esm/interfaces/SocketHandlerMetadata.js +2 -0
  135. package/lib/esm/interfaces/SocketHandlerMetadata.js.map +1 -0
  136. package/lib/esm/interfaces/SocketInjectableNsp.js +2 -0
  137. package/lib/esm/interfaces/SocketInjectableNsp.js.map +1 -0
  138. package/lib/esm/interfaces/SocketParamMetadata.js +2 -0
  139. package/lib/esm/interfaces/SocketParamMetadata.js.map +1 -0
  140. package/lib/esm/interfaces/SocketProviderTypes.js +9 -0
  141. package/lib/esm/interfaces/SocketProviderTypes.js.map +1 -0
  142. package/lib/esm/interfaces/SocketReturnsTypes.js +10 -0
  143. package/lib/esm/interfaces/SocketReturnsTypes.js.map +1 -0
  144. package/lib/esm/interfaces/interfaces.js +2 -0
  145. package/lib/esm/interfaces/interfaces.js.map +1 -0
  146. package/lib/esm/package.json +3 -0
  147. package/lib/esm/registries/NspSessionRegistry.js +12 -0
  148. package/lib/esm/registries/NspSessionRegistry.js.map +1 -0
  149. package/lib/esm/services/SocketIOServer.js +12 -0
  150. package/lib/esm/services/SocketIOServer.js.map +1 -0
  151. package/lib/esm/services/SocketIOService.js +63 -0
  152. package/lib/esm/services/SocketIOService.js.map +1 -0
  153. package/lib/types/SocketIOModule.d.ts +28 -0
  154. package/lib/{class → types/class}/SocketHandlersBuilder.d.ts +2 -3
  155. package/lib/{class → types/class}/SocketProviderMetadata.d.ts +2 -1
  156. package/lib/{constants/index.d.ts → types/constants/constants.d.ts} +0 -0
  157. package/lib/{decorators → types/decorators}/args.d.ts +0 -0
  158. package/lib/{decorators → types/decorators}/broadcast.d.ts +0 -0
  159. package/lib/{decorators → types/decorators}/broadcastOthers.d.ts +0 -0
  160. package/lib/{decorators → types/decorators}/emit.d.ts +0 -0
  161. package/lib/{decorators → types/decorators}/input.d.ts +0 -0
  162. package/lib/{decorators → types/decorators}/inputAndBroadcast.d.ts +0 -0
  163. package/lib/{decorators → types/decorators}/inputAndBroadcastOthers.d.ts +0 -0
  164. package/lib/{decorators → types/decorators}/inputAndEmit.d.ts +0 -0
  165. package/lib/{decorators → types/decorators}/io.d.ts +1 -0
  166. package/lib/{decorators → types/decorators}/nsp.d.ts +0 -0
  167. package/lib/{decorators → types/decorators}/socket.d.ts +0 -0
  168. package/lib/{decorators → types/decorators}/socketErr.d.ts +0 -0
  169. package/lib/{decorators → types/decorators}/socketEventName.d.ts +0 -0
  170. package/lib/{decorators → types/decorators}/socketFilter.d.ts +0 -0
  171. package/lib/{decorators → types/decorators}/socketMiddleware.d.ts +0 -0
  172. package/lib/{decorators → types/decorators}/socketMiddlewareError.d.ts +0 -0
  173. package/lib/{decorators → types/decorators}/socketReturns.d.ts +0 -0
  174. package/lib/{decorators → types/decorators}/socketService.d.ts +0 -0
  175. package/lib/{decorators → types/decorators}/socketSession.d.ts +0 -0
  176. package/lib/{decorators → types/decorators}/socketUseAfter.d.ts +0 -0
  177. package/lib/{decorators → types/decorators}/socketUseBefore.d.ts +0 -0
  178. package/lib/{index.d.ts → types/index.d.ts} +21 -7
  179. package/lib/{interfaces → types/interfaces}/OnNamespaceInit.d.ts +0 -0
  180. package/lib/{interfaces → types/interfaces}/SocketFilters.d.ts +0 -0
  181. package/lib/{interfaces → types/interfaces}/SocketHandlerMetadata.d.ts +0 -0
  182. package/lib/{interfaces → types/interfaces}/SocketInjectableNsp.d.ts +0 -0
  183. package/lib/{interfaces → types/interfaces}/SocketParamMetadata.d.ts +0 -0
  184. package/lib/{interfaces → types/interfaces}/SocketProviderTypes.d.ts +0 -0
  185. package/lib/{interfaces → types/interfaces}/SocketReturnsTypes.d.ts +0 -0
  186. package/lib/types/interfaces/interfaces.d.ts +8 -0
  187. package/lib/{registries → types/registries}/NspSessionRegistry.d.ts +0 -0
  188. package/lib/{services → types/services}/SocketIOServer.d.ts +0 -0
  189. package/lib/{services → types/services}/SocketIOService.d.ts +2 -3
  190. package/package.json +45 -22
  191. package/readme.md +80 -96
  192. package/tsconfig.compile.esm.json +12 -0
  193. package/lib/SocketIOModule.d.ts +0 -29
  194. package/lib/SocketIOModule.js.map +0 -1
  195. package/lib/class/SocketHandlersBuilder.js.map +0 -1
  196. package/lib/class/SocketProviderMetadata.js.map +0 -1
  197. package/lib/constants/index.js.map +0 -1
  198. package/lib/decorators/args.js.map +0 -1
  199. package/lib/decorators/broadcast.js.map +0 -1
  200. package/lib/decorators/broadcastOthers.js.map +0 -1
  201. package/lib/decorators/emit.js.map +0 -1
  202. package/lib/decorators/input.js.map +0 -1
  203. package/lib/decorators/inputAndBroadcast.js.map +0 -1
  204. package/lib/decorators/inputAndBroadcastOthers.js.map +0 -1
  205. package/lib/decorators/inputAndEmit.js.map +0 -1
  206. package/lib/decorators/io.js +0 -27
  207. package/lib/decorators/io.js.map +0 -1
  208. package/lib/decorators/nsp.js.map +0 -1
  209. package/lib/decorators/socket.js.map +0 -1
  210. package/lib/decorators/socketErr.js.map +0 -1
  211. package/lib/decorators/socketEventName.js.map +0 -1
  212. package/lib/decorators/socketFilter.js.map +0 -1
  213. package/lib/decorators/socketMiddleware.js.map +0 -1
  214. package/lib/decorators/socketMiddlewareError.js.map +0 -1
  215. package/lib/decorators/socketReturns.js.map +0 -1
  216. package/lib/decorators/socketService.js.map +0 -1
  217. package/lib/decorators/socketSession.js.map +0 -1
  218. package/lib/decorators/socketUseAfter.js.map +0 -1
  219. package/lib/decorators/socketUseBefore.js.map +0 -1
  220. package/lib/index.js.map +0 -1
  221. package/lib/interfaces/OnNamespaceInit.js.map +0 -1
  222. package/lib/interfaces/SocketFilters.js.map +0 -1
  223. package/lib/interfaces/SocketHandlerMetadata.js.map +0 -1
  224. package/lib/interfaces/SocketInjectableNsp.js.map +0 -1
  225. package/lib/interfaces/SocketParamMetadata.js.map +0 -1
  226. package/lib/interfaces/SocketProviderTypes.js.map +0 -1
  227. package/lib/interfaces/SocketReturnsTypes.js.map +0 -1
  228. package/lib/interfaces/index.d.ts +0 -15
  229. package/lib/interfaces/index.js +0 -11
  230. package/lib/interfaces/index.js.map +0 -1
  231. package/lib/registries/NspSessionRegistry.js.map +0 -1
  232. package/lib/services/SocketIOServer.js.map +0 -1
  233. package/lib/services/SocketIOService.js.map +0 -1
@@ -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"]}
@@ -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":"AAIA,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} 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,2 @@
1
+ export const PROVIDER_TYPE_SOCKET_SERVICE = "socketService";
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,eAAe,CAAC","sourcesContent":["export const PROVIDER_TYPE_SOCKET_SERVICE = \"socketService\";\n"]}
@@ -0,0 +1,57 @@
1
+ import { isCollection, Metadata, Store } from "@tsed/core";
2
+ import { SocketFilters } from "../interfaces/SocketFilters.js";
3
+ /**
4
+ * Inject the list of arguments in the decorated parameter.
5
+ *
6
+ * `@Args` accept an index parameter to pick up directly the item in the arguments list.
7
+ *
8
+ * ### Example
9
+ *
10
+ * ```typescript
11
+ * @SocketService("/nsp")
12
+ * export class MyWS {
13
+ *
14
+ * @Input("event")
15
+ * myMethod(@Args() arguments: any[]) {
16
+ *
17
+ * }
18
+ *
19
+ * @Input("event2")
20
+ * myMethod2(@Args(0) data: any) {
21
+ *
22
+ * }
23
+ * }
24
+ * ```
25
+ *
26
+ * @decorator
27
+ * @param mapIndex
28
+ * @param useType
29
+ */
30
+ export function Args(mapIndex, useType) {
31
+ return (target, propertyKey, index) => {
32
+ const store = Store.from(target);
33
+ const type = Metadata.getParamTypes(target, propertyKey)[index];
34
+ const param = {
35
+ filter: SocketFilters.ARGS,
36
+ useConverter: false
37
+ };
38
+ if (mapIndex !== undefined) {
39
+ Object.assign(param, {
40
+ mapIndex,
41
+ useConverter: true,
42
+ type: useType || type,
43
+ collectionType: isCollection(type) ? type : undefined
44
+ });
45
+ }
46
+ store.merge("socketIO", {
47
+ handlers: {
48
+ [propertyKey]: {
49
+ parameters: {
50
+ [index]: param
51
+ }
52
+ }
53
+ }
54
+ });
55
+ };
56
+ }
57
+ //# sourceMappingURL=args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/decorators/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAC,MAAM,YAAY,CAAC;AACzD,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,IAAI,CAAC,QAAiB,EAAE,OAAa;IACnD,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,KAAa,EAAE,EAAE;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG;YACZ,MAAM,EAAE,aAAa,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,YAAY,CAAC,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","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"]}
@@ -0,0 +1,28 @@
1
+ import { SocketReturnsTypes } from "../interfaces/SocketReturnsTypes.js";
2
+ import { SocketReturns } from "./socketReturns.js";
3
+ /**
4
+ * Broadcast the response for all client registered in the same namespace.
5
+ *
6
+ * With the `@Broadcast` decorator, the method will accept a return type (Promise or not).
7
+ *
8
+ * ### Example
9
+ *
10
+ * ```typescript
11
+ * @SocketService("/nsp")
12
+ * export class MyWS {
13
+ *
14
+ * @Input("event")
15
+ * @Broadcast("returnEvent")
16
+ * async myMethod(@Args(0) data: any, @Nsp socket): Promise<any> {
17
+ * return Promise.resolve({data})
18
+ * }
19
+ * }
20
+ * ```
21
+ *
22
+ * @decorator
23
+ * @param eventName
24
+ */
25
+ export function Broadcast(eventName) {
26
+ return SocketReturns(eventName, SocketReturnsTypes.BROADCAST);
27
+ }
28
+ //# sourceMappingURL=broadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../../src/decorators/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO,aAAa,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAChE,CAAC","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"]}
@@ -0,0 +1,28 @@
1
+ import { SocketReturnsTypes } from "../interfaces/SocketReturnsTypes.js";
2
+ import { SocketReturns } from "./socketReturns.js";
3
+ /**
4
+ * Broadcast the response for all client registered in the same namespace except to the current client.
5
+ *
6
+ * With the `@BroadcastOthers` decorator, the method will accept a return type (Promise or not).
7
+ *
8
+ * ### Example
9
+ *
10
+ * ```typescript
11
+ * @SocketService("/nsp")
12
+ * export class MyWS {
13
+ *
14
+ * @Input("event")
15
+ * @BroadcastOthers("returnEvent")
16
+ * async myMethod(@Args(0) data: any, @Nsp socket): Promise<any> {
17
+ * return Promise.resolve({data})
18
+ * }
19
+ * }
20
+ * ```
21
+ *
22
+ * @decorator
23
+ * @param eventName
24
+ */
25
+ export function BroadcastOthers(eventName) {
26
+ return SocketReturns(eventName, SocketReturnsTypes.BROADCAST_OTHERS);
27
+ }
28
+ //# sourceMappingURL=broadcastOthers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcastOthers.js","sourceRoot":"","sources":["../../../src/decorators/broadcastOthers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,aAAa,CAAC,SAAS,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AACvE,CAAC","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"]}
@@ -0,0 +1,28 @@
1
+ import { SocketReturnsTypes } from "../interfaces/SocketReturnsTypes.js";
2
+ import { SocketReturns } from "./socketReturns.js";
3
+ /**
4
+ * Emit the response to the client.
5
+ *
6
+ * With the `@Emit` decorator, the method will accept a return type (Promise or not).
7
+ *
8
+ * ### Example
9
+ *
10
+ * ```typescript
11
+ * @SocketService("/nsp")
12
+ * export class MyWS {
13
+ *
14
+ * @Input("event")
15
+ * @Emit("returnEvent")
16
+ * async myMethod(@Args(0) data: any, @Nsp socket): Promise<any> {
17
+ * return Promise.resolve({data})
18
+ * }
19
+ * }
20
+ * ```
21
+ *
22
+ * @decorator
23
+ * @param eventName
24
+ */
25
+ export function Emit(eventName) {
26
+ return SocketReturns(eventName, SocketReturnsTypes.EMIT);
27
+ }
28
+ //# sourceMappingURL=emit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../../src/decorators/emit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,IAAI,CAAC,SAAiB;IACpC,OAAO,aAAa,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC","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"]}
@@ -0,0 +1,33 @@
1
+ import { Store } from "@tsed/core";
2
+ /**
3
+ * Attach the decorated method to the socket event.
4
+ *
5
+ * ### Example
6
+ *
7
+ * ```typescript
8
+ * @SocketService("/nsp")
9
+ * export class MyWS {
10
+ *
11
+ * @Input("event")
12
+ * myMethod(@Args(0) data: any, @Nsp socket) {
13
+ *
14
+ * }
15
+ * }
16
+ * ```
17
+ *
18
+ * @decorator
19
+ * @param eventName
20
+ */
21
+ export function Input(eventName) {
22
+ return (target, propertyKey, descriptor) => {
23
+ Store.from(target).merge("socketIO", {
24
+ handlers: {
25
+ [propertyKey]: {
26
+ eventName,
27
+ methodClassName: propertyKey
28
+ }
29
+ }
30
+ });
31
+ };
32
+ }
33
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/decorators/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,KAAK,CAAC,SAAiB;IACrC,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QAC1E,KAAK,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","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"]}
@@ -0,0 +1,28 @@
1
+ import { Broadcast } from "./broadcast.js";
2
+ import { Input } from "./input.js";
3
+ /**
4
+ * Attach the decorated method to the socket event and broadcast the response to all clients.
5
+ *
6
+ * ### Example
7
+ *
8
+ * ```typescript
9
+ * @SocketService("/nsp")
10
+ * export class MyWS {
11
+ *
12
+ * @InputAndBroadcast("event")
13
+ * async myMethod(@Args(0) data: any, @Nsp socket) {
14
+ * return {data: "data"};
15
+ * }
16
+ * }
17
+ * ```
18
+ *
19
+ * @decorator
20
+ * @param eventName
21
+ */
22
+ export function InputAndBroadcast(eventName) {
23
+ return (target, propertyKey, descriptor) => {
24
+ Input(eventName)(target, propertyKey, descriptor);
25
+ Broadcast(eventName)(target, propertyKey, descriptor);
26
+ };
27
+ }
28
+ //# sourceMappingURL=inputAndBroadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputAndBroadcast.js","sourceRoot":"","sources":["../../../src/decorators/inputAndBroadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QAC1E,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC","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"]}
@@ -0,0 +1,28 @@
1
+ import { BroadcastOthers } from "./broadcastOthers.js";
2
+ import { Input } from "./input.js";
3
+ /**
4
+ * Attach the decorated method to the socket event and broadcast the response to all clients with the exception of the connected customer.
5
+ *
6
+ * ### Example
7
+ *
8
+ * ```typescript
9
+ * @SocketService("/nsp")
10
+ * export class MyWS {
11
+ *
12
+ * @InputAndBroadcastOthers("event")
13
+ * async myMethod(@Args(0) data: any, @Nsp socket) {
14
+ * return {data: "data"};
15
+ * }
16
+ * }
17
+ * ```
18
+ *
19
+ * @decorator
20
+ * @param eventName
21
+ */
22
+ export function InputAndBroadcastOthers(eventName) {
23
+ return (target, propertyKey, descriptor) => {
24
+ Input(eventName)(target, propertyKey, descriptor);
25
+ BroadcastOthers(eventName)(target, propertyKey, descriptor);
26
+ };
27
+ }
28
+ //# sourceMappingURL=inputAndBroadcastOthers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputAndBroadcastOthers.js","sourceRoot":"","sources":["../../../src/decorators/inputAndBroadcastOthers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAiB;IACvD,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QAC1E,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC","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"]}
@@ -0,0 +1,28 @@
1
+ import { Emit } from "./emit.js";
2
+ import { Input } from "./input.js";
3
+ /**
4
+ * Attach the decorated method to the socket event and emit the response to the client.
5
+ *
6
+ * ### Example
7
+ *
8
+ * ```typescript
9
+ * @SocketService("/nsp")
10
+ * export class MyWS {
11
+ *
12
+ * @InputAndEmit("event")
13
+ * async myMethod(@Args(0) data: any, @Nsp socket) {
14
+ * return {data: "data"};
15
+ * }
16
+ * }
17
+ * ```
18
+ *
19
+ * @decorator
20
+ * @param eventName
21
+ */
22
+ export function InputAndEmit(eventName) {
23
+ return (target, propertyKey, descriptor) => {
24
+ Input(eventName)(target, propertyKey, descriptor);
25
+ Emit(eventName)(target, propertyKey, descriptor);
26
+ };
27
+ }
28
+ //# sourceMappingURL=inputAndEmit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputAndEmit.js","sourceRoot":"","sources":["../../../src/decorators/inputAndEmit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QAC1E,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC","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,9 @@
1
+ import { Inject } from "@tsed/di";
2
+ import { Server } from "../services/SocketIOServer.js";
3
+ export function IO(target, targetKey, descriptor) {
4
+ if (target) {
5
+ return Inject(Server)(target, targetKey, descriptor);
6
+ }
7
+ return Inject(Server);
8
+ }
9
+ //# sourceMappingURL=io.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../../../src/decorators/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAC;AAqBlD,MAAM,UAAU,EAAE,CAAC,MAAkB,EAAE,SAAkB,EAAE,UAAuD;IAChH,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;KACtD;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC","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"]}
@@ -0,0 +1,83 @@
1
+ import { decoratorTypeOf, DecoratorTypes, Store } from "@tsed/core";
2
+ import { SocketFilters } from "../interfaces/SocketFilters.js";
3
+ import { SocketFilter } from "./socketFilter.js";
4
+ /**
5
+ * Inject the [SocketIO.Namespace](https://socket.io/docs/rooms-and-namespaces/#namespaces) instance in the decorated parameter.
6
+ *
7
+ * ### Example
8
+ *
9
+ * ```typescript
10
+ * import {Nsp, SocketService, Input} from "@tsed/socketio";
11
+ *
12
+ * @SocketService("/nsp")
13
+ * export class MyWS {
14
+ *
15
+ * @Nsp
16
+ * nsp: SocketIO.Namespace; // will inject SocketIO.Namespace (not available on constructor)
17
+ *
18
+ * @Nsp("/my-other-namespace")
19
+ * nspOther: SocketIO.Namespace; // communication between two namespace
20
+ *
21
+ * @Input("event")
22
+ * myMethod(@Nsp namespace: SocketIO.Namespace) {
23
+ *
24
+ * }
25
+ * }
26
+ * ```
27
+ *
28
+ * @param target
29
+ * @param {string} propertyKey
30
+ * @param {number} index
31
+ * @decorator
32
+ */
33
+ export function Nsp(target, propertyKey, index) {
34
+ return Namespace(target, propertyKey, index);
35
+ }
36
+ /**
37
+ * Inject the [SocketIO.Namespace](https://socket.io/docs/rooms-and-namespaces/#namespaces) instance in the decorated parameter.
38
+ *
39
+ * ### Example
40
+ *
41
+ * ```typescript
42
+ * import {Namespace, SocketService, Input} from "@tsed/socketio";
43
+ *
44
+ * @SocketService("/nsp")
45
+ * export class MyWS {
46
+ *
47
+ * @Nsp
48
+ * nsp: Namespace; // will inject SocketIO.Namespace (not available on constructor)
49
+ *
50
+ * @Nsp("/my-other-namespace")
51
+ * nspOther: Namespace; // communication between two namespace
52
+ *
53
+ * @Input("event")
54
+ * myMethod(@Namespace namespace: Namespace) {
55
+ *
56
+ * }
57
+ * }
58
+ * ```
59
+ *
60
+ * @param target
61
+ * @param {string} propertyKey
62
+ * @param {number} index
63
+ * @alias {Nsp}
64
+ * @decorator
65
+ */
66
+ export function Namespace(target, propertyKey, index) {
67
+ if (typeof target === "string") {
68
+ const nsp = target;
69
+ return (target, propertyKey) => {
70
+ Store.from(target).merge("socketIO", {
71
+ injectNamespaces: [{ propertyKey, nsp }]
72
+ });
73
+ };
74
+ }
75
+ if (decoratorTypeOf([target, propertyKey, index]) === DecoratorTypes.PROP) {
76
+ Store.from(target).merge("socketIO", {
77
+ injectNamespaces: [{ propertyKey }]
78
+ });
79
+ return;
80
+ }
81
+ return SocketFilter(SocketFilters.NSP)(target, propertyKey, index);
82
+ }
83
+ //# sourceMappingURL=nsp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nsp.js","sourceRoot":"","sources":["../../../src/decorators/nsp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,cAAc,EAAE,KAAK,EAAC,MAAM,YAAY,CAAC;AAElE,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,GAAG,CAAC,MAAW,EAAE,WAAoB,EAAE,KAAc;IACnE,OAAO,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,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,KAAK,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,eAAe,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,KAAK,cAAc,CAAC,IAAI,EAAE;QACzE,KAAK,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,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAY,EAAE,KAAM,CAAC,CAAC;AACvE,CAAC","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"]}
@@ -0,0 +1,28 @@
1
+ import { SocketFilters } from "../interfaces/SocketFilters.js";
2
+ import { SocketFilter } from "./socketFilter.js";
3
+ /**
4
+ * Inject the Socket instance in the decorated parameter.
5
+ *
6
+ * ### Example
7
+ *
8
+ * ```typescript
9
+ * @SocketService("/nsp")
10
+ * export class MyWS {
11
+ *
12
+ * @Input("event")
13
+ * myMethod(@Socket socket) {
14
+ *
15
+ * }
16
+ * }
17
+ * ```
18
+ *
19
+ * @experimental
20
+ * @param target
21
+ * @param {string} propertyKey
22
+ * @param {number} index
23
+ * @decorator
24
+ */
25
+ export function Socket(target, propertyKey, index) {
26
+ return SocketFilter(SocketFilters.SOCKET)(target, propertyKey, index);
27
+ }
28
+ //# sourceMappingURL=socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/decorators/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAI5C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,MAAM,CAAC,MAAW,EAAE,WAAmB,EAAE,KAAa;IACpE,OAAO,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AACxE,CAAC","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"]}
@@ -0,0 +1,26 @@
1
+ import { SocketFilters } from "../interfaces/SocketFilters.js";
2
+ import { SocketFilter } from "./socketFilter.js";
3
+ /**
4
+ * Inject the error in the parameters
5
+ *
6
+ * ### Example
7
+ *
8
+ * ```typescript
9
+ * @SocketMiddlewareError()
10
+ * export class MyMiddleware {
11
+ *
12
+ * myMethod(@SocketErr err: any, @Args() arguments: any[]) {
13
+ *
14
+ * }
15
+ * }
16
+ * ```
17
+ *
18
+ * @decorator
19
+ * @param target
20
+ * @param propertyKey
21
+ * @param index
22
+ */
23
+ export function SocketErr(target, propertyKey, index) {
24
+ return SocketFilter(SocketFilters.ERR)(target, propertyKey, index);
25
+ }
26
+ //# sourceMappingURL=socketErr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socketErr.js","sourceRoot":"","sources":["../../../src/decorators/socketErr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,SAAS,CAAC,MAAW,EAAE,WAAmB,EAAE,KAAa;IACvE,OAAO,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC","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"]}
@@ -0,0 +1,26 @@
1
+ import { SocketFilters } from "../interfaces/SocketFilters.js";
2
+ import { SocketFilter } from "./socketFilter.js";
3
+ /**
4
+ * Inject the Socket instance in the decorated parameter.
5
+ *
6
+ * ### Example
7
+ *
8
+ * ```typescript
9
+ * @SocketMiddleware("/nsp")
10
+ * export class MyMiddleware {
11
+ * use(@SocketEventName eventName: string) {
12
+ *
13
+ * }
14
+ * }
15
+ * ```
16
+ *
17
+ * @experimental
18
+ * @param target
19
+ * @param {string} propertyKey
20
+ * @param {number} index
21
+ * @decorator
22
+ */
23
+ export function SocketEventName(target, propertyKey, index) {
24
+ return SocketFilter(SocketFilters.EVENT_NAME)(target, propertyKey, index);
25
+ }
26
+ //# sourceMappingURL=socketEventName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socketEventName.js","sourceRoot":"","sources":["../../../src/decorators/socketEventName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe,CAAC,MAAW,EAAE,WAAmB,EAAE,KAAa;IAC7E,OAAO,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC5E,CAAC","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"]}