MCPcopy Create free account
hub / github.com/modelcontextprotocol/ext-apps / waitForViewerState

Function waitForViewerState

examples/pdf-server/server.ts:319–338  ·  view source on GitHub ↗

* Wait for the viewer to report its current state (page, zoom, selection, …) * as a JSON string. Same timeout/abort semantics as waitForSaveData.

(
  requestId: string,
  signal?: AbortSignal,
)

Source from the content-addressed store, hash-verified

317 * as a JSON string. Same timeout/abort semantics as waitForSaveData.
318 */
319function waitForViewerState(
320 requestId: string,
321 signal?: AbortSignal,
322): Promise<string> {
323 return new Promise<string>((resolve, reject) => {
324 const settle = (v: string | Error) => {
325 clearTimeout(timer);
326 signal?.removeEventListener("abort", onAbort);
327 pendingStateRequests.delete(requestId);
328 v instanceof Error ? reject(v) : resolve(v);
329 };
330 const onAbort = () => settle(new Error("interact request cancelled"));
331 const timer = setTimeout(
332 () => settle(new Error("Timeout waiting for viewer state")),
333 GET_PAGES_TIMEOUT_MS,
334 );
335 signal?.addEventListener("abort", onAbort);
336 pendingStateRequests.set(requestId, settle);
337 });
338}
339
340interface QueueEntry {
341 commands: PdfCommand[];

Callers 1

processInteractCommandFunction · 0.85

Calls 2

settleFunction · 0.85
addEventListenerMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…