// `createGatewayClient` builds a typed Connect-Web client for the
// gateway's authenticated edge surface. It speaks the Connect protocol
// over HTTP/1.1 (or HTTP/2 if the host upgrades the connection) — the
// gateway listener built in Phase 4 natively serves Connect, gRPC, and
// gRPC-Web on the same h2c port.
//
// The factory is intentionally thin: callers provide the Connect base
// URL (the same-origin `/rpc` prefix from `gatewayRpcBaseUrl`), and
// receive a typed
// `GatewayClient`. Authentication, signing, and response
// verification live one layer up, in `GalaxyClient`.

import { createClient, type Client } from "@connectrpc/connect";
import { createConnectTransport } from "@connectrpc/connect-web";
import { Gateway } from "../proto/edge/v1/edge_gateway_pb";

export type GatewayClient = Client<typeof Gateway>;

export function createGatewayClient(baseUrl: string): GatewayClient {
	return createClient(Gateway, createConnectTransport({ baseUrl }));
}
