MCPcopy Create free account
hub / github.com/colbymchenry/codegraph / waitFor

Function waitFor

__tests__/mcp-initialize.test.ts:83–100  ·  view source on GitHub ↗
(
  events: ReadonlyArray<{ seq: number; stream: string; text: string }>,
  predicate: (e: { seq: number; stream: string; text: string }) => boolean,
  timeoutMs: number,
)

Source from the content-addressed store, hash-verified

81}
82
83function waitFor<T>(
84 events: ReadonlyArray<{ seq: number; stream: string; text: string }>,
85 predicate: (e: { seq: number; stream: string; text: string }) => boolean,
86 timeoutMs: number,
87): Promise<{ seq: number; stream: string; text: string }> {
88 return new Promise((resolve, reject) => {
89 const started = Date.now();
90 const tick = () => {
91 const hit = events.find(predicate);
92 if (hit) return resolve(hit);
93 if (Date.now() - started > timeoutMs) {
94 return reject(new Error(`Timed out waiting for predicate. Events: ${JSON.stringify(events)}`));
95 }
96 setTimeout(tick, 20);
97 };
98 tick();
99 });
100}
101
102describe('MCP initialize handshake (issue #172)', () => {
103 let tempDir: string;

Callers 2

replyForFunction · 0.70

Calls 1

tickFunction · 0.70

Tested by

no test coverage detected