From 785df7a089d1ca0dca6671108fb111af106b5939 Mon Sep 17 00:00:00 2001 From: hensm Date: Sun, 28 Jun 2020 05:22:07 +0100 Subject: [PATCH] Use abstract class instead of interface for ReceiverSelector base --- .../receiverSelector/NativeReceiverSelector.ts | 6 +----- .../receiverSelector/PopupReceiverSelector.ts | 8 ++------ .../background/receiverSelector/ReceiverSelector.ts | 10 +++++----- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/ext/src/background/receiverSelector/NativeReceiverSelector.ts b/ext/src/background/receiverSelector/NativeReceiverSelector.ts index 40f8692..5dbd617 100644 --- a/ext/src/background/receiverSelector/NativeReceiverSelector.ts +++ b/ext/src/background/receiverSelector/NativeReceiverSelector.ts @@ -12,17 +12,13 @@ import { Receiver } from "../../types"; import ReceiverSelector, { ReceiverSelection - , ReceiverSelectorEvents , ReceiverSelectorMediaType } from "./ReceiverSelector"; const _ = browser.i18n.getMessage; // TODO: Figure out lifetime properly -export default class NativeReceiverSelector - extends TypedEventTarget - implements ReceiverSelector { - +export default class NativeReceiverSelector extends ReceiverSelector { private bridgePort: (Port | null) = null; private wasReceiverSelected: boolean = false; private _isOpen: boolean = false; diff --git a/ext/src/background/receiverSelector/PopupReceiverSelector.ts b/ext/src/background/receiverSelector/PopupReceiverSelector.ts index 0e89d26..9a45bf4 100644 --- a/ext/src/background/receiverSelector/PopupReceiverSelector.ts +++ b/ext/src/background/receiverSelector/PopupReceiverSelector.ts @@ -1,8 +1,7 @@ "use strict"; import ReceiverSelector, { - ReceiverSelectorEvents - , ReceiverSelectorMediaType } from "./ReceiverSelector"; + ReceiverSelectorMediaType } from "./ReceiverSelector"; import logger from "../../lib/logger"; import messaging, { Port, Message } from "../../lib/messaging"; @@ -15,10 +14,7 @@ import { Receiver } from "../../types"; const POPUP_URL = browser.runtime.getURL("ui/popup/index.html"); -export default class PopupReceiverSelector - extends TypedEventTarget - implements ReceiverSelector { - +export default class PopupReceiverSelector extends ReceiverSelector { private windowId?: number; private messagePort?: Port; diff --git a/ext/src/background/receiverSelector/ReceiverSelector.ts b/ext/src/background/receiverSelector/ReceiverSelector.ts index 9570073..9e8ac38 100644 --- a/ext/src/background/receiverSelector/ReceiverSelector.ts +++ b/ext/src/background/receiverSelector/ReceiverSelector.ts @@ -30,22 +30,22 @@ export interface ReceiverSelectionStop { export type ReceiverSelection = ReceiverSelectionCast | ReceiverSelectionStop; -export interface ReceiverSelectorEvents { +interface ReceiverSelectorEvents { "selected": ReceiverSelectionCast; "error": string; "cancelled": void; "stop": ReceiverSelectionStop; } -export default interface ReceiverSelector +export default abstract class ReceiverSelector extends TypedEventTarget { - readonly isOpen: boolean; + abstract readonly isOpen: boolean; - open (receivers: Receiver[] + abstract open (receivers: Receiver[] , defaultMediaType: ReceiverSelectorMediaType , availableMediaTypes: ReceiverSelectorMediaType , requestedAppId: string): void; - close (): void; + abstract close (): void; }