mirror of
https://github.com/denoland/deno.git
synced 2024-12-23 07:44:48 -05:00
461 lines
12 KiB
TypeScript
461 lines
12 KiB
TypeScript
/*! ****************************************************************************
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
this file except in compliance with the License. You may obtain a copy of the
|
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
|
|
See the Apache Version 2.0 License for specific language governing permissions
|
|
and limitations under the License.
|
|
*******************************************************************************/
|
|
|
|
type HeadersInit = Headers | string[][] | Record<string, string>;
|
|
type BodyInit =
|
|
| Blob
|
|
| BufferSource
|
|
| FormData
|
|
| URLSearchParams
|
|
| ReadableStream
|
|
| string;
|
|
type RequestInfo = Request | string;
|
|
type ReferrerPolicy =
|
|
| ""
|
|
| "no-referrer"
|
|
| "no-referrer-when-downgrade"
|
|
| "origin-only"
|
|
| "origin-when-cross-origin"
|
|
| "unsafe-url";
|
|
type BlobPart = BufferSource | Blob | string;
|
|
type FormDataEntryValue = File | string;
|
|
declare type EventListenerOrEventListenerObject =
|
|
| EventListener
|
|
| EventListenerObject;
|
|
|
|
interface Element {
|
|
// TODO
|
|
}
|
|
|
|
interface HTMLFormElement {
|
|
// TODO
|
|
}
|
|
|
|
interface BlobPropertyBag {
|
|
type?: string;
|
|
}
|
|
|
|
interface AbortSignalEventMap {
|
|
abort: ProgressEvent;
|
|
}
|
|
|
|
interface EventTarget {
|
|
addEventListener(
|
|
type: string,
|
|
listener: EventListenerOrEventListenerObject | null,
|
|
options?: boolean | AddEventListenerOptions
|
|
): void;
|
|
dispatchEvent(evt: Event): boolean;
|
|
removeEventListener(
|
|
type: string,
|
|
listener?: EventListenerOrEventListenerObject | null,
|
|
options?: EventListenerOptions | boolean
|
|
): void;
|
|
}
|
|
|
|
interface ProgressEventInit extends EventInit {
|
|
lengthComputable?: boolean;
|
|
loaded?: number;
|
|
total?: number;
|
|
}
|
|
|
|
interface URLSearchParams {
|
|
/**
|
|
* Appends a specified key/value pair as a new search parameter.
|
|
*/
|
|
append(name: string, value: string): void;
|
|
/**
|
|
* Deletes the given search parameter, and its associated value,
|
|
* from the list of all search parameters.
|
|
*/
|
|
delete(name: string): void;
|
|
/**
|
|
* Returns the first value associated to the given search parameter.
|
|
*/
|
|
get(name: string): string | null;
|
|
/**
|
|
* Returns all the values association with a given search parameter.
|
|
*/
|
|
getAll(name: string): string[];
|
|
/**
|
|
* Returns a Boolean indicating if such a search parameter exists.
|
|
*/
|
|
has(name: string): boolean;
|
|
/**
|
|
* Sets the value associated to a given search parameter to the given value.
|
|
* If there were several values, delete the others.
|
|
*/
|
|
set(name: string, value: string): void;
|
|
sort(): void;
|
|
forEach(
|
|
callbackfn: (value: string, key: string, parent: URLSearchParams) => void,
|
|
thisArg?: any
|
|
): void;
|
|
}
|
|
|
|
interface EventListener {
|
|
(evt: Event): void;
|
|
}
|
|
|
|
interface EventInit {
|
|
bubbles?: boolean;
|
|
cancelable?: boolean;
|
|
composed?: boolean;
|
|
}
|
|
|
|
interface Event {
|
|
readonly bubbles: boolean;
|
|
cancelBubble: boolean;
|
|
readonly cancelable: boolean;
|
|
readonly composed: boolean;
|
|
readonly currentTarget: EventTarget | null;
|
|
readonly defaultPrevented: boolean;
|
|
readonly eventPhase: number;
|
|
readonly isTrusted: boolean;
|
|
returnValue: boolean;
|
|
readonly srcElement: Element | null;
|
|
readonly target: EventTarget | null;
|
|
readonly timeStamp: number;
|
|
readonly type: string;
|
|
deepPath(): EventTarget[];
|
|
initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;
|
|
preventDefault(): void;
|
|
stopImmediatePropagation(): void;
|
|
stopPropagation(): void;
|
|
readonly AT_TARGET: number;
|
|
readonly BUBBLING_PHASE: number;
|
|
readonly CAPTURING_PHASE: number;
|
|
readonly NONE: number;
|
|
}
|
|
|
|
interface File extends Blob {
|
|
readonly lastModified: number;
|
|
readonly name: string;
|
|
}
|
|
|
|
declare var File: {
|
|
prototype: File;
|
|
new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
|
|
};
|
|
|
|
interface FilePropertyBag extends BlobPropertyBag {
|
|
lastModified?: number;
|
|
}
|
|
|
|
interface ProgressEvent extends Event {
|
|
readonly lengthComputable: boolean;
|
|
readonly loaded: number;
|
|
readonly total: number;
|
|
}
|
|
|
|
declare var ProgressEvent: {
|
|
prototype: ProgressEvent;
|
|
new (type: string, eventInitDict?: ProgressEventInit): ProgressEvent;
|
|
};
|
|
|
|
interface EventListenerOptions {
|
|
capture?: boolean;
|
|
}
|
|
|
|
interface AddEventListenerOptions extends EventListenerOptions {
|
|
once?: boolean;
|
|
passive?: boolean;
|
|
}
|
|
|
|
interface AbortSignal extends EventTarget {
|
|
readonly aborted: boolean;
|
|
onabort: ((this: AbortSignal, ev: ProgressEvent) => any) | null;
|
|
addEventListener<K extends keyof AbortSignalEventMap>(
|
|
type: K,
|
|
listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any,
|
|
options?: boolean | AddEventListenerOptions
|
|
): void;
|
|
addEventListener(
|
|
type: string,
|
|
listener: EventListenerOrEventListenerObject,
|
|
options?: boolean | AddEventListenerOptions
|
|
): void;
|
|
removeEventListener<K extends keyof AbortSignalEventMap>(
|
|
type: K,
|
|
listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any,
|
|
options?: boolean | EventListenerOptions
|
|
): void;
|
|
removeEventListener(
|
|
type: string,
|
|
listener: EventListenerOrEventListenerObject,
|
|
options?: boolean | EventListenerOptions
|
|
): void;
|
|
}
|
|
|
|
declare var AbortSignal: {
|
|
prototype: AbortSignal;
|
|
new (): AbortSignal;
|
|
};
|
|
|
|
interface ReadableStream {
|
|
readonly locked: boolean;
|
|
cancel(): Promise<void>;
|
|
getReader(): ReadableStreamReader;
|
|
}
|
|
|
|
declare var ReadableStream: {
|
|
prototype: ReadableStream;
|
|
new (): ReadableStream;
|
|
};
|
|
|
|
interface EventListenerObject {
|
|
handleEvent(evt: Event): void;
|
|
}
|
|
|
|
interface ReadableStreamReader {
|
|
cancel(): Promise<void>;
|
|
read(): Promise<any>;
|
|
releaseLock(): void;
|
|
}
|
|
|
|
declare var ReadableStreamReader: {
|
|
prototype: ReadableStreamReader;
|
|
new (): ReadableStreamReader;
|
|
};
|
|
|
|
interface FormData {
|
|
append(name: string, value: string | Blob, fileName?: string): void;
|
|
delete(name: string): void;
|
|
get(name: string): FormDataEntryValue | null;
|
|
getAll(name: string): FormDataEntryValue[];
|
|
has(name: string): boolean;
|
|
set(name: string, value: string | Blob, fileName?: string): void;
|
|
forEach(
|
|
callbackfn: (
|
|
value: FormDataEntryValue,
|
|
key: string,
|
|
parent: FormData
|
|
) => void,
|
|
thisArg?: any
|
|
): void;
|
|
}
|
|
|
|
declare var FormData: {
|
|
prototype: FormData;
|
|
new (form?: HTMLFormElement): FormData;
|
|
};
|
|
|
|
export interface Blob {
|
|
readonly size: number;
|
|
readonly type: string;
|
|
slice(start?: number, end?: number, contentType?: string): Blob;
|
|
}
|
|
|
|
declare var Blob: {
|
|
prototype: Blob;
|
|
new (blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
|
|
};
|
|
|
|
interface Body {
|
|
readonly body: ReadableStream | null;
|
|
readonly bodyUsed: boolean;
|
|
arrayBuffer(): Promise<ArrayBuffer>;
|
|
blob(): Promise<Blob>;
|
|
formData(): Promise<FormData>;
|
|
json(): Promise<any>;
|
|
text(): Promise<string>;
|
|
}
|
|
|
|
interface Headers {
|
|
append(name: string, value: string): void;
|
|
delete(name: string): void;
|
|
get(name: string): string | null;
|
|
has(name: string): boolean;
|
|
set(name: string, value: string): void;
|
|
forEach(
|
|
callbackfn: (value: string, key: string, parent: Headers) => void,
|
|
thisArg?: any
|
|
): void;
|
|
}
|
|
|
|
declare var Headers: {
|
|
prototype: Headers;
|
|
new (init?: HeadersInit): Headers;
|
|
};
|
|
|
|
type RequestCache =
|
|
| "default"
|
|
| "no-store"
|
|
| "reload"
|
|
| "no-cache"
|
|
| "force-cache"
|
|
| "only-if-cached";
|
|
type RequestCredentials = "omit" | "same-origin" | "include";
|
|
type RequestDestination =
|
|
| ""
|
|
| "audio"
|
|
| "audioworklet"
|
|
| "document"
|
|
| "embed"
|
|
| "font"
|
|
| "image"
|
|
| "manifest"
|
|
| "object"
|
|
| "paintworklet"
|
|
| "report"
|
|
| "script"
|
|
| "sharedworker"
|
|
| "style"
|
|
| "track"
|
|
| "video"
|
|
| "worker"
|
|
| "xslt";
|
|
type RequestMode = "navigate" | "same-origin" | "no-cors" | "cors";
|
|
type RequestRedirect = "follow" | "error" | "manual";
|
|
type ResponseType =
|
|
| "basic"
|
|
| "cors"
|
|
| "default"
|
|
| "error"
|
|
| "opaque"
|
|
| "opaqueredirect";
|
|
|
|
export interface RequestInit {
|
|
body?: BodyInit | null;
|
|
cache?: RequestCache;
|
|
credentials?: RequestCredentials;
|
|
headers?: HeadersInit;
|
|
integrity?: string;
|
|
keepalive?: boolean;
|
|
method?: string;
|
|
mode?: RequestMode;
|
|
redirect?: RequestRedirect;
|
|
referrer?: string;
|
|
referrerPolicy?: ReferrerPolicy;
|
|
signal?: AbortSignal | null;
|
|
window?: any;
|
|
}
|
|
|
|
export interface ResponseInit {
|
|
headers?: HeadersInit;
|
|
status?: number;
|
|
statusText?: string;
|
|
}
|
|
|
|
export interface Request extends Body {
|
|
/**
|
|
* Returns the cache mode associated with request,
|
|
* which is a string indicating how the the request will interact
|
|
* with the browser's cache when fetching.
|
|
*/
|
|
readonly cache: RequestCache;
|
|
/**
|
|
* Returns the credentials mode associated with request, which is a string
|
|
* indicating whether credentials will be sent with the request always, never,
|
|
* or only when sent to a same-origin URL.
|
|
*/
|
|
readonly credentials: RequestCredentials;
|
|
/**
|
|
* Returns the kind of resource requested by request, e.g., "document" or
|
|
* "script".
|
|
*/
|
|
readonly destination: RequestDestination;
|
|
/**
|
|
* Returns a Headers object consisting of the headers associated with request.
|
|
* Note that headers added in the network layer by the user agent
|
|
* will not be accounted for in this object, e.g., the "Host" header.
|
|
*/
|
|
readonly headers: Headers;
|
|
/**
|
|
* Returns request's subresource integrity metadata,
|
|
* which is a cryptographic hash of the resource being fetched.
|
|
* Its value consists of multiple hashes separated by whitespace. [SRI]
|
|
*/
|
|
readonly integrity: string;
|
|
/**
|
|
* Returns a boolean indicating whether or not request is for a history
|
|
* navigation (a.k.a. back-foward navigation).
|
|
*/
|
|
readonly isHistoryNavigation: boolean;
|
|
/**
|
|
* Returns a boolean indicating whether or not requestis for a
|
|
* reload navigation.
|
|
*/
|
|
readonly isReloadNavigation: boolean;
|
|
/**
|
|
* Returns a boolean indicating whether or not request can outlive
|
|
* the global in which it was created.
|
|
*/
|
|
readonly keepalive: boolean;
|
|
/**
|
|
* Returns request's HTTP method, which is "GET" by default.
|
|
*/
|
|
readonly method: string;
|
|
/**
|
|
* Returns the mode associated with request, which is a string
|
|
* indicating whether the request will use CORS, or will be
|
|
* restricted to same-origin URLs.
|
|
*/
|
|
readonly mode: RequestMode;
|
|
/**
|
|
* Returns the redirect mode associated with request, which is a string
|
|
* indicating how redirects for the request will be handled during fetching.
|
|
* A request will follow redirects by default.
|
|
*/
|
|
readonly redirect: RequestRedirect;
|
|
/**
|
|
* Returns the referrer of request. Its value can be a same-origin URL if
|
|
* explicitly set in init, the empty string to indicate no referrer, and
|
|
* "about:client" when defaulting to the global's default.
|
|
* This is used during fetching to determine the value of the `Referer`
|
|
* header of the request being made.
|
|
*/
|
|
readonly referrer: string;
|
|
/**
|
|
* Returns the referrer policy associated with request. This is used during
|
|
* fetching to compute the value of the request's referrer.
|
|
*/
|
|
readonly referrerPolicy: ReferrerPolicy;
|
|
/**
|
|
* Returns the signal associated with request, which is an AbortSignal
|
|
* object indicating whether or not request has been aborted,
|
|
* and its abort event handler.
|
|
*/
|
|
readonly signal: AbortSignal;
|
|
/**
|
|
* Returns the URL of request as a string.
|
|
*/
|
|
readonly url: string;
|
|
clone(): Request;
|
|
}
|
|
|
|
declare var Request: {
|
|
prototype: Request;
|
|
new (input: RequestInfo, init?: RequestInit): Request;
|
|
};
|
|
|
|
export interface Response extends Body {
|
|
readonly headers: Headers;
|
|
readonly ok: boolean;
|
|
readonly redirected: boolean;
|
|
readonly status: number;
|
|
readonly statusText: string;
|
|
readonly trailer: Promise<Headers>;
|
|
readonly type: ResponseType;
|
|
readonly url: string;
|
|
clone(): Response;
|
|
}
|
|
|
|
declare var Response: {
|
|
prototype: Response;
|
|
new (body?: BodyInit | null, init?: ResponseInit): Response;
|
|
error(): Response;
|
|
redirect(url: string, status?: number): Response;
|
|
};
|