const setAllowedOrigins = HttpMiddleware.make((app) =>
Effect.gen(function*() {
const req = yield* HttpServerRequest.HttpServerRequest
const allowedOrigins = req.headers["origin"] ?? "*"
let response = HttpServerResponse.empty().pipe(HttpServerResponse.setStatus(204))
if (req.method !== "OPTIONS") {
response = yield* app
}
return response.pipe(
HttpServerResponse.setHeader("access-control-allow-origin", allowedOrigins),
HttpServerResponse.setHeader("access-control-allow-credentials", "true"),
HttpServerResponse.setHeader("access-control-allow-methods", "GET, HEAD, PUT, PATCH, POST, DELETE"),
HttpServerResponse.setHeader(
"access-control-allow-headers",
"content-type, content-range, content-disposition, content-description, authorization, traceparent, b3"
)
)
})
)
const setAllowedOrigins = HttpMiddleware.make((app) =>
Effect.gen(function*() {
const req = yield* HttpServerRequest.HttpServerRequest
const allowedOrigins = req.headers["origin"] ?? "*"
let response = HttpServerResponse.empty().pipe(HttpServerResponse.setStatus(204))
if (req.method !== "OPTIONS") {
response = yield* app
}
return response.pipe(
HttpServerResponse.setHeader("access-control-allow-origin", allowedOrigins),
HttpServerResponse.setHeader("access-control-allow-credentials", "true"),
HttpServerResponse.setHeader("access-control-allow-methods", "GET, HEAD, PUT, PATCH, POST, DELETE"),
HttpServerResponse.setHeader(
"access-control-allow-headers",
"content-type, content-range, content-disposition, content-description, authorization, traceparent, b3"
)
)
})
)