pragma-so 0.1.9 → 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/dist/cli/index.js +23 -4
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -441,11 +441,28 @@ async function getRandomFreePort() {
|
|
|
441
441
|
srv.on("error", reject);
|
|
442
442
|
});
|
|
443
443
|
}
|
|
444
|
+
async function tryPort(port) {
|
|
445
|
+
return new Promise((resolve) => {
|
|
446
|
+
const srv = node_net_1.default.createServer();
|
|
447
|
+
srv.listen(port, "127.0.0.1", () => {
|
|
448
|
+
srv.close(() => resolve(port));
|
|
449
|
+
});
|
|
450
|
+
srv.on("error", () => resolve(null));
|
|
451
|
+
});
|
|
452
|
+
}
|
|
444
453
|
async function runAll() {
|
|
445
|
-
const
|
|
446
|
-
const
|
|
447
|
-
const serverPort =
|
|
448
|
-
const uiPort =
|
|
454
|
+
const preferredServerPort = parsePort(new URL(DEFAULT_API_URL).port || "3000");
|
|
455
|
+
const preferredUiPort = parsePort(new URL(DEFAULT_UI_URL).port || "5173");
|
|
456
|
+
const serverPort = (await tryPort(preferredServerPort)) ?? (await getRandomFreePort());
|
|
457
|
+
const uiPort = (await tryPort(preferredUiPort)) ?? (await getRandomFreePort());
|
|
458
|
+
const apiUrl = `http://127.0.0.1:${serverPort}`;
|
|
459
|
+
const uiUrl = `http://127.0.0.1:${uiPort}`;
|
|
460
|
+
if (serverPort !== preferredServerPort) {
|
|
461
|
+
console.log(`Port ${preferredServerPort} in use, API server using port ${serverPort}`);
|
|
462
|
+
}
|
|
463
|
+
if (uiPort !== preferredUiPort) {
|
|
464
|
+
console.log(`Port ${preferredUiPort} in use, UI using port ${uiPort}`);
|
|
465
|
+
}
|
|
449
466
|
const serverProcess = spawnSelfCommand(["server", "--port", String(serverPort)]);
|
|
450
467
|
const serverExit = waitForExit(serverProcess, "server");
|
|
451
468
|
await waitForHealth(apiUrl);
|
|
@@ -457,6 +474,8 @@ async function runAll() {
|
|
|
457
474
|
apiUrl,
|
|
458
475
|
]);
|
|
459
476
|
const uiExit = waitForExit(uiProcess, "ui");
|
|
477
|
+
console.log(`Pragma API: ${apiUrl}`);
|
|
478
|
+
console.log(`Pragma UI: ${uiUrl}`);
|
|
460
479
|
try {
|
|
461
480
|
await (0, open_1.default)(uiUrl, { wait: false });
|
|
462
481
|
}
|