(path)
| 614 | } |
| 615 | |
| 616 | async function localJson(path) { |
| 617 | const target = new URL(path, `${localUrl}/`); |
| 618 | target.searchParams.set("simdeckToken", localToken); |
| 619 | let response; |
| 620 | try { |
| 621 | response = await fetch(target, { |
| 622 | headers: { "x-simdeck-token": localToken }, |
| 623 | signal: AbortSignal.timeout(Math.min(proxyTimeoutMs, 5000)), |
| 624 | }); |
| 625 | } catch (error) { |
| 626 | throw new Error(`Local SimDeck request ${target.origin}${path} failed`, { |
| 627 | cause: error, |
| 628 | }); |
| 629 | } |
| 630 | if (!response.ok) { |
| 631 | throw new Error( |
| 632 | `${target.href} failed with ${response.status}: ${await response.text()}`, |
| 633 | ); |
| 634 | } |
| 635 | return response.json(); |
| 636 | } |
| 637 | |
| 638 | async function complete(payload) { |
| 639 | await fetchJson(`${cloudUrl}/api/actions/providers/rpc/complete`, { |
no test coverage detected