@b9g/platform-node 0.1.8 → 0.1.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@b9g/platform-node",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Node.js platform adapter for Shovel with hot reloading and ESBuild integration",
5
5
  "keywords": [
6
6
  "shovel",
@@ -11,7 +11,7 @@
11
11
  "esbuild"
12
12
  ],
13
13
  "dependencies": {
14
- "@b9g/platform": "^0.1.6"
14
+ "@b9g/platform": "^0.1.9"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@b9g/libuild": "^0.1.11",
package/src/index.d.ts CHANGED
@@ -47,8 +47,9 @@ export declare class NodePlatform extends BasePlatform {
47
47
  createServer(handler: Handler, options?: ServerOptions): Server;
48
48
  /**
49
49
  * Reload workers for hot reloading (called by CLI)
50
+ * @param entrypoint - Path to the new entrypoint (hashed filename)
50
51
  */
51
- reloadWorkers(version?: number | string): Promise<void>;
52
+ reloadWorkers(entrypoint: string): Promise<void>;
52
53
  /**
53
54
  * Dispose of platform resources
54
55
  */
package/src/index.js CHANGED
@@ -8,6 +8,7 @@ import {
8
8
  createCacheFactory
9
9
  } from "@b9g/platform";
10
10
  import { CustomCacheStorage } from "@b9g/cache";
11
+ import { InternalServerError, isHTTPError } from "@b9g/http-errors";
11
12
  import * as HTTP from "http";
12
13
  import * as Path from "path";
13
14
  import { getLogger } from "@logtape/logtape";
@@ -82,8 +83,7 @@ var NodePlatform = class extends BasePlatform {
82
83
  config: this.#config
83
84
  });
84
85
  await this.#singleThreadedRuntime.init();
85
- const version = Date.now();
86
- await this.#singleThreadedRuntime.loadEntrypoint(entryPath, version);
86
+ await this.#singleThreadedRuntime.loadEntrypoint(entryPath);
87
87
  const runtime = this.#singleThreadedRuntime;
88
88
  const platform = this;
89
89
  const instance = {
@@ -146,8 +146,7 @@ var NodePlatform = class extends BasePlatform {
146
146
  this.#config
147
147
  );
148
148
  await this.#workerPool.init();
149
- const version = Date.now();
150
- await this.#workerPool.reloadWorkers(version);
149
+ await this.#workerPool.reloadWorkers(entryPath);
151
150
  const workerPool = this.#workerPool;
152
151
  const platform = this;
153
152
  const instance = {
@@ -228,13 +227,19 @@ var NodePlatform = class extends BasePlatform {
228
227
  res.end();
229
228
  }
230
229
  } catch (error) {
230
+ const err = error instanceof Error ? error : new Error(String(error));
231
231
  logger.error("Request error", {
232
- error: error instanceof Error ? error.message : String(error),
233
- stack: error instanceof Error ? error.stack : void 0
232
+ error: err.message,
233
+ stack: err.stack
234
234
  });
235
- res.statusCode = 500;
236
- res.setHeader("Content-Type", "text/plain");
237
- res.end("Internal Server Error");
235
+ const httpError = isHTTPError(error) ? error : new InternalServerError(err.message, { cause: err });
236
+ const isDev = import.meta.env?.MODE !== "production";
237
+ const response = httpError.toResponse(isDev);
238
+ res.statusCode = response.status;
239
+ response.headers.forEach((value, key) => {
240
+ res.setHeader(key, value);
241
+ });
242
+ res.end(await response.text());
238
243
  }
239
244
  });
240
245
  let isListening = false;
@@ -279,12 +284,13 @@ var NodePlatform = class extends BasePlatform {
279
284
  }
280
285
  /**
281
286
  * Reload workers for hot reloading (called by CLI)
287
+ * @param entrypoint - Path to the new entrypoint (hashed filename)
282
288
  */
283
- async reloadWorkers(version) {
289
+ async reloadWorkers(entrypoint) {
284
290
  if (this.#workerPool) {
285
- await this.#workerPool.reloadWorkers(version);
291
+ await this.#workerPool.reloadWorkers(entrypoint);
286
292
  } else if (this.#singleThreadedRuntime) {
287
- await this.#singleThreadedRuntime.reloadWorkers(version);
293
+ await this.#singleThreadedRuntime.reloadWorkers(entrypoint);
288
294
  }
289
295
  }
290
296
  /**