@nestjs/platform-ws 10.3.10 → 10.4.1

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/Readme.md CHANGED
@@ -91,10 +91,10 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
91
91
 
92
92
  <table style="text-align:center;">
93
93
  <tr>
94
- <td><a href="https://n.inc" target="_blank"><img src="https://nestjs.com/img/logos/n-inc-logo.svg" width="90" valign="middle" /></a></td>
95
- <td><a href="https://twistag.com/" target="_blank"><img src="https://nestjs.com/img/logos/twistag-logo.png" width="120" valign="middle" /></a></td>
96
- <td><a href="https://www.dinii.jp/" target="_blank"><img src="https://nestjs.com/img/logos/dinii-logo.png" width="75" valign="middle" /></a></td>
97
- <td><a href="https://www.mercedes-benz.com/" target="_blank"><img src="https://nestjs.com/img/logos/mercedes-logo.png" width="110" valign="middle" /></a></td>
94
+ <td><a href="https://www.mercedes-benz.com/" target="_blank"><img src="https://nestjs.com/img/logos/mercedes-logo.png" width="100" valign="middle" /></a></td>
95
+ <td><a href="https://www.dinii.jp/" target="_blank"><img src="https://nestjs.com/img/logos/dinii-logo.png" width="65" valign="middle" /></a></td>
96
+ <td><a href="https://bloodycase.com/?promocode=NEST" target="_blank"><img src="https://nestjs.com/img/logos/bloodycase-logo.png" width="65" valign="middle" /></a></td>
97
+ <td><a href="https://handsontable.com/docs/react-data-grid/?utm_source=NestJS_GH&utm_medium=sponsorship&utm_campaign=library_sponsorship_2024" target="_blank"><img src="https://nestjs.com/img/logos/handsontable-logo.svg" width="150" valign="middle" /></a></td>
98
98
  </tr>
99
99
  </table>
100
100
 
@@ -126,10 +126,12 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
126
126
  <td align="center" valign="middle"><a href="https://www.hingehealth.com/" target="_blank"><img src="https://nestjs.com/img/logos/hinge-health-logo.svg" width="100" valign="middle" /></a></td>
127
127
  </tr>
128
128
  <tr>
129
- <td align="center" valign="middle"><a href="https://julienferand.dev/" target="_blank"><img src="https://nestjs.com/img/logos/julienferand-logo.jpeg" width="65" valign="middle" /></a></td>
129
+ <td align="center" valign="middle"><a href="https://julienferand.dev/" target="_blank"><img src="https://nestjs.com/img/logos/julienferand-logo.jpeg" width="55" valign="middle" /></a></td>
130
130
  <td align="center" valign="middle"><a href="https://www.tripoffice.com/" target="_blank"><img src="https://nestjs.com/img/logos/tripoffice-logo.png" width="140" valign="middle" /></a></td>
131
131
  <td align="center" valign="middle"><a href="https://solcellsforetag.se/" target="_blank"><img src="https://nestjs.com/img/logos/solcellsforetag-logo.svg" width="140" valign="middle" /></a></td>
132
132
  <td align="center" valign="middle"><a href="https://www.itflashcards.com/" target="_blank"><img src="https://nestjs.com/img/logos/it_flashcards-logo.png" width="150" valign="middle" /></a></td>
133
+ <td align="center" valign="middle"><a href="https://www.route4me.com/" target="_blank"><img src="https://nestjs.com/img/logos/route4me-logo.svg" width="100" valign="middle" /></a></td>
134
+ <td align="center" valign="middle"><a href="https://www.slotsup.com/" target="_blank"><img src="https://nestjs.com/img/logos/slotsup-logo.png" width="60" valign="middle" /></a></td>
133
135
  </tr>
134
136
  </table>
135
137
 
@@ -19,7 +19,7 @@ export declare class WsAdapter extends AbstractWsAdapter {
19
19
  path?: string;
20
20
  }): any;
21
21
  bindMessageHandlers(client: any, handlers: MessageMappingProperties[], transform: (data: any) => Observable<any>): void;
22
- bindMessageHandler(buffer: any, handlers: MessageMappingProperties[], transform: (data: any) => Observable<any>): Observable<any>;
22
+ bindMessageHandler(buffer: any, handlersMap: Map<string, MessageMappingProperties>, transform: (data: any) => Observable<any>): Observable<any>;
23
23
  bindErrorHandler(server: any): any;
24
24
  bindClientDisconnect(client: any, callback: Function): void;
25
25
  close(server: any): Promise<void>;
@@ -69,8 +69,10 @@ class WsAdapter extends websockets_1.AbstractWsAdapter {
69
69
  return wsServer;
70
70
  }
71
71
  bindMessageHandlers(client, handlers, transform) {
72
+ const handlersMap = new Map();
73
+ handlers.forEach(handler => handlersMap.set(handler.message, handler));
72
74
  const close$ = (0, rxjs_1.fromEvent)(client, constants_1.CLOSE_EVENT).pipe((0, operators_1.share)(), (0, operators_1.first)());
73
- const source$ = (0, rxjs_1.fromEvent)(client, 'message').pipe((0, operators_1.mergeMap)(data => this.bindMessageHandler(data, handlers, transform).pipe((0, operators_1.filter)(result => !(0, shared_utils_1.isNil)(result)))), (0, operators_1.takeUntil)(close$));
75
+ const source$ = (0, rxjs_1.fromEvent)(client, 'message').pipe((0, operators_1.mergeMap)(data => this.bindMessageHandler(data, handlersMap, transform).pipe((0, operators_1.filter)(result => !(0, shared_utils_1.isNil)(result)))), (0, operators_1.takeUntil)(close$));
74
76
  const onMessage = (response) => {
75
77
  if (client.readyState !== READY_STATE.OPEN_STATE) {
76
78
  return;
@@ -79,10 +81,10 @@ class WsAdapter extends websockets_1.AbstractWsAdapter {
79
81
  };
80
82
  source$.subscribe(onMessage);
81
83
  }
82
- bindMessageHandler(buffer, handlers, transform) {
84
+ bindMessageHandler(buffer, handlersMap, transform) {
83
85
  try {
84
86
  const message = JSON.parse(buffer.data);
85
- const messageHandler = handlers.find(handler => handler.message === message.event);
87
+ const messageHandler = handlersMap.get(message.event);
86
88
  const { callback } = messageHandler;
87
89
  return transform(callback(message.data, message.event));
88
90
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestjs/platform-ws",
3
- "version": "10.3.10",
3
+ "version": "10.4.1",
4
4
  "description": "Nest - modern, fast, powerful node.js web framework (@platform-ws)",
5
5
  "author": "Kamil Mysliwiec",
6
6
  "license": "MIT",
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "tslib": "2.6.3",
22
- "ws": "8.17.1"
22
+ "ws": "8.18.0"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "@nestjs/common": "^10.0.0",