(target: Target)
| 23 | } |
| 24 | |
| 25 | export const makeApiSurface = (target: Target): ApiSurface => ({ |
| 26 | client: (apiDef, identity) => |
| 27 | Effect.gen(function* () { |
| 28 | const headers = identity.headers ?? (yield* signInHeaders(target.baseUrl, identity)); |
| 29 | return yield* HttpApiClient.make(apiDef, { |
| 30 | baseUrl: new URL("/api", target.baseUrl).toString(), |
| 31 | transformClient: HttpClient.mapRequest((request) => |
| 32 | Object.entries(headers).reduce( |
| 33 | (req, [key, value]) => HttpClientRequest.setHeader(req, key, value), |
| 34 | request, |
| 35 | ), |
| 36 | ), |
| 37 | }); |
| 38 | }), |
| 39 | }); |
| 40 | |
| 41 | // Better Auth email sign-in → session cookie (selfhost). The `origin` header is |
| 42 | // required: Better Auth rejects state-changing requests without one. |
no test coverage detected