mirror of
https://github.com/langchain-ai/llmanager.git
synced 2026-08-24 14:43:40 -04:00
94 lines
2.8 KiB
TypeScript
94 lines
2.8 KiB
TypeScript
import { spawn } from "child_process";
|
|
|
|
/**
|
|
* Checks if the development server starts successfully.
|
|
* This script starts the dev server and monitors the output for 10 seconds
|
|
* to detect any errors that might occur during startup.
|
|
*/
|
|
function checkDevServer(): Promise<void> {
|
|
return new Promise((resolve, reject) => {
|
|
console.log("Starting development server...");
|
|
|
|
// Spawn the dev server process
|
|
const serverProcess = spawn("yarn", ["dev"], {
|
|
shell: true,
|
|
stdio: "pipe",
|
|
});
|
|
|
|
let errorDetected = false;
|
|
let output = "";
|
|
|
|
// Listen for stdout data
|
|
serverProcess.stdout.on("data", (data) => {
|
|
const message = data.toString();
|
|
output += message;
|
|
console.log(message);
|
|
const lowerCaseMessage = message.toLowerCase();
|
|
|
|
// Check for common error patterns in the output
|
|
if (
|
|
lowerCaseMessage.includes("error:") ||
|
|
lowerCaseMessage.includes("exception:") ||
|
|
lowerCaseMessage.includes("failed to compile")
|
|
) {
|
|
errorDetected = true;
|
|
console.error("Error detected in server output!");
|
|
}
|
|
});
|
|
|
|
// Listen for stderr data
|
|
serverProcess.stderr.on("data", (data) => {
|
|
const message = data.toString();
|
|
output += message;
|
|
console.error(message);
|
|
const lowerCaseMessage = message.toLowerCase();
|
|
|
|
// Stderr output often indicates errors
|
|
if (!lowerCaseMessage.includes("warning:")) {
|
|
errorDetected = true;
|
|
console.error("Error detected in server stderr output!");
|
|
}
|
|
});
|
|
|
|
// Handle server process exit
|
|
serverProcess.on("error", (error) => {
|
|
console.error("Failed to start server process:", error);
|
|
reject(new Error(`Server process failed to start: ${error.message}`));
|
|
});
|
|
|
|
// Set timeout to wait for server to stabilize
|
|
setTimeout(() => {
|
|
// Kill the server process after timeout
|
|
serverProcess.kill();
|
|
|
|
if (errorDetected) {
|
|
console.error(
|
|
"Server check failed! Errors were detected during server startup.",
|
|
);
|
|
reject(
|
|
new Error(
|
|
"Errors detected during server startup. Check logs for details.",
|
|
),
|
|
);
|
|
} else if (!output.includes("Server running")) {
|
|
console.error("Server check failed! Server did not start properly.");
|
|
reject(new Error("Server did not indicate successful startup."));
|
|
} else {
|
|
console.log("Server check passed! Server started successfully.");
|
|
resolve();
|
|
}
|
|
}, 10000); // Wait 10 seconds
|
|
});
|
|
}
|
|
|
|
// Run the check and handle the result
|
|
checkDevServer()
|
|
.then(() => {
|
|
console.log("✅ Dev server check completed successfully!");
|
|
process.exit(0);
|
|
})
|
|
.catch((error) => {
|
|
console.error(`❌ Dev server check failed: ${error.message}`);
|
|
process.exit(1);
|
|
});
|