UNPKG

@codeforbreakfast/eventsourcing-websocket

Version:

Batteries-included WebSocket event sourcing package - Complete WebSocket transport with default protocol for rapid event sourcing development

16 lines (15 loc) 705 B
// src/lib/index.ts import { Context, Effect, Layer, pipe } from "effect"; import { WebSocketConnector } from "@codeforbreakfast/eventsourcing-transport-websocket"; import { Protocol, ProtocolLive } from "@codeforbreakfast/eventsourcing-protocol"; var buildProtocolLayer = (layer) => pipe(layer, Layer.build, Effect.map((context) => Context.get(context, Protocol))); var connect = (url) => { return pipe(url, WebSocketConnector.connect, Effect.andThen(buildProtocolLayer(makeWebSocketProtocolLayer(url)))); }; var makeWebSocketProtocolLayer = (url) => { return Layer.unwrapScoped(pipe(url, WebSocketConnector.connect, Effect.map(ProtocolLive))); }; export { makeWebSocketProtocolLayer, connect };