/// --- FETCH ---
///
///
type RequestRedirect = 'follow' | 'error' | 'manual'
type ResponseType = 'basic' | 'cors' | 'default' | 'error' | 'opaque' | 'opaqueredirect'
interface RequestInit {
// whatwg/fetch standard options
body?: string
headers?: { [index: string]: string }
method?: string
redirect?: RequestRedirect
// custom DCL property
timeout?: number
}
interface ReadOnlyHeaders {
get(name: string): string | null
has(name: string): boolean
forEach(callbackfn: (value: string, key: string, parent: ReadOnlyHeaders) => void, thisArg?: any): void
}
interface Response {
readonly headers: ReadOnlyHeaders
readonly ok: boolean
readonly redirected: boolean
readonly status: number
readonly statusText: string
readonly type: ResponseType
readonly url: string
json(): Promise
text(): Promise
}
declare function fetch(url: string, init?: RequestInit): Promise
/// --- WebSocket ---
interface Event {
readonly type: string
}
interface MessageEvent extends Event {
/**
* Returns the data of the message.
*/
readonly data: any
}
interface CloseEvent extends Event {
readonly code: number
readonly reason: string
readonly wasClean: boolean
}
interface WebSocket {
readonly bufferedAmount: number
readonly extensions: string
onclose: ((this: WebSocket, ev: CloseEvent) => any) | null
onerror: ((this: WebSocket, ev: Event) => any) | null
onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null
onopen: ((this: WebSocket, ev: Event) => any) | null
readonly protocol: string
readonly readyState: number
readonly url: string
close(code?: number, reason?: string): void
send(data: string): void
readonly CLOSED: number
readonly CLOSING: number
readonly CONNECTING: number
readonly OPEN: number
}
declare var WebSocket: {
prototype: WebSocket
new (url: string, protocols?: string | string[]): WebSocket
readonly CLOSED: number
readonly CLOSING: number
readonly CONNECTING: number
readonly OPEN: number
}
declare var console: {
log(message?: any, ...optionalParams: any[]): void
error(message?: any, ...optionalParams: any[]): void
}
/// --- Timers ---
declare function setTimeout(callback: () => void, ms: number): number
declare function clearTimeout(timerId: number): void
declare function setInterval(callback: () => void, ms: number): number
declare function clearInterval(timerId: number): void
declare const DEBUG: boolean