@b9g/platform-node 0.1.8 → 0.1.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.
- package/package.json +2 -2
- package/src/index.d.ts +2 -1
- package/src/index.js +18 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@b9g/platform-node",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
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.
|
|
14
|
+
"@b9g/platform": "^0.1.10"
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
233
|
-
stack:
|
|
232
|
+
error: err.message,
|
|
233
|
+
stack: err.stack
|
|
234
234
|
});
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
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(
|
|
289
|
+
async reloadWorkers(entrypoint) {
|
|
284
290
|
if (this.#workerPool) {
|
|
285
|
-
await this.#workerPool.reloadWorkers(
|
|
291
|
+
await this.#workerPool.reloadWorkers(entrypoint);
|
|
286
292
|
} else if (this.#singleThreadedRuntime) {
|
|
287
|
-
await this.#singleThreadedRuntime.reloadWorkers(
|
|
293
|
+
await this.#singleThreadedRuntime.reloadWorkers(entrypoint);
|
|
288
294
|
}
|
|
289
295
|
}
|
|
290
296
|
/**
|