import { Effect, Layer, pipe } from "effect";
import { SocketServer } from "@effect/experimental";
import * as NodeSocketServer from "@effect/experimental/SocketServer/Node";
import { NodeRuntime } from "@effect/platform-node";
const RunLive = Layer.effectDiscard( // side note is there a Layer.effectDiscardScoped
Effect.gen(function* () {
const server = yield* SocketServer.SocketServer;
yield* server.run((socket) =>
Effect.gen(function* () {
yield* Effect.log("Connected");
const writer = yield* socket.writer;
yield* socket.run((messaage) => writer(messaage));
})
);
}).pipe(Effect.scoped)
);
pipe(
RunLive,
Layer.provide(NodeSocketServer.layer({ port: 3002 })),
Layer.launch,
NodeRuntime.runMain
);
import { Effect, Layer, pipe } from "effect";
import { SocketServer } from "@effect/experimental";
import * as NodeSocketServer from "@effect/experimental/SocketServer/Node";
import { NodeRuntime } from "@effect/platform-node";
const RunLive = Layer.effectDiscard( // side note is there a Layer.effectDiscardScoped
Effect.gen(function* () {
const server = yield* SocketServer.SocketServer;
yield* server.run((socket) =>
Effect.gen(function* () {
yield* Effect.log("Connected");
const writer = yield* socket.writer;
yield* socket.run((messaage) => writer(messaage));
})
);
}).pipe(Effect.scoped)
);
pipe(
RunLive,
Layer.provide(NodeSocketServer.layer({ port: 3002 })),
Layer.launch,
NodeRuntime.runMain
);