@vercube/ws 1.0.0-beta.2 → 1.1.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/dist/index.d.mts CHANGED
@@ -148,6 +148,10 @@ declare class WebsocketService {
148
148
  */
149
149
  private readonly gValidationProvider;
150
150
  private readonly gLogger;
151
+ /**
152
+ * Lazily-created `crossws` Node adapter used for raw Node HTTP upgrades (dev server).
153
+ */
154
+ private fNodeAdapter?;
151
155
  /**
152
156
  * Internal namespace registry
153
157
  */
package/dist/index.mjs CHANGED
@@ -33,7 +33,7 @@ let WebsocketTypes;
33
33
  }({});
34
34
  })(WebsocketTypes || (WebsocketTypes = {}));
35
35
  //#endregion
36
- //#region \0@oxc-project+runtime@0.134.0/helpers/esm/decorate.js
36
+ //#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorate.js
37
37
  function __decorate(decorators, target, key, desc) {
38
38
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39
39
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -60,6 +60,10 @@ var WebsocketService = class {
60
60
  gValidationProvider;
61
61
  gLogger;
62
62
  /**
63
+ * Lazily-created `crossws` Node adapter used for raw Node HTTP upgrades (dev server).
64
+ */
65
+ fNodeAdapter;
66
+ /**
63
67
  * Internal namespace registry
64
68
  */
65
69
  fNamespaces = {};
@@ -145,7 +149,7 @@ var WebsocketService = class {
145
149
  * @returns {void}
146
150
  */
147
151
  initialize() {
148
- const serverPlugin = plugin(defineHooks({
152
+ const hooks = defineHooks({
149
153
  upgrade: async (request) => {
150
154
  const url = new URL(request.url);
151
155
  const namespace = url.pathname;
@@ -183,8 +187,13 @@ var WebsocketService = class {
183
187
  error: async (peer, error) => {
184
188
  this.gLogger?.error("WebsocketService::initialize", `Error: ${error.message}`, { peer });
185
189
  }
186
- }));
190
+ });
191
+ const serverPlugin = plugin(hooks);
187
192
  this.gHttpServer.addPlugin(serverPlugin);
193
+ globalThis.__vercube_ws_upgrade__ = async (req, socket, head) => {
194
+ this.fNodeAdapter ??= (await import("crossws/adapters/node")).default({ hooks });
195
+ await this.fNodeAdapter.handleUpgrade(req, socket, head);
196
+ };
188
197
  }
189
198
  /**
190
199
  * Handle an incoming websocket message for a peer.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercube/ws",
3
- "version": "1.0.0-beta.2",
3
+ "version": "1.1.0",
4
4
  "description": "Websocket module for Vercube framework",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,10 +26,10 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "crossws": "0.4.6",
29
- "srvx": "0.11.16",
30
- "@vercube/core": "1.0.0-beta.2",
31
- "@vercube/logger": "1.0.0-beta.2",
32
- "@vercube/di": "1.0.0-beta.2"
29
+ "srvx": "0.11.17",
30
+ "@vercube/core": "1.1.0",
31
+ "@vercube/di": "1.1.0",
32
+ "@vercube/logger": "1.1.0"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"