summaryrefslogtreecommitdiff
path: root/std/ws/mod.ts
diff options
context:
space:
mode:
authorAndrey Trebler <at@edrilling.no>2020-05-04 18:27:06 +0200
committerGitHub <noreply@github.com>2020-05-04 12:27:06 -0400
commit796fc9bc3e8e4da7d53fb4617511ce4e2be22485 (patch)
treed2c140fcfb95a102b4b7b241f8edfe8fc7a971fe /std/ws/mod.ts
parent38ecabf205336c2cf51f2a18919da3dcb1a7db97 (diff)
BREAKING: make WebSocket directly implement AsyncIterable (#5044) (#5045)
Diffstat (limited to 'std/ws/mod.ts')
-rw-r--r--std/ws/mod.ts11
1 files changed, 7 insertions, 4 deletions
diff --git a/std/ws/mod.ts b/std/ws/mod.ts
index 569936706..cec08888b 100644
--- a/std/ws/mod.ts
+++ b/std/ws/mod.ts
@@ -67,11 +67,14 @@ export interface WebSocketFrame {
payload: Uint8Array;
}
-export interface WebSocket extends Reader, Writer {
+export interface WebSocket
+ extends Reader,
+ Writer,
+ AsyncIterable<WebSocketEvent> {
readonly conn: Conn;
readonly isClosed: boolean;
- receive(): AsyncIterableIterator<WebSocketEvent>;
+ [Symbol.asyncIterator](): AsyncIterableIterator<WebSocketEvent>;
/**
* @throws `Deno.errors.ConnectionReset`
@@ -228,7 +231,7 @@ class WebSocketImpl implements WebSocket {
this.bufWriter = bufWriter || new BufWriter(conn);
}
- async *receive(): AsyncIterableIterator<WebSocketEvent> {
+ async *[Symbol.asyncIterator](): AsyncIterableIterator<WebSocketEvent> {
let frames: WebSocketFrame[] = [];
let payloadsLength = 0;
while (!this._isClosed) {
@@ -336,7 +339,7 @@ class WebSocketImpl implements WebSocket {
}
async read(p: Uint8Array): Promise<number | null> {
- for await (const ev of this.receive()) {
+ for await (const ev of this) {
if (ev instanceof Uint8Array) {
return copyBytes(ev, p);
}