| import { Readable } from 'stream'; |
| |
| declare namespace getRawBody { |
| export type Encoding = string | true; |
| |
| export interface Options { |
| /** |
| * The expected length of the stream. |
| */ |
| length?: number | string | null; |
| /** |
| * The byte limit of the body. This is the number of bytes or any string |
| * format supported by `bytes`, for example `1000`, `'500kb'` or `'3mb'`. |
| */ |
| limit?: number | string | null; |
| /** |
| * The encoding to use to decode the body into a string. By default, a |
| * `Buffer` instance will be returned when no encoding is specified. Most |
| * likely, you want `utf-8`, so setting encoding to `true` will decode as |
| * `utf-8`. You can use any type of encoding supported by `iconv-lite`. |
| */ |
| encoding?: Encoding | null; |
| } |
| |
| export interface RawBodyError extends Error { |
| /** |
| * The limit in bytes. |
| */ |
| limit?: number; |
| /** |
| * The expected length of the stream. |
| */ |
| length?: number; |
| expected?: number; |
| /** |
| * The received bytes. |
| */ |
| received?: number; |
| /** |
| * The encoding. |
| */ |
| encoding?: string; |
| /** |
| * The corresponding status code for the error. |
| */ |
| status: number; |
| statusCode: number; |
| /** |
| * The error type. |
| */ |
| type: string; |
| } |
| } |
| |
| /** |
| * Gets the entire buffer of a stream either as a `Buffer` or a string. |
| * Validates the stream's length against an expected length and maximum |
| * limit. Ideal for parsing request bodies. |
| */ |
| declare function getRawBody( |
| stream: Readable, |
| callback: (err: getRawBody.RawBodyError, body: Buffer) => void |
| ): void; |
| |
| declare function getRawBody( |
| stream: Readable, |
| options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding, |
| callback: (err: getRawBody.RawBodyError, body: string) => void |
| ): void; |
| |
| declare function getRawBody( |
| stream: Readable, |
| options: getRawBody.Options, |
| callback: (err: getRawBody.RawBodyError, body: Buffer) => void |
| ): void; |
| |
| declare function getRawBody( |
| stream: Readable, |
| options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding |
| ): Promise<string>; |
| |
| declare function getRawBody( |
| stream: Readable, |
| options?: getRawBody.Options |
| ): Promise<Buffer>; |
| |
| export = getRawBody; |