diff --git a/cli/tsc/dts/lib.deno_websocket.d.ts b/cli/tsc/dts/lib.deno_websocket.d.ts index 7a20ace37d..443bc06b3c 100644 --- a/cli/tsc/dts/lib.deno_websocket.d.ts +++ b/cli/tsc/dts/lib.deno_websocket.d.ts @@ -5,14 +5,52 @@ /// /// -/** @category WebSockets */ +/** + * Configuration options for a `WebSocket` "close" event. + * + * @example + * ```ts + * // Creating a custom close event with specific parameters + * const closeEventInit: CloseEventInit = { + * code: 1000, + * reason: "Normal closure", + * wasClean: true, + * }; + * const event = new CloseEvent("close", closeEventInit); + * ``` + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/CloseEvent + * @category WebSockets + */ interface CloseEventInit extends EventInit { code?: number; reason?: string; wasClean?: boolean; } -/** @category WebSockets */ +/** + * The `CloseEvent` interface represents an event that occurs when a `WebSocket` connection is closed. + * + * This event is sent to the client when the connection is closed, providing information about + * why the connection was closed through the `code`, `reason`, and `wasClean` properties. + * + * @example + * ```ts + * // Handling a close event + * ws.addEventListener("close", (event: CloseEvent) => { + * console.log(`Connection closed with code ${event.code}`); + * console.log(`Reason: ${event.reason}`); + * console.log(`Clean close: ${event.wasClean}`); + * + * if (event.code === 1006) { + * console.log("Connection closed abnormally"); + * } + * }); + * ``` + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent + * @category WebSockets + */ interface CloseEvent extends Event { /** * Returns the WebSocket connection close code provided by the server. @@ -28,13 +66,50 @@ interface CloseEvent extends Event { readonly wasClean: boolean; } -/** @category WebSockets */ +/** + * Constructor interface for creating `CloseEvent` instances. + * + * @example + * ```ts + * // Creating a custom close event + * const event = new CloseEvent("close", { + * code: 1000, + * reason: "Normal closure", + * wasClean: true, + * }); + * + * // Dispatching the event + * myWebSocket.dispatchEvent(event); + * ``` + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/CloseEvent + * @category WebSockets + */ declare var CloseEvent: { readonly prototype: CloseEvent; new (type: string, eventInitDict?: CloseEventInit): CloseEvent; }; -/** @category WebSockets */ +/** + * Interface mapping `WebSocket` event names to their corresponding event types. + * Used for strongly typed event handling with `addEventListener` and `removeEventListener`. + * + * @example + * ```ts + * // Using with TypeScript for strongly-typed event handling + * const ws = new WebSocket("ws://localhost:8080"); + * + * ws.addEventListener("open", (event) => { + * console.log("Connection established"); + * }); + * + * ws.addEventListener("message", (event: MessageEvent) => { + * console.log(`Received: ${event.data}`); + * }); + * ``` + * + * @category WebSockets + */ interface WebSocketEventMap { close: CloseEvent; error: Event; @@ -49,8 +124,31 @@ interface WebSocketEventMap { * If you are looking to create a WebSocket server, please take a look at * `Deno.upgradeWebSocket()`. * - * @see https://developer.mozilla.org/docs/Web/API/WebSocket + * @example + * ```ts + * // Creating a WebSocket connection + * const ws = new WebSocket("ws://localhost:8080"); * + * // Setting up event handlers + * ws.onopen = (event) => { + * console.log("Connected to the server"); + * ws.send("Hello Server!"); + * }; + * + * ws.onmessage = (event) => { + * console.log(`Received: ${event.data}`); + * }; + * + * ws.onerror = (event) => { + * console.error("WebSocket error observed:", event); + * }; + * + * ws.onclose = (event) => { + * console.log(`WebSocket closed: Code=${event.code}, Reason=${event.reason}`); + * }; + * ``` + * + * @see https://developer.mozilla.org/docs/Web/API/WebSocket * @tags allow-net * @category WebSockets */ @@ -149,7 +247,31 @@ interface WebSocket extends EventTarget { ): void; } -/** @category WebSockets */ +/** + * Constructor interface for creating `WebSocket` instances. + * + * The `WebSocket` constructor creates and returns a new `WebSocket` object + * that represents a connection to a `WebSocket` server. + * + * @example + * ```ts + * // Basic WebSocket connection + * const ws = new WebSocket("ws://localhost:8080"); + * + * // WebSocket with protocol specification + * const wsWithProtocol = new WebSocket("ws://localhost:8080", "json"); + * + * // WebSocket with multiple protocol options (server will select one) + * const wsWithProtocols = new WebSocket("ws://localhost:8080", ["json", "xml"]); + * + * // Using URL object instead of string + * const url = new URL("ws://localhost:8080/path"); + * const wsWithUrl = new WebSocket(url); + * ``` + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket + * @category WebSockets + */ declare var WebSocket: { readonly prototype: WebSocket; new (url: string | URL, protocols?: string | string[]): WebSocket; @@ -159,5 +281,35 @@ declare var WebSocket: { readonly OPEN: number; }; -/** @category WebSockets */ +/** + * Specifies the type of binary data being received over a `WebSocket` connection. + * + * - `"blob"`: Binary data is returned as `Blob` objects + * - `"arraybuffer"`: Binary data is returned as `ArrayBuffer` objects + * + * @example + * ```ts + * // Setting up WebSocket for binary data as ArrayBuffer + * const ws = new WebSocket("ws://localhost:8080"); + * ws.binaryType = "arraybuffer"; + * + * ws.onmessage = (event) => { + * if (event.data instanceof ArrayBuffer) { + * // Process binary data + * const view = new Uint8Array(event.data); + * console.log(`Received binary data of ${view.length} bytes`); + * } else { + * // Process text data + * console.log(`Received text: ${event.data}`); + * } + * }; + * + * // Sending binary data + * const binaryData = new Uint8Array([1, 2, 3, 4]); + * ws.send(binaryData.buffer); + * ``` + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/binaryType + * @category WebSockets + */ type BinaryType = "arraybuffer" | "blob";