38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import os from "os";
|
|
import chalk from "chalk";
|
|
|
|
function getLocalIpAddress(): string {
|
|
const interfaces = os.networkInterfaces();
|
|
for (const name of Object.keys(interfaces)) {
|
|
for (const iface of interfaces[name]!) {
|
|
if (iface.family === "IPv4" && !iface.internal) {
|
|
return iface.address;
|
|
}
|
|
}
|
|
}
|
|
return "localhost";
|
|
}
|
|
|
|
export function logStartup(hostname: string, port: number) {
|
|
const localUrl = `http://localhost:${port}`;
|
|
const networkIp = hostname === "0.0.0.0" ? getLocalIpAddress() : "";
|
|
const networkUrl = networkIp ? `http://${networkIp}:${port}` : "";
|
|
|
|
console.log("\n");
|
|
console.log(chalk.magenta("Chia has been activated."));
|
|
console.log("Available on:");
|
|
console.log(`${chalk.green("> Local:")} ${chalk.blue(localUrl)}`);
|
|
if (networkIp) {
|
|
console.log(`${chalk.red("> Network:")} ${chalk.blue(networkUrl)}`);
|
|
}
|
|
console.log("\nPress Ctrl+C to quit.");
|
|
}
|
|
|
|
export function getBindingInfo(): [string, number] {
|
|
const DEFAULT_PORT = 15412;
|
|
const NODE_ENV = process.env.NODE_ENV || "production";
|
|
const HOST = process.env.HOST ?? (NODE_ENV === "development" ? "0.0.0.0" : "127.0.0.1");
|
|
const PORT = process.env.PORT ? parseInt(process.env.PORT, 10) : DEFAULT_PORT;
|
|
return [HOST, PORT];
|
|
}
|