import { generateUniqueID } from './modules/baseUtils.mjs'; import { updateId } from './modules/updateConfig.mjs'; import { ClientNodeConfig } from './modules/clientObjectDefinitions.mjs'; import { initSocketConnection } from './modules/socketClient.mjs'; import { checkForUpdates } from './modules/selfUpdater.mjs' import dotenv from 'dotenv'; dotenv.config() var localNodeConfig = new ClientNodeConfig({}) async function boot() { // Check if there have been any updates await checkForUpdates(); if (localNodeConfig.node.nuid === undefined || localNodeConfig.node.nuid === '' || localNodeConfig.node.nuid === '0' || localNodeConfig.node.nuid === 0) { // Run the first time boot sequence await firstTimeBoot(); } // Initialize the socket connection with the server return initSocketConnection(localNodeConfig); } /** * Run the first time the client boots on a pc * @returns {any} */ async function firstTimeBoot() { // Generate a new ID for the node localNodeConfig.node.nuid = await generateUniqueID(); console.log(`Generated a new unique ID for this node: '${localNodeConfig.node.nuid}'`); // Update the config with the new ID await updateId(localNodeConfig.node.nuid); console.log("Updated the config with the new node ID"); // TODO - Create the config file with the ID given and replace the update above // TODO - Implement web server so users can update radio systems easily // TODO - Implement logic to check if the presets are set return } // Boot the client application boot().then((openSocket) => { console.log(openSocket, "Booted Sucessfully"); })