MCPcopy Index your code
hub / github.com/Effect-TS/effect / makeResponse

Function makeResponse

packages/platform-bun/src/internal/httpServer.ts:112–165  ·  view source on GitHub ↗
(
  request: ServerRequest.HttpServerRequest,
  response: ServerResponse.HttpServerResponse,
  runtime: Runtime.Runtime<never>
)

Source from the content-addressed store, hash-verified

110 })
111
112const makeResponse = (
113 request: ServerRequest.HttpServerRequest,
114 response: ServerResponse.HttpServerResponse,
115 runtime: Runtime.Runtime<never>
116): Response => {
117 const fields: {
118 headers: globalThis.Headers
119 status?: number
120 statusText?: string
121 } = {
122 headers: new globalThis.Headers(response.headers),
123 status: response.status
124 }
125
126 if (!Cookies.isEmpty(response.cookies)) {
127 for (const header of Cookies.toSetCookieHeaders(response.cookies)) {
128 fields.headers.append("set-cookie", header)
129 }
130 }
131
132 if (response.statusText !== undefined) {
133 fields.statusText = response.statusText
134 }
135
136 if (request.method === "HEAD") {
137 return new Response(undefined, fields)
138 }
139 response = App.unsafeEjectStreamScope(response)
140 const body = response.body
141 switch (body._tag) {
142 case "Empty": {
143 return new Response(undefined, fields)
144 }
145 case "Uint8Array":
146 case "Raw": {
147 if (body.body instanceof Response) {
148 for (const [key, value] of fields.headers.entries()) {
149 body.body.headers.set(key, value)
150 }
151 return body.body
152 }
153 return new Response(body.body as any, fields)
154 }
155 case "FormData": {
156 return new Response(body.formData as any, fields)
157 }
158 case "Stream": {
159 return new Response(
160 Stream.toReadableStreamRuntime(body.stream, runtime),
161 fields
162 )
163 }
164 }
165}
166
167/** @internal */
168export const layerServer = <R extends { [K in keyof R]: Bun.RouterTypes.RouteValue<Extract<K, string>> } = {}>(

Calls 3

entriesMethod · 0.80
isEmptyMethod · 0.65
setMethod · 0.65

Tested by

no test coverage detected