1import { makeEnvironmentHttpApiClient } from "@t3tools/client-runtime/rpc";
2import * as Context from "effect/Context";
3import * as Effect from "effect/Effect";
4import * as Layer from "effect/Layer";
5
6import { resolvePrimaryEnvironmentHttpUrl } from "./target";
7
8type PrimaryEnvironmentHttpApiClient = Effect.Success<
9 ReturnType<typeof makeEnvironmentHttpApiClient>
10>;
11
12export interface PrimaryEnvironmentHttpClient {
13 readonly PrimaryEnvironmentHttpClient: unique symbol;
14}
15
16export const PrimaryEnvironmentHttpClient: Context.Service<
17 PrimaryEnvironmentHttpClient,
18 PrimaryEnvironmentHttpApiClient
19> = Context.Service("@t3tools/web/environments/primary/httpClient/PrimaryEnvironmentHttpClient");
20
21const make = Effect.suspend(() =>
22 makeEnvironmentHttpApiClient(resolvePrimaryEnvironmentHttpUrl("/")),
23);
24
25export const layer = Layer.effect(PrimaryEnvironmentHttpClient, make);