@pact-toolbox/unplugin
Version:
47 lines (45 loc) • 1.84 kB
JavaScript
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