"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = startProcess; const fs_1 = __importDefault(require("fs")); const console_colors_1 = __importDefault(require("./console-colors")); const preflight_1 = __importDefault(require("./preflight")); const run_1 = __importDefault(require("./run")); const kill_child_1 = __importDefault(require("./kill-child")); let childProcess = null; const pTitle = "buncid"; process.title = pTitle; let timeout; function startProcess({ command, preflight, postflight, redeploy_file, port, first_run, debounce, }) { const DEBOUNCE = debounce || 1000; try { if (first_run) { console.log("First Run ..."); const runFirstPreflight = (0, preflight_1.default)(preflight); } childProcess = (0, run_1.default)(command); if (!childProcess) { console.log(`${console_colors_1.default.FgRed}Error:${console_colors_1.default.Reset} Process couldn't start. Exiting...`); process.exit(); } console.log("Watching", redeploy_file); fs_1.default.watchFile(redeploy_file, { interval: 100 }, (curr, prev) => { if (global.DEPLOYING == 1) return; clearTimeout(timeout); timeout = setTimeout(() => { console.log(`${console_colors_1.default.BgBlue}File Changed${console_colors_1.default.Reset}`); if (global.REDEPLOYMENTS == 0) { return; } global.DEPLOYING = 1; if (childProcess) { console.log("******************************"); console.log(`******** ${console_colors_1.default.FgBlue}Rebuilding ${console_colors_1.default.FgMagenta}${global.REDEPLOYMENTS}${console_colors_1.default.Reset} ********`); console.log("******************************"); try { const runPreflight = (0, preflight_1.default)(preflight); if (!runPreflight) { console.log(`${console_colors_1.default.FgRed}Error:${console_colors_1.default.Reset} Preflight Failed.`); setTimeout(() => { global.DEPLOYING = 0; }, 2000); } else { (0, kill_child_1.default)(childProcess, port).then((kill) => { if (kill) { childProcess = (0, run_1.default)(command); if (postflight) { const runPostflight = (0, preflight_1.default)(postflight, true); if (!runPostflight) { console.log(`${console_colors_1.default.FgRed}Error:${console_colors_1.default.Reset} Postflight Failed.`); } } global.DEPLOYING = 0; } else { process.exit(); } }); } } catch (error) { console.log(`${console_colors_1.default.FgRed}Error:${console_colors_1.default.Reset} killing child processes => ${error.message}`); process.exit(); } } else { global.DEPLOYING = 0; } }, DEBOUNCE); }); } catch (error) { console.log(`${console_colors_1.default.FgRed}Error:${console_colors_1.default.Reset} First run failed! => ${error.message}`); } }