| |
| import { Effect, Schema, Stream } from "effect" |
| import { Sse } from "effect/unstable/encoding" |
| import { HttpClientError } from "effect/unstable/http" |
| import { HttpApiClient, HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi" |
| import { ClientError } from "./client-error" |
|
|
| const Endpoint0SuccessData = Schema.Struct({ type: Schema.String }) |
|
|
| const Endpoint0SuccessError = Schema.Never |
|
|
| export const Group1 = HttpApiGroup.make("event", { topLevel: false }).add( |
| HttpApiEndpoint.make("GET")("subscribe", "/event", { |
| success: HttpApiSchema.StreamSse({ |
| data: Endpoint0SuccessData, |
| error: Endpoint0SuccessError, |
| contentType: "text/event-stream", |
| }).pipe(HttpApiSchema.status(202)), |
| }), |
| ) |
|
|
| type RawGroup = HttpApiClient.Client.Group<typeof Group1, "event", never, never> |
|
|
| const Endpoint0DeclaredError = Schema.Union([Endpoint0SuccessError]) |
| const mapEndpoint0Error = (error: unknown) => |
| HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error) |
| ? new ClientError({ cause: error }) |
| : Schema.is(Endpoint0DeclaredError)(error) |
| ? error |
| : new ClientError({ cause: error }) |
| const Endpoint0 = (raw: RawGroup) => () => |
| Stream.unwrap( |
| raw["subscribe"]({}).pipe( |
| Effect.mapError(mapEndpoint0Error), |
| Effect.map((stream) => stream.pipe(Stream.mapError(mapEndpoint0Error))), |
| ), |
| ) |
|
|
| export const adaptGroup1 = (raw: RawGroup) => ({ subscribe: Endpoint0(raw) }) |
|
|