UNPKG

everything-dev

Version:

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

89 lines (87 loc) • 3.17 kB
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs'); const require_progress = require('../../services/dev/progress.cjs'); const require_exit_codes = require('../exit-codes.cjs'); const require_dev = require('../render/dev.cjs'); let _clack_prompts = require("@clack/prompts"); _clack_prompts = require_runtime.__toESM(_clack_prompts, 1); //#region src/cli/commands/dev.ts const mountSession = async (projectDir, session) => { const [{ devApp }, { DevRendererCliLive }] = await Promise.all([Promise.resolve().then(() => require("../../services/dev/session.cjs")), Promise.resolve().then(() => require("../render/dev-render.cjs"))]); devApp(projectDir ?? process.cwd(), session, DevRendererCliLive); }; const runDev = async (ctx) => { const client = ctx.client; const input = ctx.input; ctx.outdatedWarning; const projectDir = ctx.projectDir; const devSpinner = _clack_prompts.spinner(); devSpinner.start("Starting dev environment"); const devPhaseLabels = { "shared deps": "Preparing config...", install: "Installing dependencies...", build: "Building...", "resolve config": "Resolving config...", ports: "Finding available ports...", "docker compose up": "Starting local Postgres...", "generate artifacts": "Generating code artifacts..." }; const onDevProgress = (event) => { const label = devPhaseLabels[event.phase] ?? event.phase; if (event.status === "running") devSpinner.message(label); }; require_progress.pluginEvents.on("progress", onDevProgress); let result; try { result = await client.dev(input); } finally { require_progress.pluginEvents.off("progress", onDevProgress); } if (require_exit_codes.exitCodeFor(result) === 1) { devSpinner.stop("Failed"); console.error(`[CLI] ${result.description}`); process.exit(1); } devSpinner.stop(); require_dev.clearSpinnerStopLine(); const session = result.session; if (session) await mountSession(projectDir, session); }; const runStart = async (ctx) => { const client = ctx.client; const input = ctx.input; ctx.outdatedWarning; const projectDir = ctx.projectDir; const startSpinner = _clack_prompts.spinner(); startSpinner.start("Starting production environment"); const startPhaseLabels = { config: "Preparing config...", "generate artifacts": "Generating code artifacts..." }; const onStartProgress = (event) => { const label = startPhaseLabels[event.phase] ?? event.phase; if (event.status === "running") startSpinner.message(label); }; require_progress.pluginEvents.on("progress", onStartProgress); let result; try { result = await client.start(input); } finally { require_progress.pluginEvents.off("progress", onStartProgress); } if (require_exit_codes.exitCodeFor(result) === 1) { startSpinner.stop("Failed"); console.error(`[CLI] ${result.error || "Unknown error"}`); process.exit(1); } startSpinner.stop("Ready"); const session = result.session; const summary = result.summary; if (session) { if (summary) require_dev.printStartSummary(summary); await mountSession(projectDir, session); } }; //#endregion exports.runDev = runDev; exports.runStart = runStart; //# sourceMappingURL=dev.cjs.map