19 lines
742 B
TypeScript
19 lines
742 B
TypeScript
import { Effect } from "effect"
|
|
import { Commands } from "../../commands"
|
|
import { Config } from "../../../config"
|
|
import { Runtime } from "../../../framework/runtime"
|
|
|
|
export default Runtime.handler(
|
|
Commands.commands.server.commands.remove,
|
|
Effect.fn("cli.server.remove")(function* (input) {
|
|
const config = yield* Config.Service
|
|
if ((yield* config.get()).servers?.[input.name] === undefined)
|
|
return yield* Effect.fail(new Error(`Saved server "${input.name}" not found`))
|
|
yield* config.update((draft) => {
|
|
if (!draft.servers) return
|
|
delete draft.servers[input.name]
|
|
if (!Object.keys(draft.servers).length) delete draft.servers
|
|
})
|
|
process.stdout.write(`Removed server ${input.name}\n`)
|
|
}),
|
|
)
|