From 8cf7f966f24d0fb996b41d92b04ad9647337a8f6 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sat, 22 May 2021 18:08:24 +0200 Subject: feat(extensions): add BroadcastChannel Co-Authored-By: Ben Noordhuis Fixes: #10354 --- .../lib.deno_broadcast_channel.d.ts | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 extensions/broadcast_channel/lib.deno_broadcast_channel.d.ts (limited to 'extensions/broadcast_channel/lib.deno_broadcast_channel.d.ts') diff --git a/extensions/broadcast_channel/lib.deno_broadcast_channel.d.ts b/extensions/broadcast_channel/lib.deno_broadcast_channel.d.ts new file mode 100644 index 000000000..c8efef778 --- /dev/null +++ b/extensions/broadcast_channel/lib.deno_broadcast_channel.d.ts @@ -0,0 +1,55 @@ +// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. + +// deno-lint-ignore-file no-explicit-any + +/// +/// + +interface BroadcastChannelEventMap { + "message": MessageEvent; + "messageerror": MessageEvent; +} + +interface BroadcastChannel extends EventTarget { + /** + * Returns the channel name (as passed to the constructor). + */ + readonly name: string; + onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null; + onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null; + /** + * Closes the BroadcastChannel object, opening it up to garbage collection. + */ + close(): void; + /** + * Sends the given message to other BroadcastChannel objects set up for + * this channel. Messages can be structured objects, e.g. nested objects + * and arrays. + */ + postMessage(message: any): void; + addEventListener( + type: K, + listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, + options?: boolean | AddEventListenerOptions, + ): void; + addEventListener( + type: string, + listener: EventListenerOrEventListenerObject, + options?: boolean | AddEventListenerOptions, + ): void; + removeEventListener( + type: K, + listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, + options?: boolean | EventListenerOptions, + ): void; + removeEventListener( + type: string, + listener: EventListenerOrEventListenerObject, + options?: boolean | EventListenerOptions, + ): void; +} + +declare var BroadcastChannel: { + prototype: BroadcastChannel; + new (name: string): BroadcastChannel; +}; -- cgit v1.2.3