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

Function requestPayload

packages/platform/src/HttpApiBuilder.ts:544–574  ·  view source on GitHub ↗
(
  request: HttpServerRequest.HttpServerRequest,
  urlParams: ReadonlyRecord<string, string | Array<string>>,
  multipartLimits: Option.Option<Multipart.withLimits.Options>
)

Source from the content-addressed store, hash-verified

542// internal
543
544const requestPayload = (
545 request: HttpServerRequest.HttpServerRequest,
546 urlParams: ReadonlyRecord<string, string | Array<string>>,
547 multipartLimits: Option.Option<Multipart.withLimits.Options>
548): Effect.Effect<
549 unknown,
550 never,
551 | FileSystem
552 | Path
553 | Scope
554> => {
555 if (!HttpMethod.hasBody(request.method)) {
556 return Effect.succeed(urlParams)
557 }
558 const contentType = request.headers["content-type"]
559 ? request.headers["content-type"].toLowerCase().trim()
560 : "application/json"
561 if (contentType.includes("application/json")) {
562 return Effect.orDie(request.json)
563 } else if (contentType.includes("multipart/form-data")) {
564 return Effect.orDie(Option.match(multipartLimits, {
565 onNone: () => request.multipart,
566 onSome: (limits) => Multipart.withLimits(request.multipart, limits)
567 }))
568 } else if (contentType.includes("x-www-form-urlencoded")) {
569 return Effect.map(Effect.orDie(request.urlParamsBody), UrlParams.toRecord)
570 } else if (contentType.startsWith("text/")) {
571 return Effect.orDie(request.text)
572 }
573 return Effect.map(Effect.orDie(request.arrayBuffer), (buffer) => new Uint8Array(buffer))
574}
575
576type MiddlewareMap = Map<string, {
577 readonly tag: HttpApiMiddleware.TagClassAny

Callers 1

handlerToRouteFunction · 0.85

Calls 1

mapMethod · 0.65

Tested by

no test coverage detected