UNPKG

@pact-toolbox/unplugin

Version:
47 lines (45 loc) 1.84 kB
const require_chunk = require('./chunk-CUT6urMc.cjs'); const __pact_toolbox_config = require_chunk.__toESM(require("@pact-toolbox/config")); const __pact_toolbox_network = require_chunk.__toESM(require("@pact-toolbox/network")); const __pact_toolbox_utils = require_chunk.__toESM(require("@pact-toolbox/utils")); //#region src/network-worker.ts async function startNetwork() { let isCleaningUp = false; let network; try { const resolvedConfig = await (0, __pact_toolbox_config.resolveConfig)(); network = await (0, __pact_toolbox_network.createPactToolboxNetwork)(resolvedConfig, { autoStart: false, cleanup: false }); function handleShutdown(signal) { if (isCleaningUp) return; isCleaningUp = true; __pact_toolbox_utils.logger.info(`\n${signal} received. Shutting down network...`); network?.stop().catch((error) => { __pact_toolbox_utils.logger.error(`Error during cleanup after failed start:`, error); }).finally(() => { process.exit(0); }); } process.on("SIGINT", () => handleShutdown("SIGINT")); process.on("SIGTERM", () => handleShutdown("SIGTERM")); process.on("exit", () => { __pact_toolbox_utils.logger.info("Pact network stopped successfully in a separate process."); }); await network.start(); __pact_toolbox_utils.logger.info("Pact network started successfully in a separate process."); } catch (error) { __pact_toolbox_utils.logger.error(`Failed to start network ${network?.id}:`, error); if (!isCleaningUp && network) network.stop().catch((cleanupError) => { __pact_toolbox_utils.logger.error(`Error during cleanup after failed start:`, cleanupError); }).finally(() => { process.exit(1); }); } } startNetwork().catch((error) => { __pact_toolbox_utils.logger.error(`Error during cleanup after failed start:`, error); process.exit(1); }); //#endregion