Primitives / foldkit-primitives/net
sse
function · packages/primitives/src/net/sse.ts:104
function sse<const Name extends string>(config: {
readonly name: Name
readonly createSource?: ((url: string) => SourceHandle) | undefined
}): Bundle.Bundle<
Name,
{ readonly url: string },
{
readonly url: string
readonly status: 'open' | 'closed' | 'connecting'
readonly lastError: string | null
},
| { readonly _tag: 'Opened' }
| { readonly _tag: 'Closed' }
| { readonly _tag: 'Failed'; readonly message: string }
| { readonly _tag: 'Received'; readonly data: string }
| { readonly _tag: 'Connecting' },
never,
ManagedResource.ManagedResourceService<'sse'>,
ManagedResource.ManagedResourceService<'sse'>,
void,
Readonly<{
source: ManagedResource.Entry<
SseModel,
SseMessage,
Option.Option<string>,
AcquiredSource,
SourceService,
() => SseMessage
>
}>,
{}
>Server-sent events as a bundle: connection lifecycle in the Model, the event stream through one Managed Resource. One-directional, so there is no send: the server speaks, the Model listens. The browser reconnects dropped streams itself; a Failed only records the error.