MCPcopy Create free account
hub / github.com/NativeScript/SimDeck / handleRequest

Function handleRequest

scripts/studio-provider-bridge.mjs:427–479  ·  view source on GitHub ↗
(request)

Source from the content-addressed store, hash-verified

425}
426
427async function handleRequest(request) {
428 let responsePayload;
429 if (isWebSocketUpgradeRequest(request)) {
430 await complete({
431 requestId: request.id,
432 responseBodyBase64: Buffer.from(
433 "Studio provider RPC does not tunnel WebSocket upgrade requests.",
434 ).toString("base64"),
435 responseHeaders: { "content-type": "text/plain; charset=utf-8" },
436 responseStatus: 426,
437 });
438 return;
439 }
440 try {
441 responsePayload = await cachedProxyResponse(request);
442 } catch (error) {
443 console.error(
444 `[simdeck-provider-bridge] request ${request.id} ${request.method} ${request.path} failed: ${describeError(error)}`,
445 );
446 await handleLocalProxyFailure(error);
447 if (request.method !== "GET") {
448 await complete({
449 requestId: request.id,
450 error: describeError(error),
451 });
452 return;
453 }
454 try {
455 responsePayload = await proxyLocalRequest(request);
456 } catch (retryError) {
457 console.error(
458 `[simdeck-provider-bridge] request ${request.id} ${request.method} ${request.path} retry failed: ${describeError(retryError)}`,
459 );
460 await complete({
461 requestId: request.id,
462 error: describeError(retryError),
463 });
464 return;
465 }
466 }
467
468 try {
469 await complete({
470 requestId: request.id,
471 ...responsePayload,
472 });
473 } catch (error) {
474 console.error(
475 `[simdeck-provider-bridge] request ${request.id} ${request.method} ${request.path} completion failed: ${describeError(error)}`,
476 );
477 throw error;
478 }
479}
480
481function runProviderRequest(request) {
482 const task = handleRequest(request).catch((error) => {

Callers 1

runProviderRequestFunction · 0.70

Calls 9

completeFunction · 0.85
cachedProxyResponseFunction · 0.85
handleLocalProxyFailureFunction · 0.85
toStringMethod · 0.80
fromMethod · 0.80
errorMethod · 0.80
describeErrorFunction · 0.70
proxyLocalRequestFunction · 0.70

Tested by

no test coverage detected