refactor(cli): convert debug subcommands to effectCmd (#25479)

This commit is contained in:
Kit Langton
2026-05-02 19:22:51 -04:00
committed by GitHub
parent 9d03d4419e
commit 4de44bbbef
6 changed files with 185 additions and 139 deletions

View File

@@ -1,17 +1,21 @@
import { EOL } from "os"
import { Effect } from "effect"
import { Config } from "@/config/config"
import { AppRuntime } from "@/effect/app-runtime"
import { bootstrap } from "../../bootstrap"
import { cmd } from "../cmd"
import { effectCmd } from "../../effect-cmd"
import { InstanceRef } from "@/effect/instance-ref"
import { InstanceStore } from "@/project/instance-store"
export const ConfigCommand = cmd({
export const ConfigCommand = effectCmd({
command: "config",
describe: "show resolved configuration",
builder: (yargs) => yargs,
async handler() {
await bootstrap(process.cwd(), async () => {
const config = await AppRuntime.runPromise(Config.Service.use((cfg) => cfg.get()))
handler: Effect.fn("Cli.debug.config")(function* () {
const ctx = yield* InstanceRef
if (!ctx) return
const store = yield* InstanceStore.Service
return yield* Effect.gen(function* () {
const config = yield* Config.Service.use((cfg) => cfg.get())
process.stdout.write(JSON.stringify(config, null, 2) + EOL)
})
},
}).pipe(Effect.ensuring(store.dispose(ctx)))
}),
})