playcademy 0.13.5 → 0.13.7
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.js +36 -15
- package/dist/utils.d.ts +4 -1
- package/dist/utils.js +18 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7627,7 +7627,7 @@ function startHotReload(onReload, options = {}) {
|
|
|
7627
7627
|
init_src2();
|
|
7628
7628
|
import { mkdir as mkdir4 } from "fs/promises";
|
|
7629
7629
|
import { join as join17 } from "path";
|
|
7630
|
-
import { Miniflare } from "miniflare";
|
|
7630
|
+
import { Log, LogLevel, Miniflare } from "miniflare";
|
|
7631
7631
|
|
|
7632
7632
|
// ../utils/src/port.ts
|
|
7633
7633
|
import { existsSync as existsSync15, mkdirSync as mkdirSync4, readFileSync as readFileSync4, writeFileSync as writeFileSync4 } from "node:fs";
|
|
@@ -7648,9 +7648,12 @@ async function isPortAvailableOnHost(port, host) {
|
|
|
7648
7648
|
});
|
|
7649
7649
|
}
|
|
7650
7650
|
async function findAvailablePort(startPort = 4321) {
|
|
7651
|
-
const ipv4AllAvailable = await
|
|
7652
|
-
|
|
7653
|
-
|
|
7651
|
+
const [localhostAvailable, ipv4AllAvailable, ipv6AllAvailable] = await Promise.all([
|
|
7652
|
+
isPortAvailableOnHost(startPort, "127.0.0.1"),
|
|
7653
|
+
isPortAvailableOnHost(startPort, "0.0.0.0"),
|
|
7654
|
+
isPortAvailableOnHost(startPort, "::")
|
|
7655
|
+
]);
|
|
7656
|
+
if (localhostAvailable && ipv4AllAvailable && ipv6AllAvailable) {
|
|
7654
7657
|
return startPort;
|
|
7655
7658
|
}
|
|
7656
7659
|
return findAvailablePort(startPort + 1);
|
|
@@ -7705,14 +7708,22 @@ function isServerRunning(type, projectRoot) {
|
|
|
7705
7708
|
if (!info) {
|
|
7706
7709
|
return false;
|
|
7707
7710
|
}
|
|
7711
|
+
if (!Number.isInteger(info.pid) || info.pid <= 0) {
|
|
7712
|
+
cleanupServerInfo(type, projectRoot);
|
|
7713
|
+
return false;
|
|
7714
|
+
}
|
|
7708
7715
|
try {
|
|
7709
|
-
|
|
7710
|
-
|
|
7711
|
-
|
|
7712
|
-
|
|
7716
|
+
process.kill(info.pid, 0);
|
|
7717
|
+
return true;
|
|
7718
|
+
} catch (err) {
|
|
7719
|
+
const code = err && typeof err === "object" && "code" in err ? err.code : null;
|
|
7720
|
+
if (code === "ESRCH" || code === "EINVAL") {
|
|
7721
|
+
cleanupServerInfo(type, projectRoot);
|
|
7722
|
+
return false;
|
|
7723
|
+
}
|
|
7724
|
+
if (code === "EPERM") {
|
|
7713
7725
|
return true;
|
|
7714
7726
|
}
|
|
7715
|
-
} catch {
|
|
7716
7727
|
cleanupServerInfo(type, projectRoot);
|
|
7717
7728
|
return false;
|
|
7718
7729
|
}
|
|
@@ -7746,11 +7757,18 @@ function cleanupServerInfo(type, projectRoot, pid) {
|
|
|
7746
7757
|
init_constants2();
|
|
7747
7758
|
init_loader();
|
|
7748
7759
|
init_core();
|
|
7760
|
+
var FilteredLog = class extends Log {
|
|
7761
|
+
logWithLevel(level, message) {
|
|
7762
|
+
if (message.includes("Ready on")) return;
|
|
7763
|
+
console.log(message);
|
|
7764
|
+
}
|
|
7765
|
+
};
|
|
7749
7766
|
async function startDevServer(options) {
|
|
7750
7767
|
const {
|
|
7751
7768
|
port: preferredPort,
|
|
7752
7769
|
config: providedConfig,
|
|
7753
|
-
platformUrl = process.env.PLAYCADEMY_BASE_URL || "http://localhost:5174"
|
|
7770
|
+
platformUrl = process.env.PLAYCADEMY_BASE_URL || "http://localhost:5174",
|
|
7771
|
+
logger: logger2 = true
|
|
7754
7772
|
} = options;
|
|
7755
7773
|
const port = await findAvailablePort(preferredPort);
|
|
7756
7774
|
const config = providedConfig ?? await loadConfig();
|
|
@@ -7764,8 +7782,10 @@ async function startDevServer(options) {
|
|
|
7764
7782
|
const dbDir = hasDatabase ? await ensureDatabaseDirectory() : void 0;
|
|
7765
7783
|
const hasKV = hasKVSetup(config);
|
|
7766
7784
|
const kvDir = hasKV ? await ensureKvDirectory() : void 0;
|
|
7785
|
+
const log2 = logger2 ? new FilteredLog(LogLevel.INFO) : new Log(LogLevel.NONE);
|
|
7767
7786
|
const mf = new Miniflare({
|
|
7768
7787
|
port,
|
|
7788
|
+
log: log2,
|
|
7769
7789
|
modules: [
|
|
7770
7790
|
{
|
|
7771
7791
|
type: "ESModule",
|
|
@@ -7788,7 +7808,7 @@ async function startDevServer(options) {
|
|
|
7788
7808
|
await initializeDatabase(mf);
|
|
7789
7809
|
}
|
|
7790
7810
|
await writeBackendServerInfo(port);
|
|
7791
|
-
return mf;
|
|
7811
|
+
return { server: mf, port };
|
|
7792
7812
|
}
|
|
7793
7813
|
async function ensureDatabaseDirectory() {
|
|
7794
7814
|
const dbDir = join17(getWorkspace(), CLI_DIRECTORIES.DATABASE);
|
|
@@ -8685,11 +8705,12 @@ async function setupServerHotReload(serverRef, port, workspace, config, loggerEn
|
|
|
8685
8705
|
await serverRef.current.dispose();
|
|
8686
8706
|
}
|
|
8687
8707
|
const newConfig = await loadConfig();
|
|
8688
|
-
|
|
8708
|
+
const { server } = await startDevServer({
|
|
8689
8709
|
port,
|
|
8690
8710
|
config: newConfig,
|
|
8691
8711
|
logger: loggerEnabled
|
|
8692
8712
|
});
|
|
8713
|
+
serverRef.current = server;
|
|
8693
8714
|
await discoverRoutes(getCustomRoutesDirectory(workspace, newConfig));
|
|
8694
8715
|
},
|
|
8695
8716
|
{ config }
|
|
@@ -8715,9 +8736,9 @@ async function runDevServer(options) {
|
|
|
8715
8736
|
logger.newLine();
|
|
8716
8737
|
return;
|
|
8717
8738
|
}
|
|
8718
|
-
const
|
|
8719
|
-
const server = await startDevServer({
|
|
8720
|
-
port,
|
|
8739
|
+
const requestedPort = parseInt(options.port, 10);
|
|
8740
|
+
const { server, port } = await startDevServer({
|
|
8741
|
+
port: requestedPort,
|
|
8721
8742
|
config,
|
|
8722
8743
|
logger: options.logger !== false
|
|
8723
8744
|
});
|
package/dist/utils.d.ts
CHANGED
|
@@ -115,7 +115,10 @@ interface DevServerOptions {
|
|
|
115
115
|
* Start the local development server using Miniflare
|
|
116
116
|
* Returns the Miniflare instance which can be disposed for hot reload
|
|
117
117
|
*/
|
|
118
|
-
declare function startDevServer(options: DevServerOptions): Promise<
|
|
118
|
+
declare function startDevServer(options: DevServerOptions): Promise<{
|
|
119
|
+
server: Miniflare;
|
|
120
|
+
port: number;
|
|
121
|
+
}>;
|
|
119
122
|
|
|
120
123
|
interface HotReloadOptions {
|
|
121
124
|
/** Custom success logger (defaults to CLI logger) */
|
package/dist/utils.js
CHANGED
|
@@ -559,7 +559,7 @@ function processConfigVariables(config) {
|
|
|
559
559
|
// src/lib/dev/server.ts
|
|
560
560
|
import { mkdir as mkdir2 } from "fs/promises";
|
|
561
561
|
import { join as join7 } from "path";
|
|
562
|
-
import { Miniflare } from "miniflare";
|
|
562
|
+
import { Log, LogLevel, Miniflare } from "miniflare";
|
|
563
563
|
|
|
564
564
|
// ../utils/src/port.ts
|
|
565
565
|
import { existsSync as existsSync2, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
@@ -580,9 +580,12 @@ async function isPortAvailableOnHost(port, host) {
|
|
|
580
580
|
});
|
|
581
581
|
}
|
|
582
582
|
async function findAvailablePort(startPort = 4321) {
|
|
583
|
-
const ipv4AllAvailable = await
|
|
584
|
-
|
|
585
|
-
|
|
583
|
+
const [localhostAvailable, ipv4AllAvailable, ipv6AllAvailable] = await Promise.all([
|
|
584
|
+
isPortAvailableOnHost(startPort, "127.0.0.1"),
|
|
585
|
+
isPortAvailableOnHost(startPort, "0.0.0.0"),
|
|
586
|
+
isPortAvailableOnHost(startPort, "::")
|
|
587
|
+
]);
|
|
588
|
+
if (localhostAvailable && ipv4AllAvailable && ipv6AllAvailable) {
|
|
586
589
|
return startPort;
|
|
587
590
|
}
|
|
588
591
|
return findAvailablePort(startPort + 1);
|
|
@@ -1460,11 +1463,18 @@ function hasKVSetup(config) {
|
|
|
1460
1463
|
}
|
|
1461
1464
|
|
|
1462
1465
|
// src/lib/dev/server.ts
|
|
1466
|
+
var FilteredLog = class extends Log {
|
|
1467
|
+
logWithLevel(level, message) {
|
|
1468
|
+
if (message.includes("Ready on")) return;
|
|
1469
|
+
console.log(message);
|
|
1470
|
+
}
|
|
1471
|
+
};
|
|
1463
1472
|
async function startDevServer(options) {
|
|
1464
1473
|
const {
|
|
1465
1474
|
port: preferredPort,
|
|
1466
1475
|
config: providedConfig,
|
|
1467
|
-
platformUrl = process.env.PLAYCADEMY_BASE_URL || "http://localhost:5174"
|
|
1476
|
+
platformUrl = process.env.PLAYCADEMY_BASE_URL || "http://localhost:5174",
|
|
1477
|
+
logger: logger2 = true
|
|
1468
1478
|
} = options;
|
|
1469
1479
|
const port = await findAvailablePort(preferredPort);
|
|
1470
1480
|
const config = providedConfig ?? await loadConfig();
|
|
@@ -1478,8 +1488,10 @@ async function startDevServer(options) {
|
|
|
1478
1488
|
const dbDir = hasDatabase ? await ensureDatabaseDirectory() : void 0;
|
|
1479
1489
|
const hasKV = hasKVSetup(config);
|
|
1480
1490
|
const kvDir = hasKV ? await ensureKvDirectory() : void 0;
|
|
1491
|
+
const log2 = logger2 ? new FilteredLog(LogLevel.INFO) : new Log(LogLevel.NONE);
|
|
1481
1492
|
const mf = new Miniflare({
|
|
1482
1493
|
port,
|
|
1494
|
+
log: log2,
|
|
1483
1495
|
modules: [
|
|
1484
1496
|
{
|
|
1485
1497
|
type: "ESModule",
|
|
@@ -1502,7 +1514,7 @@ async function startDevServer(options) {
|
|
|
1502
1514
|
await initializeDatabase(mf);
|
|
1503
1515
|
}
|
|
1504
1516
|
await writeBackendServerInfo(port);
|
|
1505
|
-
return mf;
|
|
1517
|
+
return { server: mf, port };
|
|
1506
1518
|
}
|
|
1507
1519
|
async function ensureDatabaseDirectory() {
|
|
1508
1520
|
const dbDir = join7(getWorkspace(), CLI_DIRECTORIES.DATABASE);
|