UNPKG

everything-dev

Version:

A consolidated product package for building Module Federation apps with oRPC APIs.

77 lines (75 loc) • 2.41 kB
const require_runtime = require('../_virtual/_rolldown/runtime.cjs'); const require_dev_log_pipeline = require('../dev-log-pipeline.cjs'); let node_fs = require("node:fs"); let node_path = require("node:path"); let execa = require("execa"); let node_process = require("node:process"); node_process = require_runtime.__toESM(node_process, 1); //#region src/infra/docker.ts const TAIL_LINES = 15; function takeTail(lines, count = TAIL_LINES) { return lines.slice(-count).join("\n").trim(); } function composeFilePath(configDir) { return (0, node_path.join)(configDir, "docker-compose.yml"); } function isDockerTestMode(env) { return env.BOS_TEST === "1" || env.NODE_ENV === "test" || env.BOS_NO_PERSIST_PORTS === "1"; } function shouldAutoStartDocker(failures, guards) { if (failures.length === 0) return false; if (guards.testMode || !guards.dockerAvailable || !guards.composeFileExists) return false; return failures.every((failure) => failure.tcpReachable === false); } async function isDockerAvailable() { try { return ((await (0, execa.execa)("docker", ["info"], { stdio: "pipe", reject: false, timeout: 5e3 })).exitCode ?? 1) === 0; } catch { return false; } } async function runDockerComposeUp(configDir) { try { const result = await (0, execa.execa)("docker", [ "compose", "up", "-d", "--wait" ], { cwd: configDir, stdio: "pipe", reject: false, timeout: 3e5 }); const lines = [result.stdout ?? "", result.stderr ?? ""].flatMap((output) => output.split("\n")).map((line) => require_dev_log_pipeline.stripAnsi(line).trim()).filter((line) => line.length > 0); return { ok: (result.exitCode ?? 1) === 0, tail: takeTail(lines) }; } catch (error) { return { ok: false, tail: error instanceof Error ? error.message : String(error) }; } } function detectAutoStartContext(configDir) { return { composeFileExists: (0, node_fs.existsSync)(composeFilePath(configDir)), dockerAvailable: false, testMode: isDockerTestMode(node_process.default.env) }; } //#endregion exports.composeFilePath = composeFilePath; exports.detectAutoStartContext = detectAutoStartContext; exports.isDockerAvailable = isDockerAvailable; exports.isDockerTestMode = isDockerTestMode; exports.runDockerComposeUp = runDockerComposeUp; exports.shouldAutoStartDocker = shouldAutoStartDocker; exports.takeTail = takeTail; //# sourceMappingURL=docker.cjs.map