Simplifying Middleware Application Based on Environment
Any smarter or simpler way of doing this?
Basically I wanna mount the
const ServerLive = BunHttpServer.layerConfig(config.pipe(Config.map(({ PORT }) => ({ port: PORT }))));
const devMiddlewares = (handler: typeof router) => handler.pipe(corsMiddleware, HttpMiddleware.logger);
const middlewares = (handler: typeof router) => handler.pipe(corsMiddleware);
const HttpLive = Layer.unwrapEffect(
Effect.gen(function* () {
const { NODE_ENV } = yield* config;
const applyMiddlewares = NODE_ENV === "development" ? devMiddlewares : middlewares;
const handler = applyMiddlewares(router);
return handler.pipe(
HttpServer.serve(),
HttpServer.withLogAddress,
Layer.provide(Layer.mergeAll(NexusLive, ServerLive)),
);
}),
);
BunRuntime.runMain(Layer.launch(HttpLive), { disablePrettyLogger: true });const ServerLive = BunHttpServer.layerConfig(config.pipe(Config.map(({ PORT }) => ({ port: PORT }))));
const devMiddlewares = (handler: typeof router) => handler.pipe(corsMiddleware, HttpMiddleware.logger);
const middlewares = (handler: typeof router) => handler.pipe(corsMiddleware);
const HttpLive = Layer.unwrapEffect(
Effect.gen(function* () {
const { NODE_ENV } = yield* config;
const applyMiddlewares = NODE_ENV === "development" ? devMiddlewares : middlewares;
const handler = applyMiddlewares(router);
return handler.pipe(
HttpServer.serve(),
HttpServer.withLogAddress,
Layer.provide(Layer.mergeAll(NexusLive, ServerLive)),
);
}),
);
BunRuntime.runMain(Layer.launch(HttpLive), { disablePrettyLogger: true });Basically I wanna mount the
HttpMiddleware.loggerHttpMiddleware.logger middleware only locally, cause cloud run has their own http logger.