From f3496a6944827aa36eb10fbcaed84a10c0f96c2e Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Fri, 19 Jun 2026 19:05:38 -0700 Subject: [PATCH] Refactor primary HTTP Effect service Co-authored-by: codex --- apps/web/src/environments/primary/httpClient.ts | 13 +++++-------- apps/web/src/lib/runtime.ts | 14 ++++++-------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/apps/web/src/environments/primary/httpClient.ts b/apps/web/src/environments/primary/httpClient.ts index d5cb22433c4..a7860ec610c 100644 --- a/apps/web/src/environments/primary/httpClient.ts +++ b/apps/web/src/environments/primary/httpClient.ts @@ -5,16 +5,13 @@ import * as Layer from "effect/Layer"; import { resolvePrimaryEnvironmentHttpUrl } from "./target"; -export type PrimaryEnvironmentHttpClientShape = Effect.Success< - ReturnType ->; - export class PrimaryEnvironmentHttpClient extends Context.Service< PrimaryEnvironmentHttpClient, - PrimaryEnvironmentHttpClientShape + Effect.Success> >()("@t3tools/web/environments/primary/httpClient/PrimaryEnvironmentHttpClient") {} -export const primaryEnvironmentHttpClientLive = Layer.effect( - PrimaryEnvironmentHttpClient, - Effect.suspend(() => makeEnvironmentHttpApiClient(resolvePrimaryEnvironmentHttpUrl("/"))), +const make = Effect.suspend(() => + makeEnvironmentHttpApiClient(resolvePrimaryEnvironmentHttpUrl("/")), ); + +export const layer = Layer.effect(PrimaryEnvironmentHttpClient, make); diff --git a/apps/web/src/lib/runtime.ts b/apps/web/src/lib/runtime.ts index cf4ffb0845d..e4bea61f143 100644 --- a/apps/web/src/lib/runtime.ts +++ b/apps/web/src/lib/runtime.ts @@ -5,10 +5,7 @@ import * as Socket from "effect/unstable/socket/Socket"; import { remoteHttpClientLayer } from "@t3tools/client-runtime/rpc"; import { makeRelayClientTracingLayer } from "@t3tools/shared/relayTracing"; -import { - PrimaryEnvironmentHttpClient, - primaryEnvironmentHttpClientLive, -} from "../environments/primary/httpClient"; +import * as PrimaryEnvironmentHttpClient from "../environments/primary/httpClient"; import { primaryEnvironmentHttpLayer } from "../environments/primary/httpLayer"; import { browserCryptoLayer } from "../cloud/dpop"; @@ -30,11 +27,11 @@ const relayTracingLayer = makeRelayClientTracingLayer(resolveRelayTracingConfig( export const remoteHttpRuntime = ManagedRuntime.make(httpClientLayer); const primaryHttpRuntime = ManagedRuntime.make( - primaryEnvironmentHttpClientLive.pipe(Layer.provide(primaryEnvironmentHttpLayer)), + PrimaryEnvironmentHttpClient.layer.pipe(Layer.provide(primaryEnvironmentHttpLayer)), ); export type PrimaryHttpEffectRunner = ( - effect: Effect.Effect, + effect: Effect.Effect, ) => Promise; const livePrimaryHttpRunner: PrimaryHttpEffectRunner = (effect) => @@ -42,8 +39,9 @@ const livePrimaryHttpRunner: PrimaryHttpEffectRunner = (effect) => let primaryHttpRunner = livePrimaryHttpRunner; -export const runPrimaryHttp = (effect: Effect.Effect) => - primaryHttpRunner(effect); +export const runPrimaryHttp = ( + effect: Effect.Effect, +) => primaryHttpRunner(effect); export function __setPrimaryHttpRunnerForTests(runner?: PrimaryHttpEffectRunner): void { primaryHttpRunner = runner ?? livePrimaryHttpRunner;