26 lines · 811 B · TypeScript
RawDownload
const DEFAULT_TIMEOUT_MS = 2_000;const DEFAULT_POLL_INTERVAL_MS = 40; export async function waitForThreadShellReady(input: {  readonly read: () => boolean;  readonly timeoutMs?: number;  readonly pollIntervalMs?: number;  readonly now?: () => number;  readonly delay?: (durationMs: number) => Promise<void>;}): Promise<boolean> {  const now = input.now ?? Date.now;  const delay =    input.delay ??    ((durationMs: number) =>      new Promise<void>((resolve) => {        setTimeout(resolve, durationMs);      }));  const deadline = now() + (input.timeoutMs ?? DEFAULT_TIMEOUT_MS);  const pollIntervalMs = input.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;   while (!input.read() && now() < deadline) {    await delay(Math.min(pollIntervalMs, deadline - now()));  }   return input.read();}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t