diff --git a/.changeset/proud-masks-push.md b/.changeset/proud-masks-push.md new file mode 100644 index 00000000000..ac2b8cba5cf --- /dev/null +++ b/.changeset/proud-masks-push.md @@ -0,0 +1,5 @@ +--- +"@effect/platform-node": patch +--- + +add NodeHttpServerRequest.toServerResponse for accessing the raw node response diff --git a/packages/platform-node/src/NodeHttpServerRequest.ts b/packages/platform-node/src/NodeHttpServerRequest.ts index 4dc0d0d8824..7f013f3fdb6 100644 --- a/packages/platform-node/src/NodeHttpServerRequest.ts +++ b/packages/platform-node/src/NodeHttpServerRequest.ts @@ -9,4 +9,12 @@ import * as internal from "./internal/httpServer.js" * @category conversions * @since 1.0.0 */ -export const toIncomingMessage: (self: ServerRequest.HttpServerRequest) => Http.IncomingMessage = internal.requestSource +export const toIncomingMessage: (self: ServerRequest.HttpServerRequest) => Http.IncomingMessage = + internal.toIncomingMessage + +/** + * @category conversions + * @since 1.0.0 + */ +export const toServerResponse: (self: ServerRequest.HttpServerRequest) => Http.ServerResponse = + internal.toServerResponse diff --git a/packages/platform-node/src/internal/httpServer.ts b/packages/platform-node/src/internal/httpServer.ts index a004baa3f7d..bdeae5bc281 100644 --- a/packages/platform-node/src/internal/httpServer.ts +++ b/packages/platform-node/src/internal/httpServer.ts @@ -475,5 +475,11 @@ const handleCause = (nodeResponse: Http.ServerResponse) => (cause: Cause.Caus ) /** @internal */ -export const requestSource = (self: ServerRequest.HttpServerRequest): Http.IncomingMessage => +export const toIncomingMessage = (self: ServerRequest.HttpServerRequest): Http.IncomingMessage => (self as ServerRequestImpl).source + +/** @internal */ +export const toServerResponse = (self: ServerRequest.HttpServerRequest): Http.ServerResponse => { + const res = (self as ServerRequestImpl).response + return typeof res === "function" ? res() : res +}