UNPKG

everything-dev

Version:

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

75 lines (73 loc) • 3.45 kB
const require_runtime = require('../_virtual/_rolldown/runtime.cjs'); const require_config = require('../config.cjs'); const require_dev_log_pipeline = require('../dev-log-pipeline.cjs'); const require_resolution_session = require('../resolution/session.cjs'); const require_shared = require('./shared.cjs'); const require_dev_program = require('../dev-program.cjs'); let effect = require("effect"); let node_process = require("node:process"); node_process = require_runtime.__toESM(node_process, 1); //#region src/commands/dev.ts function registerDev(builder) { return { dev: builder.dev.handler(async ({ input, context }) => { const deps = effect.Context.get(context["effect/context"], require_shared.BosDepsTag); const devTimings = []; const outcome = await effect.Effect.runPromise(require_dev_program.devBootstrap(deps, input, devTimings).pipe(effect.Effect.provideService(effect.References.MinimumLogLevel, require_dev_log_pipeline.toEffectLogLevel(require_dev_log_pipeline.resolveLogLevel(node_process.default.env, input.logLevel))), effect.Effect.provide(require_dev_program.bootstrapLayers), effect.Effect.catchTags({ DevConfigMissing: () => effect.Effect.succeed({ failed: require_config.MISSING_CONFIG_MESSAGE }), DevProxyMissing: () => effect.Effect.succeed({ failed: "No valid proxy URL configured in the authored config" }), DevPreflightFailed: (error) => effect.Effect.succeed({ failed: `Infra preflight failed: ${error.messages.join("; ")}` }) }))); if ("failed" in outcome) return { status: "error", description: outcome.failed, processes: [], timings: devTimings }; return { status: "started", description: outcome.description, processes: outcome.processes, timings: devTimings, session: outcome.session }; }), start: builder.start.handler(async ({ input, context }) => { const baseDeps = effect.Context.get(context["effect/context"], require_shared.BosDepsTag); let deps = baseDeps; if (input.configPath) { const override = await require_resolution_session.openResolution({ path: input.configPath }); if (!override) return { status: "error", url: "", error: `No config found at ${input.configPath}` }; deps = { ...baseDeps, session: override }; } const outcome = await effect.Effect.runPromise(require_dev_program.startBootstrap(deps, input).pipe(effect.Effect.provide(require_dev_program.bootstrapLayers), effect.Effect.catchTags({ StartRemoteConfigMissing: (error) => effect.Effect.succeed({ failed: error.message }), StartFetchFailed: (error) => effect.Effect.succeed({ failed: error.message }), StartConfigMissing: () => effect.Effect.succeed({ failed: "No configuration found. Provide --account and --gateway flags, or create a local authored config (bos.app.ts or bos.config.json)." }), InfraError: (error) => effect.Effect.succeed({ failed: `${error.phase}: ${error.message}` }), DevStepError: (error) => effect.Effect.succeed({ failed: `${error.phase} failed: ${error.cause instanceof Error ? error.cause.message : String(error.cause)}` }) }))); if ("failed" in outcome) return { status: "error", url: "", error: outcome.failed }; return { status: "running", url: outcome.url, session: outcome.session, summary: outcome.summary }; }) }; } //#endregion exports.registerDev = registerDev; //# sourceMappingURL=dev.cjs.map