Skip to main content
This release is 6 versions behind 17.1.3 — the latest version of @oak/oak. Jump to latest

@oak/oak@16.0.0
Built and signed on GitHub Actions

A middleware framework for handling HTTP with Deno, Node.js, Bun and Cloudflare Workers 🐿️🦕🥟⚙️

This package works with Cloudflare Workers, Node.js, Deno, Bun
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
JSR Score
100%
Published
8 months ago (16.0.0)
class Body

An object which encapsulates information around a request body.

Constructors

new
Body(
serverRequest: Pick<ServerRequest,
"request"
| "headers"
| "getBody"
>
,
reviver?: JsonReviver,
)

Properties

readonly
has: boolean

Is true if the request might have a body, otherwise false.

WARNING this is an unreliable API. In HTTP/2 in many situations you cannot determine if a request has a body or not unless you attempt to read the body, due to the streaming nature of HTTP/2. As of Deno 1.16.1, for HTTP/1.1, Deno also reflects that behavior. The only reliable way to determine if a request has a body or not is to attempt to read the body.

Exposes the "raw" ReadableStream of the body.

readonly
used: boolean

Returns true if the body has been consumed yet, otherwise false.

Methods

[Symbol.for("Deno.customInspect")](inspect: (value: unknown) => string): string
[Symbol.for("nodejs.util.inspect.custom")](
depth: number,
options: any,
inspect: (
value: unknown,
options?: unknown,
) => string
,
): any

Reads a body to the end and resolves with the value as an ArrayBuffer

Reads a body to the end and resolves with the value as a Blob.

Reads a body as a URL encoded form, resolving the value as URLSearchParams.

Reads a body to the end attempting to parse the body as a set of FormData.

json(): Promise<any>

Reads a body to the end attempting to parse the body as a JSON value.

If a JSON reviver has been assigned, it will be used to parse the body.

Reads the body to the end resolving with a string.

type(customMediaTypes?: Partial<Record<BodyType, string[]>>): BodyType

Attempts to determine what type of the body is to help determine how best to attempt to decode the body. This performs analysis on the supplied Content-Type header of the request.

Note these are not authoritative and should only be used as guidance.

There is the ability to provide custom types when attempting to discern the type. Custom types are provided in the format of an object where the key is on of BodyType and the value is an array of media types to attempt to match. Values supplied will be additive to known media types.

The returned value is one of the following:

  • "binary" - The body appears to be binary data and should be consumed as an array buffer, readable stream or blob.
  • "form" - The value appears to be an URL encoded form and should be consumed as a form (URLSearchParams).
  • "form-data" - The value appears to be multipart form data and should be consumed as form data.
  • "json" - The value appears to be JSON data and should be consumed as decoded JSON.
  • "text" - The value appears to be text data and should be consumed as text.
  • "unknown" - Either there is no body or the body type could not be determined.

Add Package

deno add jsr:@oak/oak

Import symbol

import { Body } from "@oak/oak/body";

---- OR ----

Import directly with a jsr specifier

import { Body } from "jsr:@oak/oak/body";

Add Package

npx jsr add @oak/oak

Import symbol

import { Body } from "@oak/oak/body";

Add Package

yarn dlx jsr add @oak/oak

Import symbol

import { Body } from "@oak/oak/body";

Add Package

pnpm dlx jsr add @oak/oak

Import symbol

import { Body } from "@oak/oak/body";

Add Package

bunx jsr add @oak/oak

Import symbol

import { Body } from "@oak/oak/body";