44 lines · 1.4 KB · TypeScript
RawDownload
import Constants from "expo-constants";import { makeRelayClientTracingLayer } from "@t3tools/shared/relayTracing"; import { hasMobileTracingPublicConfig, resolveCloudPublicConfig } from "../cloud/publicConfig"; export interface MobileTracingConfig {  readonly tracesUrl: string;  readonly tracesDataset: string;  readonly tracesToken: string;} export interface MobileTracingResource {  readonly serviceVersion?: string;  readonly appVariant: string;} export function resolveMobileTracingConfig(): MobileTracingConfig | null {  const config = resolveCloudPublicConfig();  if (!hasMobileTracingPublicConfig(config)) {    return null;  }  const { tracesUrl, tracesDataset, tracesToken } = config.observability;  return { tracesUrl, tracesDataset, tracesToken };} export function makeMobileTracingLayer(  config: MobileTracingConfig | null,  resource: MobileTracingResource,) {  return makeRelayClientTracingLayer(config, {    serviceName: "t3-mobile-relay-client",    serviceVersion: resource.serviceVersion,    runtime: "react-native",    client: `mobile-${resource.appVariant}`,  });} export const mobileTracingLayer = makeMobileTracingLayer(resolveMobileTracingConfig(), {  serviceVersion: Constants.expoConfig?.version,  appVariant:    typeof Constants.expoConfig?.extra?.appVariant === "string"      ? Constants.expoConfig.extra.appVariant      : "unknown",});