summaryrefslogtreecommitdiff
path: root/ext/fetch/internal.d.ts
blob: 17565992f4949de425d9151f97ae16d01ae617e1 (plain)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.

// deno-lint-ignore-file no-explicit-any no-var

/// <reference no-default-lib="true" />
/// <reference lib="esnext" />

declare var domIterable: {
  DomIterableMixin(base: any, dataSymbol: symbol): any;
};

declare module "ext:deno_fetch/20_headers.js" {
  class Headers {
  }
  type HeaderList = [string, string][];
  function headersFromHeaderList(
    list: HeaderList,
    guard:
      | "immutable"
      | "request"
      | "request-no-cors"
      | "response"
      | "none",
  ): Headers;
  function headerListFromHeaders(headers: Headers): HeaderList;
  function fillHeaders(headers: Headers, object: HeadersInit): void;
  function getDecodeSplitHeader(
    list: HeaderList,
    name: string,
  ): string[] | null;
  function guardFromHeaders(
    headers: Headers,
  ): "immutable" | "request" | "request-no-cors" | "response" | "none";
}

declare module "ext:deno_fetch/21_formdata.js" {
  type FormData = typeof FormData;
  function formDataToBlob(
    formData: FormData,
  ): Blob;
  function parseFormData(
    body: Uint8Array,
    boundary: string | undefined,
  ): FormData;
  function formDataFromEntries(entries: FormDataEntry[]): FormData;
}

declare module "ext:deno_fetch/22_body.js" {
  function mixinBody(
    prototype: any,
    bodySymbol: symbol,
    mimeTypeSymbol: symbol,
  ): void;
  class InnerBody {
    constructor(stream?: ReadableStream<Uint8Array>);
    stream: ReadableStream<Uint8Array>;
    source: null | Uint8Array | Blob | FormData;
    length: null | number;
    unusable(): boolean;
    consume(): Promise<Uint8Array>;
    clone(): InnerBody;
  }
  function extractBody(object: BodyInit): {
    body: InnerBody;
    contentType: string | null;
  };
}

declare module "ext:deno_fetch/26_fetch.js" {
  function toInnerRequest(request: Request): InnerRequest;
  function fromInnerRequest(
    inner: InnerRequest,
    guard:
      | "request"
      | "immutable"
      | "request-no-cors"
      | "response"
      | "none",
    skipBody: boolean,
  ): Request;
  function redirectStatus(status: number): boolean;
  function nullBodyStatus(status: number): boolean;
  function newInnerRequest(
    method: string,
    url: any,
    headerList?: [string, string][],
    body?: fetchBody.InnerBody,
  ): InnerResponse;
  function toInnerResponse(response: Response): InnerResponse;
  function fromInnerResponse(
    inner: InnerResponse,
    guard:
      | "request"
      | "immutable"
      | "request-no-cors"
      | "response"
      | "none",
  ): Response;
  function networkError(error: string): InnerResponse;
}