@simplysm/sd-cli 13.0.69 → 13.0.70
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 +10 -957
- package/dist/builders/BaseBuilder.d.ts +23 -23
- package/dist/builders/BaseBuilder.d.ts.map +1 -1
- package/dist/builders/BaseBuilder.js +15 -15
- package/dist/builders/DtsBuilder.d.ts +4 -4
- package/dist/builders/DtsBuilder.js +1 -1
- package/dist/builders/LibraryBuilder.d.ts +3 -3
- package/dist/builders/types.d.ts +10 -10
- package/dist/capacitor/capacitor.d.ts +36 -36
- package/dist/capacitor/capacitor.js +63 -63
- package/dist/capacitor/capacitor.js.map +1 -1
- package/dist/commands/add-client.d.ts +8 -8
- package/dist/commands/add-client.js +15 -15
- package/dist/commands/add-client.js.map +1 -1
- package/dist/commands/add-server.d.ts +9 -9
- package/dist/commands/add-server.js +13 -13
- package/dist/commands/add-server.js.map +1 -1
- package/dist/commands/build.d.ts +9 -9
- package/dist/commands/check.js +3 -3
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/dev.d.ts +9 -9
- package/dist/commands/device.d.ts +9 -9
- package/dist/commands/device.d.ts.map +1 -1
- package/dist/commands/device.js +17 -17
- package/dist/commands/device.js.map +1 -1
- package/dist/commands/init.d.ts +6 -6
- package/dist/commands/init.js +12 -12
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/lint.d.ts +23 -23
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +25 -25
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/publish.d.ts +13 -13
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +61 -61
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/replace-deps.d.ts +3 -3
- package/dist/commands/replace-deps.d.ts.map +1 -1
- package/dist/commands/replace-deps.js +1 -1
- package/dist/commands/replace-deps.js.map +1 -1
- package/dist/commands/typecheck.d.ts +20 -20
- package/dist/commands/typecheck.d.ts.map +1 -1
- package/dist/commands/typecheck.js +20 -20
- package/dist/commands/typecheck.js.map +1 -1
- package/dist/commands/watch.d.ts +7 -7
- package/dist/electron/electron.d.ts +27 -27
- package/dist/electron/electron.js +32 -32
- package/dist/electron/electron.js.map +1 -1
- package/dist/infra/ResultCollector.d.ts +9 -9
- package/dist/infra/ResultCollector.js +5 -5
- package/dist/infra/SignalHandler.d.ts +7 -7
- package/dist/infra/SignalHandler.js +4 -4
- package/dist/infra/WorkerManager.d.ts +14 -14
- package/dist/infra/WorkerManager.js +11 -11
- package/dist/orchestrators/BuildOrchestrator.d.ts +19 -19
- package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/BuildOrchestrator.js +26 -26
- package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
- package/dist/orchestrators/DevOrchestrator.d.ts +25 -25
- package/dist/orchestrators/DevOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/DevOrchestrator.js +30 -30
- package/dist/orchestrators/DevOrchestrator.js.map +1 -1
- package/dist/orchestrators/WatchOrchestrator.d.ts +13 -13
- package/dist/orchestrators/WatchOrchestrator.js +17 -17
- package/dist/orchestrators/WatchOrchestrator.js.map +1 -1
- package/dist/sd-cli-entry.d.ts +2 -2
- package/dist/sd-cli-entry.js +38 -38
- package/dist/sd-cli-entry.js.map +1 -1
- package/dist/sd-cli.d.ts +2 -2
- package/dist/sd-cli.js +1 -1
- package/dist/sd-cli.js.map +1 -1
- package/dist/sd-config.types.d.ts +84 -84
- package/dist/sd-config.types.d.ts.map +1 -1
- package/dist/utils/build-env.d.ts +1 -1
- package/dist/utils/config-editor.d.ts +5 -5
- package/dist/utils/config-editor.js +2 -2
- package/dist/utils/config-editor.js.map +1 -1
- package/dist/utils/copy-public.d.ts +9 -9
- package/dist/utils/copy-src.d.ts +9 -9
- package/dist/utils/esbuild-config.d.ts +30 -30
- package/dist/utils/esbuild-config.d.ts.map +1 -1
- package/dist/utils/output-utils.d.ts +6 -6
- package/dist/utils/package-utils.d.ts +6 -6
- package/dist/utils/package-utils.js +1 -1
- package/dist/utils/package-utils.js.map +1 -1
- package/dist/utils/rebuild-manager.js +3 -3
- package/dist/utils/rebuild-manager.js.map +1 -1
- package/dist/utils/replace-deps.d.ts +25 -25
- package/dist/utils/replace-deps.js +3 -3
- package/dist/utils/replace-deps.js.map +1 -1
- package/dist/utils/sd-config.d.ts +3 -3
- package/dist/utils/sd-config.js +3 -3
- package/dist/utils/sd-config.js.map +1 -1
- package/dist/utils/tailwind-config-deps.d.ts +3 -3
- package/dist/utils/template.d.ts +8 -8
- package/dist/utils/tsconfig.d.ts +16 -16
- package/dist/utils/tsconfig.js +2 -2
- package/dist/utils/tsconfig.js.map +1 -1
- package/dist/utils/typecheck-serialization.d.ts +8 -8
- package/dist/utils/vite-config.d.ts +8 -8
- package/dist/utils/vite-config.d.ts.map +1 -1
- package/dist/utils/vite-config.js +3 -3
- package/dist/utils/worker-events.d.ts +12 -12
- package/dist/utils/worker-events.d.ts.map +1 -1
- package/dist/utils/worker-utils.d.ts +3 -3
- package/dist/utils/worker-utils.js +2 -2
- package/dist/utils/worker-utils.js.map +1 -1
- package/dist/workers/client.worker.d.ts +14 -14
- package/dist/workers/client.worker.d.ts.map +1 -1
- package/dist/workers/client.worker.js +1 -1
- package/dist/workers/client.worker.js.map +1 -1
- package/dist/workers/dts.worker.d.ts +13 -13
- package/dist/workers/dts.worker.d.ts.map +1 -1
- package/dist/workers/dts.worker.js +3 -3
- package/dist/workers/dts.worker.js.map +1 -1
- package/dist/workers/library.worker.d.ts +12 -12
- package/dist/workers/library.worker.js +1 -1
- package/dist/workers/library.worker.js.map +1 -1
- package/dist/workers/lint.worker.d.ts +1 -1
- package/dist/workers/server-runtime.worker.d.ts +6 -6
- package/dist/workers/server-runtime.worker.js +6 -6
- package/dist/workers/server-runtime.worker.js.map +1 -1
- package/dist/workers/server.worker.d.ts +20 -20
- package/dist/workers/server.worker.d.ts.map +1 -1
- package/dist/workers/server.worker.js +6 -6
- package/dist/workers/server.worker.js.map +1 -1
- package/package.json +8 -7
- package/src/builders/BaseBuilder.ts +33 -33
- package/src/builders/DtsBuilder.ts +5 -5
- package/src/builders/LibraryBuilder.ts +9 -9
- package/src/builders/types.ts +10 -10
- package/src/capacitor/capacitor.ts +119 -119
- package/src/commands/add-client.ts +31 -31
- package/src/commands/add-server.ts +34 -34
- package/src/commands/build.ts +9 -9
- package/src/commands/check.ts +5 -5
- package/src/commands/dev.ts +9 -9
- package/src/commands/device.ts +30 -30
- package/src/commands/init.ts +25 -25
- package/src/commands/lint.ts +64 -64
- package/src/commands/publish.ts +139 -139
- package/src/commands/replace-deps.ts +4 -4
- package/src/commands/typecheck.ts +74 -74
- package/src/commands/watch.ts +7 -7
- package/src/electron/electron.ts +51 -51
- package/src/infra/ResultCollector.ts +9 -9
- package/src/infra/SignalHandler.ts +7 -7
- package/src/infra/WorkerManager.ts +14 -14
- package/src/orchestrators/BuildOrchestrator.ts +76 -76
- package/src/orchestrators/DevOrchestrator.ts +88 -88
- package/src/orchestrators/WatchOrchestrator.ts +39 -39
- package/src/sd-cli-entry.ts +43 -43
- package/src/sd-cli.ts +15 -15
- package/src/sd-config.types.ts +85 -85
- package/src/utils/build-env.ts +1 -1
- package/src/utils/config-editor.ts +19 -19
- package/src/utils/copy-public.ts +17 -17
- package/src/utils/copy-src.ts +11 -11
- package/src/utils/esbuild-config.ts +33 -33
- package/src/utils/output-utils.ts +11 -11
- package/src/utils/package-utils.ts +12 -12
- package/src/utils/rebuild-manager.ts +3 -3
- package/src/utils/replace-deps.ts +361 -361
- package/src/utils/sd-config.ts +44 -44
- package/src/utils/tailwind-config-deps.ts +98 -98
- package/src/utils/template.ts +56 -56
- package/src/utils/tsconfig.ts +127 -127
- package/src/utils/typecheck-serialization.ts +86 -86
- package/src/utils/vite-config.ts +341 -341
- package/src/utils/worker-events.ts +16 -16
- package/src/utils/worker-utils.ts +45 -45
- package/src/workers/client.worker.ts +34 -34
- package/src/workers/dts.worker.ts +467 -467
- package/src/workers/library.worker.ts +314 -314
- package/src/workers/lint.worker.ts +16 -16
- package/src/workers/server-runtime.worker.ts +157 -157
- package/src/workers/server.worker.ts +572 -572
- package/templates/add-client/__CLIENT__/package.json.hbs +1 -1
- package/templates/add-server/__SERVER__/package.json.hbs +2 -2
- package/templates/init/package.json.hbs +3 -3
- package/tests/config-editor.spec.ts +160 -0
- package/tests/copy-src.spec.ts +50 -0
- package/tests/get-compiler-options-for-package.spec.ts +139 -0
- package/tests/get-package-source-files.spec.ts +181 -0
- package/tests/get-types-from-package-json.spec.ts +107 -0
- package/tests/infra/ResultCollector.spec.ts +39 -0
- package/tests/infra/SignalHandler.spec.ts +38 -0
- package/tests/infra/WorkerManager.spec.ts +97 -0
- package/tests/load-ignore-patterns.spec.ts +188 -0
- package/tests/load-sd-config.spec.ts +137 -0
- package/tests/package-utils.spec.ts +188 -0
- package/tests/parse-root-tsconfig.spec.ts +89 -0
- package/tests/replace-deps.spec.ts +308 -0
- package/tests/run-lint.spec.ts +415 -0
- package/tests/run-typecheck.spec.ts +653 -0
- package/tests/run-watch.spec.ts +75 -0
- package/tests/sd-cli.spec.ts +330 -0
- package/tests/tailwind-config-deps.spec.ts +30 -0
- package/tests/template.spec.ts +70 -0
- package/tests/utils/rebuild-manager.spec.ts +43 -0
- package/tests/write-changed-output-files.spec.ts +97 -0
|
@@ -1,157 +1,157 @@
|
|
|
1
|
-
import proxy from "@fastify/http-proxy";
|
|
2
|
-
import { createWorker } from "@simplysm/core-node";
|
|
3
|
-
import { errorMessage } from "@simplysm/core-common";
|
|
4
|
-
import { consola } from "consola";
|
|
5
|
-
import net from "net";
|
|
6
|
-
import { pathToFileURL } from "url";
|
|
7
|
-
import { registerCleanupHandlers } from "../utils/worker-utils";
|
|
8
|
-
|
|
9
|
-
//#region Types
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Server
|
|
13
|
-
*/
|
|
14
|
-
export interface ServerRuntimeStartInfo {
|
|
15
|
-
mainJsPath: string;
|
|
16
|
-
clientPorts: Record<string, number>;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
export interface ServerRuntimeReadyEvent {
|
|
23
|
-
port: number;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
*
|
|
28
|
-
*/
|
|
29
|
-
export interface ServerRuntimeErrorEvent {
|
|
30
|
-
message: string;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Worker
|
|
35
|
-
*/
|
|
36
|
-
export interface ServerRuntimeWorkerEvents extends Record<string, unknown> {
|
|
37
|
-
serverReady: ServerRuntimeReadyEvent;
|
|
38
|
-
error: ServerRuntimeErrorEvent;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
//#endregion
|
|
42
|
-
|
|
43
|
-
const logger = consola.withTag("sd:cli:server-runtime:worker");
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
let serverInstance: { close: () => Promise<void> } | undefined;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
*
|
|
50
|
-
*/
|
|
51
|
-
async function cleanup(): Promise<void> {
|
|
52
|
-
const server = serverInstance;
|
|
53
|
-
if (server != null) {
|
|
54
|
-
await server.close();
|
|
55
|
-
}
|
|
56
|
-
serverInstance = undefined;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
//
|
|
60
|
-
// (
|
|
61
|
-
process.on("uncaughtException", (err) => {
|
|
62
|
-
logger.error("
|
|
63
|
-
sender.send("error", {
|
|
64
|
-
message: errorMessage(err),
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
process.on("unhandledRejection", (reason) => {
|
|
69
|
-
logger.error("
|
|
70
|
-
sender.send("error", {
|
|
71
|
-
message: errorMessage(reason),
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
registerCleanupHandlers(cleanup, logger);
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
*
|
|
79
|
-
*/
|
|
80
|
-
function isPortAvailable(port: number): Promise<boolean> {
|
|
81
|
-
return new Promise((resolve) => {
|
|
82
|
-
const server = net.createServer();
|
|
83
|
-
server.once("error", () => resolve(false));
|
|
84
|
-
server.once("listening", () => {
|
|
85
|
-
server.close(() => resolve(true));
|
|
86
|
-
});
|
|
87
|
-
server.listen(port, "0.0.0.0");
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
*
|
|
93
|
-
*/
|
|
94
|
-
async function findAvailablePort(startPort: number, maxRetries = 20): Promise<number> {
|
|
95
|
-
for (let i = 0; i < maxRetries; i++) {
|
|
96
|
-
const port = startPort + i;
|
|
97
|
-
if (await isPortAvailable(port)) {
|
|
98
|
-
return port;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
throw new Error(
|
|
102
|
-
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Server Runtime
|
|
108
|
-
* main.js
|
|
109
|
-
*/
|
|
110
|
-
async function start(info: ServerRuntimeStartInfo): Promise<void> {
|
|
111
|
-
try {
|
|
112
|
-
// main.js
|
|
113
|
-
const module = await import(pathToFileURL(info.mainJsPath).href);
|
|
114
|
-
const server = module.server;
|
|
115
|
-
|
|
116
|
-
if (server == null) {
|
|
117
|
-
throw new Error("main.js
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
//
|
|
121
|
-
serverInstance = server;
|
|
122
|
-
|
|
123
|
-
//
|
|
124
|
-
const originalPort = server.options.port;
|
|
125
|
-
const availablePort = await findAvailablePort(originalPort);
|
|
126
|
-
if (availablePort !== originalPort) {
|
|
127
|
-
logger.info(
|
|
128
|
-
server.options.port = availablePort;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// Vite proxy
|
|
132
|
-
for (const [name, port] of Object.entries(info.clientPorts)) {
|
|
133
|
-
await server.fastify.register(proxy, {
|
|
134
|
-
prefix: `/${name}`,
|
|
135
|
-
upstream: `http://127.0.0.1:${port}`,
|
|
136
|
-
rewritePrefix: `/${name}`,
|
|
137
|
-
websocket: true,
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
//
|
|
142
|
-
await server.listen();
|
|
143
|
-
|
|
144
|
-
sender.send("serverReady", { port: server.options.port });
|
|
145
|
-
} catch (err) {
|
|
146
|
-
logger.error("Server Runtime
|
|
147
|
-
sender.send("error", {
|
|
148
|
-
message: errorMessage(err),
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
const sender = createWorker<{ start: typeof start }, ServerRuntimeWorkerEvents>({
|
|
154
|
-
start,
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
export default sender;
|
|
1
|
+
import proxy from "@fastify/http-proxy";
|
|
2
|
+
import { createWorker } from "@simplysm/core-node";
|
|
3
|
+
import { errorMessage } from "@simplysm/core-common";
|
|
4
|
+
import { consola } from "consola";
|
|
5
|
+
import net from "net";
|
|
6
|
+
import { pathToFileURL } from "url";
|
|
7
|
+
import { registerCleanupHandlers } from "../utils/worker-utils";
|
|
8
|
+
|
|
9
|
+
//#region Types
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Server runtime start info
|
|
13
|
+
*/
|
|
14
|
+
export interface ServerRuntimeStartInfo {
|
|
15
|
+
mainJsPath: string;
|
|
16
|
+
clientPorts: Record<string, number>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Server ready event
|
|
21
|
+
*/
|
|
22
|
+
export interface ServerRuntimeReadyEvent {
|
|
23
|
+
port: number;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Error event
|
|
28
|
+
*/
|
|
29
|
+
export interface ServerRuntimeErrorEvent {
|
|
30
|
+
message: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Worker event types
|
|
35
|
+
*/
|
|
36
|
+
export interface ServerRuntimeWorkerEvents extends Record<string, unknown> {
|
|
37
|
+
serverReady: ServerRuntimeReadyEvent;
|
|
38
|
+
error: ServerRuntimeErrorEvent;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//#endregion
|
|
42
|
+
|
|
43
|
+
const logger = consola.withTag("sd:cli:server-runtime:worker");
|
|
44
|
+
|
|
45
|
+
/** Server instance (to be cleaned up) */
|
|
46
|
+
let serverInstance: { close: () => Promise<void> } | undefined;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Clean up resources
|
|
50
|
+
*/
|
|
51
|
+
async function cleanup(): Promise<void> {
|
|
52
|
+
const server = serverInstance;
|
|
53
|
+
if (server != null) {
|
|
54
|
+
await server.close();
|
|
55
|
+
}
|
|
56
|
+
serverInstance = undefined;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Catch runtime errors that occur after server listen() and send them as a custom "error" event
|
|
60
|
+
// (Without this handler, the worker will crash but dev.ts's buildResolver won't be called, causing listr to hang)
|
|
61
|
+
process.on("uncaughtException", (err) => {
|
|
62
|
+
logger.error("Unhandled server runtime error", err);
|
|
63
|
+
sender.send("error", {
|
|
64
|
+
message: errorMessage(err),
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
process.on("unhandledRejection", (reason) => {
|
|
69
|
+
logger.error("Unhandled server runtime promise rejection", reason);
|
|
70
|
+
sender.send("error", {
|
|
71
|
+
message: errorMessage(reason),
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
registerCleanupHandlers(cleanup, logger);
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Check if a port is available for use
|
|
79
|
+
*/
|
|
80
|
+
function isPortAvailable(port: number): Promise<boolean> {
|
|
81
|
+
return new Promise((resolve) => {
|
|
82
|
+
const server = net.createServer();
|
|
83
|
+
server.once("error", () => resolve(false));
|
|
84
|
+
server.once("listening", () => {
|
|
85
|
+
server.close(() => resolve(true));
|
|
86
|
+
});
|
|
87
|
+
server.listen(port, "0.0.0.0");
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Find and return an available port starting from the specified port
|
|
93
|
+
*/
|
|
94
|
+
async function findAvailablePort(startPort: number, maxRetries = 20): Promise<number> {
|
|
95
|
+
for (let i = 0; i < maxRetries; i++) {
|
|
96
|
+
const port = startPort + i;
|
|
97
|
+
if (await isPortAvailable(port)) {
|
|
98
|
+
return port;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
throw new Error(
|
|
102
|
+
`No available port found between ${startPort} and ${startPort + maxRetries - 1}.`,
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Start Server Runtime
|
|
108
|
+
* Import main.js, configure Vite proxy, then listen
|
|
109
|
+
*/
|
|
110
|
+
async function start(info: ServerRuntimeStartInfo): Promise<void> {
|
|
111
|
+
try {
|
|
112
|
+
// Import main.js (must export a server instance)
|
|
113
|
+
const module = await import(pathToFileURL(info.mainJsPath).href);
|
|
114
|
+
const server = module.server;
|
|
115
|
+
|
|
116
|
+
if (server == null) {
|
|
117
|
+
throw new Error("main.js must export a server instance.");
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Save server instance (for cleanup)
|
|
121
|
+
serverInstance = server;
|
|
122
|
+
|
|
123
|
+
// Find available port (auto-increment on port conflict)
|
|
124
|
+
const originalPort = server.options.port;
|
|
125
|
+
const availablePort = await findAvailablePort(originalPort);
|
|
126
|
+
if (availablePort !== originalPort) {
|
|
127
|
+
logger.info(`Port ${originalPort} in use, changing to ${availablePort}`);
|
|
128
|
+
server.options.port = availablePort;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Configure Vite proxy (only if clientPorts exists)
|
|
132
|
+
for (const [name, port] of Object.entries(info.clientPorts)) {
|
|
133
|
+
await server.fastify.register(proxy, {
|
|
134
|
+
prefix: `/${name}`,
|
|
135
|
+
upstream: `http://127.0.0.1:${port}`,
|
|
136
|
+
rewritePrefix: `/${name}`,
|
|
137
|
+
websocket: true,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Start server
|
|
142
|
+
await server.listen();
|
|
143
|
+
|
|
144
|
+
sender.send("serverReady", { port: server.options.port });
|
|
145
|
+
} catch (err) {
|
|
146
|
+
logger.error("Server Runtime startup failed", err);
|
|
147
|
+
sender.send("error", {
|
|
148
|
+
message: errorMessage(err),
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const sender = createWorker<{ start: typeof start }, ServerRuntimeWorkerEvents>({
|
|
154
|
+
start,
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
export default sender;
|