EventGroup
Defines groups of typed events for the unstable event-log system.
An EventGroup collects event definitions that belong together. Start with
empty, add events with their payload, success, and error schemas, then use
the group to build clients with EventLog.schema and server handlers with
EventLog.group. The group only describes events; it does not write or run
them.
Constructors
Guards
isEventGroup
Returns true when a value is an event log event group.
Signature
declare function isEventGroup(u: unknown): u is AnyModels
Type-erased marker for an event log event group.
Signature
interface Any { readonly "~effect/eventlog/EventGroup": "~effect/eventlog/EventGroup";}AnyWithProps type
Type-erased event group with its events record available structurally.
Signature
type AnyWithProps = EventGroup<Event.Any>EventGroup interface
Typed collection of event definitions that represents a portion of an event log domain.
When to use
Use when build groups from empty.add(...), then provide implementations for the events
with EventLog.group.
Signature
interface EventGroup<out Events extends Event.Any = Event.Any> extends Pipeable { readonly "~effect/eventlog/EventGroup": "~effect/eventlog/EventGroup"; readonly events: Record.ReadonlyRecord<string, Events>; add<Tag extends string, Payload extends Top = Void, Success extends Top = Void, Error extends Top = Never>(options: { readonly error?: Error; readonly payload?: Payload; readonly primaryKey: (payload: Type<Payload>) => string; readonly success?: Success; readonly tag: Tag; }): EventGroup<Events | Event<Tag, Payload, Success, Error>>; addError<Error extends Top>(error: Error): EventGroup<AddError<Events, Error>>;}Type IDs
Runtime type identifier used to mark event log event groups.
Signature
declare const TypeId: "~effect/eventlog/EventGroup"Unique type identifier used to mark event log event groups.
Signature
type TypeId = "~effect/eventlog/EventGroup"Utility Types
Extracts the union of event definitions contained in an event group.
Signature
type Events<Group> = Group extends EventGroup<infer _Events> ? _Events : neverServicesClient type
Client-side schema services required by all events in an event group.
Signature
type ServicesClient<Group> = Event.ServicesClient<Events<Group>>ServicesServer type
Server-side schema services required by all events in an event group.
Signature
type ServicesServer<Group> = Event.ServicesServer<Events<Group>>Derives the handler service markers required for all events in an event group.
Signature
type ToService<A> = A extends EventGroup<infer _Events> ? Event.ToService<_Events> : never