Julius MarmingeT3 Code Mobile [WIP] (#2013)b3e8c035 months agoHistory
35 lines · 1.2 KB · TypeScript
RawDownload
export function resolveTerminalRouteBootstrap(input: {  readonly hasThread: boolean;  readonly hasWorkspaceRoot: boolean;  readonly hasOpened: boolean;  readonly requestedTerminalId: string | null;  readonly currentTerminalId: string;  readonly runningTerminalId: string | null;  readonly currentTerminalStatus: "starting" | "running" | "exited" | "error" | "closed";  /** True once the attach stream has populated scrollback (`buffer` non-empty), not merely metadata. */  readonly hasCurrentTerminalHydration: boolean;}):  | { readonly kind: "idle" }  | { readonly kind: "redirect"; readonly terminalId: string }  | { readonly kind: "open" } {  if (!input.hasThread || !input.hasWorkspaceRoot || input.hasOpened) {    return { kind: "idle" };  }   if (    input.requestedTerminalId === null &&    input.runningTerminalId !== null &&    input.runningTerminalId !== input.currentTerminalId  ) {    return { kind: "redirect", terminalId: input.runningTerminalId };  }   if (    (input.currentTerminalStatus === "running" || input.currentTerminalStatus === "starting") &&    input.hasCurrentTerminalHydration  ) {    return { kind: "idle" };  }   return { kind: "open" };}