Julius MarmingeT3 Code Mobile [WIP] (#2013)b3e8c035 months agoHistory
63 lines · 1.8 KB · TypeScript
RawDownload
import {  WsTransport as BaseWsTransport,  type WsProtocolLifecycleHandlers,  type WsRpcProtocolSocketUrlProvider,  type WsTransportOptions,} from "@t3tools/client-runtime";import { createWsRpcProtocolLayer as createSharedWsRpcProtocolLayer } from "@t3tools/client-runtime"; import { ClientTracingLive } from "../observability/clientTracing";import {  acknowledgeRpcRequest,  clearAllTrackedRpcRequests,  trackRpcRequestSent,} from "./requestLatencyState";import {  recordWsConnectionAttempt,  recordWsConnectionClosed,  recordWsConnectionErrored,  recordWsConnectionOpened,} from "./wsConnectionState"; function createWsRpcProtocolLayer(  url: WsRpcProtocolSocketUrlProvider,  handlers?: WsProtocolLifecycleHandlers,) {  return createSharedWsRpcProtocolLayer(url, handlers, {    telemetryLifecycle: {      onAttempt: recordWsConnectionAttempt,      onOpen: recordWsConnectionOpened,      onError: (message) => {        clearAllTrackedRpcRequests();        recordWsConnectionErrored(message);      },      onClose: (details, context) => {        clearAllTrackedRpcRequests();        if (context.intentional) {          return;        }        recordWsConnectionClosed(details);      },    },    requestTelemetry: {      onRequestSent: trackRpcRequestSent,      onRequestAcknowledged: acknowledgeRpcRequest,      onClearTrackedRequests: clearAllTrackedRpcRequests,    },  });} const webWsTransportOptions = {  tracingLayer: ClientTracingLive,  createProtocolLayer: createWsRpcProtocolLayer,  onBeforeReconnect: () => clearAllTrackedRpcRequests(),} satisfies WsTransportOptions; export class WsTransport extends BaseWsTransport {  constructor(    url: WsRpcProtocolSocketUrlProvider,    lifecycleHandlers?: WsProtocolLifecycleHandlers,  ) {    super(url, lifecycleHandlers, webWsTransportOptions);  }}

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