-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: add deno websocket definitions
- Loading branch information
Showing
1 changed file
with
133 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
// 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" /> | ||
|
||
/** @category WebSockets */ | ||
declare interface CloseEventInit extends EventInit { | ||
code?: number; | ||
reason?: string; | ||
wasClean?: boolean; | ||
} | ||
|
||
/** @category WebSockets */ | ||
declare interface CloseEvent extends Event { | ||
/** | ||
* Returns the WebSocket connection close code provided by the server. | ||
*/ | ||
readonly code: number; | ||
/** | ||
* Returns the WebSocket connection close reason provided by the server. | ||
*/ | ||
readonly reason: string; | ||
/** | ||
* Returns true if the connection closed cleanly; false otherwise. | ||
*/ | ||
readonly wasClean: boolean; | ||
} | ||
|
||
/** @category WebSockets */ | ||
declare var CloseEvent: { | ||
readonly prototype: CloseEvent; | ||
new(type: string, eventInitDict?: CloseEventInit): CloseEvent; | ||
}; | ||
|
||
/** @category WebSockets */ | ||
declare interface WebSocketEventMap { | ||
close: CloseEvent; | ||
error: Event; | ||
message: MessageEvent; | ||
open: Event; | ||
} | ||
|
||
/** | ||
* Provides the API for creating and managing a WebSocket connection to a | ||
* server, as well as for sending and receiving data on the connection. | ||
* | ||
* If you are looking to create a WebSocket server, please take a look at | ||
* `Deno.upgradeWebSocket()`. | ||
* | ||
* @tags allow-net | ||
* @category WebSockets | ||
*/ | ||
declare interface WebSocket extends EventTarget { | ||
/** | ||
* Returns a string that indicates how binary data from the WebSocket object is exposed to scripts: | ||
* | ||
* Can be set, to change how binary data is returned. The default is "blob". | ||
*/ | ||
binaryType: BinaryType; | ||
/** | ||
* Returns the number of bytes of application data (UTF-8 text and binary data) that have been queued using send() but not yet been transmitted to the network. | ||
* | ||
* If the WebSocket connection is closed, this attribute's value will only increase with each call to the send() method. (The number does not reset to zero once the connection closes.) | ||
*/ | ||
readonly bufferedAmount: number; | ||
/** | ||
* Returns the extensions selected by the server, if any. | ||
*/ | ||
readonly extensions: string; | ||
onclose: ((this: WebSocket, ev: CloseEvent) => any) | null; | ||
onerror: ((this: WebSocket, ev: Event | ErrorEvent) => any) | null; | ||
onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null; | ||
onopen: ((this: WebSocket, ev: Event) => any) | null; | ||
/** | ||
* Returns the subprotocol selected by the server, if any. It can be used in conjunction with the array form of the constructor's second argument to perform subprotocol negotiation. | ||
*/ | ||
readonly protocol: string; | ||
/** | ||
* Returns the state of the WebSocket object's connection. It can have the values described below. | ||
*/ | ||
readonly readyState: number; | ||
/** | ||
* Returns the URL that was used to establish the WebSocket connection. | ||
*/ | ||
readonly url: string; | ||
/** | ||
* Closes the WebSocket connection, optionally using code as the WebSocket connection close code and reason as the WebSocket connection close reason. | ||
*/ | ||
close(code?: number, reason?: string): void; | ||
/** | ||
* Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView. | ||
*/ | ||
send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void; | ||
readonly CLOSED: number; | ||
readonly CLOSING: number; | ||
readonly CONNECTING: number; | ||
readonly OPEN: number; | ||
addEventListener<K extends keyof WebSocketEventMap>( | ||
type: K, | ||
listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, | ||
options?: boolean | AddEventListenerOptions, | ||
): void; | ||
addEventListener( | ||
type: string, | ||
listener: EventListenerOrEventListenerObject, | ||
options?: boolean | AddEventListenerOptions, | ||
): void; | ||
removeEventListener<K extends keyof WebSocketEventMap>( | ||
type: K, | ||
listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, | ||
options?: boolean | EventListenerOptions, | ||
): void; | ||
removeEventListener( | ||
type: string, | ||
listener: EventListenerOrEventListenerObject, | ||
options?: boolean | EventListenerOptions, | ||
): void; | ||
} | ||
|
||
/** @category WebSockets */ | ||
declare var WebSocket: { | ||
readonly prototype: WebSocket; | ||
new(url: string | URL, protocols?: string | string[]): WebSocket; | ||
readonly CLOSED: number; | ||
readonly CLOSING: number; | ||
readonly CONNECTING: number; | ||
readonly OPEN: number; | ||
}; | ||
|
||
/** @category WebSockets */ | ||
declare type BinaryType = "arraybuffer" | "blob"; |