mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-09 09:09:58 +00:00
Use Messenger class and move messaging module to top-level
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
import bridge from "../lib/bridge";
|
||||
import loadSender from "../lib/loadSender";
|
||||
import logger from "../lib/logger";
|
||||
import { Message, Port } from "../lib/messaging";
|
||||
import { Message, Port } from "../messaging";
|
||||
import options from "../lib/options";
|
||||
|
||||
import { ReceiverSelectionActionType
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
import bridge from "../lib/bridge";
|
||||
import logger from "../lib/logger";
|
||||
import { Message, Port } from "../lib/messaging";
|
||||
import { Message, Port } from "../messaging";
|
||||
|
||||
import { TypedEventTarget } from "../lib/TypedEventTarget";
|
||||
import { Receiver, ReceiverStatus } from "../types";
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import defaultOptions from "../defaultOptions";
|
||||
import loadSender from "../lib/loadSender";
|
||||
import logger from "../lib/logger";
|
||||
import messaging from "../lib/messaging";
|
||||
import messaging from "../messaging";
|
||||
import options from "../lib/options";
|
||||
import bridge from "../lib/bridge";
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import bridge from "../../lib/bridge";
|
||||
import knownApps from "../../lib/knownApps";
|
||||
import logger from "../../lib/logger";
|
||||
import { Message, Port } from "../../lib/messaging";
|
||||
import { Message, Port } from "../../messaging";
|
||||
import options from "../../lib/options";
|
||||
|
||||
import { TypedEventTarget } from "../../lib/TypedEventTarget";
|
||||
|
||||
@@ -4,7 +4,7 @@ import ReceiverSelector, {
|
||||
ReceiverSelectorMediaType } from "./ReceiverSelector";
|
||||
|
||||
import logger from "../../lib/logger";
|
||||
import messaging, { Port, Message } from "../../lib/messaging";
|
||||
import messaging, { Port, Message } from "../../messaging";
|
||||
import options from "../../lib/options";
|
||||
|
||||
import { TypedEventTarget } from "../../lib/TypedEventTarget";
|
||||
|
||||
36
ext/src/lib/Messenger.ts
Normal file
36
ext/src/lib/Messenger.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
"use strict";
|
||||
|
||||
import { TypedPort } from "./TypedPort";
|
||||
|
||||
|
||||
interface RuntimeConnectInfo {
|
||||
name: string;
|
||||
}
|
||||
interface TabConnectInfo {
|
||||
name: string;
|
||||
frameId: number;
|
||||
}
|
||||
|
||||
export default class Messenger<T extends any[]> {
|
||||
connect (connectInfo: RuntimeConnectInfo) {
|
||||
return browser.runtime.connect(connectInfo) as
|
||||
unknown as TypedPort<T>;
|
||||
}
|
||||
|
||||
connectTab (tabId: number, connectInfo: TabConnectInfo) {
|
||||
return browser.tabs.connect(tabId, connectInfo) as
|
||||
unknown as TypedPort<T>;
|
||||
}
|
||||
|
||||
onConnect = {
|
||||
addListener (cb: (port: TypedPort<T>) => void) {
|
||||
browser.runtime.onConnect.addListener(cb as any);
|
||||
}
|
||||
, removeListener (cb: (port: TypedPort<T>) => void) {
|
||||
browser.runtime.onConnect.removeListener(cb as any);
|
||||
}
|
||||
, hasListener (cb: (port: TypedPort<T>) => void) {
|
||||
return browser.runtime.onConnect.hasListener(cb as any);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -5,7 +5,7 @@ import semver from "semver";
|
||||
import { TypedPort } from "./TypedPort";
|
||||
|
||||
import logger from "./logger";
|
||||
import { Messages, Message, Port } from "./messaging";
|
||||
import { Messages, Message, Port } from "../messaging";
|
||||
import nativeMessaging from "./nativeMessaging";
|
||||
import options from "./options";
|
||||
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
import { TypedPort } from "./TypedPort";
|
||||
import Messenger from "./lib/Messenger";
|
||||
import { TypedPort } from "./lib/TypedPort";
|
||||
|
||||
import { BridgeInfo } from "./bridge";
|
||||
import { Receiver, ReceiverStatus } from "../types";
|
||||
import { ReceiverSelectorMediaType } from "../background/receiverSelector";
|
||||
import { BridgeInfo } from "./lib/bridge";
|
||||
import { Receiver, ReceiverStatus } from "./types";
|
||||
import { ReceiverSelectorMediaType } from "./background/receiverSelector";
|
||||
import { ReceiverSelection
|
||||
, ReceiverSelectionCast
|
||||
, ReceiverSelectionStop } from "../background/receiverSelector/ReceiverSelector";
|
||||
, ReceiverSelectionStop } from "./background/receiverSelector/ReceiverSelector";
|
||||
|
||||
import Volume from "../shim/cast/classes/Volume";
|
||||
import { MediaInfo } from "../shim/cast/media";
|
||||
import Volume from "./shim/cast/classes/Volume";
|
||||
import { MediaInfo } from "./shim/cast/media";
|
||||
|
||||
|
||||
// TODO: Document messages properly
|
||||
@@ -259,35 +260,4 @@ export type Messages = [
|
||||
export type Port = TypedPort<Messages>;
|
||||
export type Message = Messages[number];
|
||||
|
||||
|
||||
interface RuntimeConnectInfo {
|
||||
name: string;
|
||||
}
|
||||
interface TabConnectInfo {
|
||||
name: string;
|
||||
frameId: number;
|
||||
}
|
||||
|
||||
export default {
|
||||
connect (connectInfo: RuntimeConnectInfo) {
|
||||
return browser.runtime.connect(connectInfo) as
|
||||
unknown as TypedPort<Messages>;
|
||||
}
|
||||
|
||||
, connectTab (tabId: number, connectInfo: TabConnectInfo) {
|
||||
return browser.tabs.connect(tabId, connectInfo) as
|
||||
unknown as TypedPort<Messages>;
|
||||
}
|
||||
|
||||
, onConnect: {
|
||||
addListener (cb: (port: TypedPort<Messages>) => void) {
|
||||
browser.runtime.onConnect.addListener(cb as any);
|
||||
}
|
||||
, removeListener (cb: (port: TypedPort<Messages>) => void) {
|
||||
browser.runtime.onConnect.removeListener(cb as any);
|
||||
}
|
||||
, hasListener (cb: (port: TypedPort<Messages>) => void) {
|
||||
return browser.runtime.onConnect.hasListener(cb as any);
|
||||
}
|
||||
}
|
||||
};
|
||||
export default new Messenger<Messages>();
|
||||
@@ -4,7 +4,7 @@ import logger from "../../lib/logger";
|
||||
import options from "../../lib/options";
|
||||
import cast, { ensureInit } from "../../shim/export";
|
||||
|
||||
import { Message } from "../../lib/messaging";
|
||||
import { Message } from "../../messaging";
|
||||
import { Receiver } from "../../types";
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import { loadScript } from "../lib/utils";
|
||||
import { onMessageResponse, sendMessage } from "./eventMessageChannel";
|
||||
|
||||
import messaging, { Message } from "../lib/messaging";
|
||||
import messaging, { Message } from "../messaging";
|
||||
|
||||
|
||||
const { isFramework }
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
import { Message } from "../lib/messaging";
|
||||
import { Message } from "../messaging";
|
||||
|
||||
|
||||
type ListenerFunc = (message: Message) => void;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
import * as cast from "./cast";
|
||||
import { Message } from "../lib/messaging";
|
||||
import { Message } from "../messaging";
|
||||
|
||||
import { BridgeInfo } from "../lib/bridge";
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import ReactDOM from "react-dom";
|
||||
|
||||
import knownApps from "../../lib/knownApps";
|
||||
|
||||
import { Message } from "../../lib/messaging";
|
||||
import { Message } from "../../messaging";
|
||||
import { getNextEllipsis } from "../../lib/utils";
|
||||
import { Receiver } from "../../types";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user