Blame view

node_modules/raw-body/index.d.ts 2.23 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
  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;