import * as Effect from "effect/Effect";import { Command, GlobalFlag } from "effect/unstable/cli"; import { ServerConfig, type StartupPresentation } from "../config.ts";import { runServer } from "../server.ts";import { type CliServerFlags, resolveServerConfig, sharedServerCommandFlags } from "./config.ts"; export const runServerCommand = ( flags: CliServerFlags, options?: { readonly startupPresentation?: StartupPresentation; readonly forceAutoBootstrapProjectFromCwd?: boolean; },) => Effect.gen(function* () { const logLevel = yield* GlobalFlag.LogLevel; const config = yield* resolveServerConfig(flags, logLevel, options); return yield* runServer.pipe(Effect.provideService(ServerConfig, config)); }); export const startCommand = Command.make("start", { ...sharedServerCommandFlags }).pipe( Command.withDescription("Run the T3 Code server."), Command.withHandler((flags) => runServerCommand(flags)),); export const serveCommand = Command.make("serve", { ...sharedServerCommandFlags }).pipe( Command.withDescription( "Run the T3 Code server without opening a browser and print headless pairing details.", ), Command.withHandler((flags) => runServerCommand(flags, { startupPresentation: "headless", forceAutoBootstrapProjectFromCwd: false, }), ),);
import * as Effect from "effect/Effect";
import { Command, GlobalFlag } from "effect/unstable/cli";
import { ServerConfig, type StartupPresentation } from "../config.ts";
import { runServer } from "../server.ts";
import { type CliServerFlags, resolveServerConfig, sharedServerCommandFlags } from "./config.ts";
export const runServerCommand = (
flags: CliServerFlags,
options?: {
readonly startupPresentation?: StartupPresentation;
readonly forceAutoBootstrapProjectFromCwd?: boolean;
},
) =>
Effect.gen(function* () {
const logLevel = yield* GlobalFlag.LogLevel;
const config = yield* resolveServerConfig(flags, logLevel, options);
return yield* runServer.pipe(Effect.provideService(ServerConfig, config));
});
export const startCommand = Command.make("start", { ...sharedServerCommandFlags }).pipe(
Command.withDescription("Run the T3 Code server."),
Command.withHandler((flags) => runServerCommand(flags)),
);
export const serveCommand = Command.make("serve", { ...sharedServerCommandFlags }).pipe(
Command.withDescription(
"Run the T3 Code server without opening a browser and print headless pairing details.",
),
Command.withHandler((flags) =>
runServerCommand(flags, {
startupPresentation: "headless",
forceAutoBootstrapProjectFromCwd: false,
}),
),
);