diff --git a/packages/server/src/express/ExpressApp.ts b/packages/server/src/http/ExpressApp.ts similarity index 100% rename from packages/server/src/express/ExpressApp.ts rename to packages/server/src/http/ExpressApp.ts diff --git a/packages/server/src/express/ExpressHTTPServer.ts b/packages/server/src/http/ExpressHTTPServer.ts similarity index 100% rename from packages/server/src/express/ExpressHTTPServer.ts rename to packages/server/src/http/ExpressHTTPServer.ts diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index bf52c56..ca623bb 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -4,8 +4,8 @@ import { Identifiable } from "@todo-tests/common/traits" import { Chunk, Effect, Layer, Stream } from "effect" import { ServicesLive } from "./Services" import { TodoRepository, createDefaultTodos } from "./TodoRepository" -import { ExpressApp } from "./express/ExpressApp" -import { ExpressHTTPServer } from "./express/ExpressHTTPServer" +import { ExpressApp } from "./http/ExpressApp" +import { ExpressHTTPServer } from "./http/ExpressHTTPServer" import { RPCPlaygroundRoute } from "./rpc/RPCPlaygroundRoute" import { RPCRouter } from "./rpc/RPCRouter" import { RPCServerRoute } from "./rpc/RPCServerRoute" diff --git a/packages/server/src/rpc/RPCPlaygroundRoute.ts b/packages/server/src/rpc/RPCPlaygroundRoute.ts index aae1a3c..403c939 100644 --- a/packages/server/src/rpc/RPCPlaygroundRoute.ts +++ b/packages/server/src/rpc/RPCPlaygroundRoute.ts @@ -1,7 +1,7 @@ import { Effect, Layer } from "effect" import { expressHandler } from "trpc-playground/handlers/express" import { rpcHTTPPlaygroundRoot, rpcHTTPRoot } from "../config" -import { ExpressApp } from "../express/ExpressApp" +import { ExpressApp } from "../http/ExpressApp" import { RPCRouter } from "./RPCRouter" diff --git a/packages/server/src/rpc/RPCServerRoute.ts b/packages/server/src/rpc/RPCServerRoute.ts index 950e1ff..a8a8e53 100644 --- a/packages/server/src/rpc/RPCServerRoute.ts +++ b/packages/server/src/rpc/RPCServerRoute.ts @@ -1,7 +1,7 @@ import { createExpressMiddleware } from "@trpc/server/adapters/express" import { Effect, Layer } from "effect" import { rpcHTTPRoot } from "../config" -import { ExpressApp } from "../express/ExpressApp" +import { ExpressApp } from "../http/ExpressApp" import { TRPCContextCreator } from "../trpc/TRPCContextCreator" import { RPCRouter } from "./RPCRouter" diff --git a/packages/server/src/rpc/RPCWebSocketServer.ts b/packages/server/src/rpc/RPCWebSocketServer.ts index 9047e11..f2611e0 100644 --- a/packages/server/src/rpc/RPCWebSocketServer.ts +++ b/packages/server/src/rpc/RPCWebSocketServer.ts @@ -1,7 +1,7 @@ import { applyWSSHandler } from "@trpc/server/adapters/ws" import { Context, Effect, Layer, Runtime } from "effect" import ws from "ws" -import { ExpressHTTPServer } from "../express/ExpressHTTPServer" +import { ExpressHTTPServer } from "../http/ExpressHTTPServer" import { TRPCContextCreator } from "../trpc/TRPCContextCreator" import { RPCRouter } from "./RPCRouter" @@ -33,8 +33,12 @@ export module RPCWebSocketServer { }), ({ wss, handler }) => Effect.gen(function*() { + yield* Effect.logInfo(`WebSocket server is closing. Waiting for existing connections to end...`) + handler.broadcastReconnectNotification() - wss.close() + yield* Effect.async(resume => { + wss.close(() => resume(Effect.logInfo(`WebSocket server closed`))) + }) }), )) }