diff --git a/ext/src/main.ts b/ext/src/main.ts index 0723203..cbf156d 100755 --- a/ext/src/main.ts +++ b/ext/src/main.ts @@ -186,7 +186,7 @@ async function onBeforeSendHeaders ( }; } -async function onOptionsUpdated (alteredOptions?: (keyof Options)[]) { +async function onOptionsUpdated (alteredOptions?: Array<(keyof Options)>) { const { options } = await browser.storage.sync.get("options"); // If options aren't set yet, return diff --git a/ext/src/shim/cast/classes/ApiConfig.ts b/ext/src/shim/cast/classes/ApiConfig.ts index b593be6..8b2c52d 100755 --- a/ext/src/shim/cast/classes/ApiConfig.ts +++ b/ext/src/shim/cast/classes/ApiConfig.ts @@ -16,10 +16,13 @@ export default class ApiConfig { public sessionRequest: SessionRequest , public sessionListener: (session: Session) => void , public receiverListener: (availability: string) => void - , public autoJoinPolicy: string = AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED - , public defaultActionPolicy: string = DefaultActionPolicy.CREATE_SESSION + + , public autoJoinPolicy: string + = AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED + , public defaultActionPolicy: string + = DefaultActionPolicy.CREATE_SESSION // TODO: Remove awful hack for mirror casting , public _selectedMedia: string = "app") { } -}; +} diff --git a/ext/src/shim/cast/classes/DialRequest.ts b/ext/src/shim/cast/classes/DialRequest.ts index f3e30c2..3caa404 100755 --- a/ext/src/shim/cast/classes/DialRequest.ts +++ b/ext/src/shim/cast/classes/DialRequest.ts @@ -6,4 +6,4 @@ export default class DialRequest { public appName: string , public launchParameter: string = null) { } -}; +} diff --git a/ext/src/shim/cast/classes/Error.ts b/ext/src/shim/cast/classes/Error.ts index ca90260..47912b4 100755 --- a/ext/src/shim/cast/classes/Error.ts +++ b/ext/src/shim/cast/classes/Error.ts @@ -7,4 +7,4 @@ export default class Error { , public description: string = null , public details: any = null) { } -}; +} diff --git a/ext/src/shim/cast/classes/Image.ts b/ext/src/shim/cast/classes/Image.ts index dba1c48..03cdf88 100755 --- a/ext/src/shim/cast/classes/Image.ts +++ b/ext/src/shim/cast/classes/Image.ts @@ -6,4 +6,4 @@ export default class Image { public height: number = null; constructor (public url: string) {} -}; +} diff --git a/ext/src/shim/cast/classes/Receiver.ts b/ext/src/shim/cast/classes/Receiver.ts index 516ff64..29db92c 100755 --- a/ext/src/shim/cast/classes/Receiver.ts +++ b/ext/src/shim/cast/classes/Receiver.ts @@ -18,4 +18,4 @@ export default class Receiver { , public capabilities: string[] = [] , public volume: Volume = null) { } -}; +} diff --git a/ext/src/shim/cast/classes/ReceiverDisplayStatus.ts b/ext/src/shim/cast/classes/ReceiverDisplayStatus.ts index cd4f81c..d6883fd 100755 --- a/ext/src/shim/cast/classes/ReceiverDisplayStatus.ts +++ b/ext/src/shim/cast/classes/ReceiverDisplayStatus.ts @@ -10,4 +10,4 @@ export default class ReceiverDisplayStatus { constructor ( public statusText: string , public appImages: Image[]) {} -}; +} diff --git a/ext/src/shim/cast/classes/SenderApplication.ts b/ext/src/shim/cast/classes/SenderApplication.ts index 6f74fde..3e8f1af 100755 --- a/ext/src/shim/cast/classes/SenderApplication.ts +++ b/ext/src/shim/cast/classes/SenderApplication.ts @@ -6,4 +6,4 @@ export default class SenderApplication { public url: string = null; constructor (public platform: string) {} -}; +} diff --git a/ext/src/shim/cast/classes/Session.ts b/ext/src/shim/cast/classes/Session.ts index cf945de..db541f3 100755 --- a/ext/src/shim/cast/classes/Session.ts +++ b/ext/src/shim/cast/classes/Session.ts @@ -12,23 +12,31 @@ import LoadRequest from "../../media/classes/LoadRequest"; import Media from "../../media/classes/Media"; import QueueLoadRequest from "../../media/classes/QueueLoadRequest"; -import { SessionStatus - , ErrorCode +import { ErrorCode + , SessionStatus , VolumeControlType } from "../enums"; import { onMessage, sendMessageResponse } from "../../messageBridge"; -import { SuccessCallback +import { Callbacks + , CallbacksMap , ErrorCallback + , LoadSuccessCallback , MediaListener , MessageListener - , UpdateListener - , LoadSuccessCallback - , Callbacks - , CallbacksMap } from "../../types"; + , SuccessCallback + , UpdateListener } from "../../types"; export default class Session { + public media: Media[]; + public namespaces: Array<{ name: "string" }>; + public senderApps: SenderApplication[]; + public status: string; + public statusText: string; + public transportId: string; + + private _id: string = uuid(); private _messageListeners = new Map>(); private _updateListeners = new Set(); @@ -39,20 +47,13 @@ export default class Session { private _setReceiverVolumeLevelCallbacks: CallbacksMap = new Map(); private _stopCallbacks: CallbacksMap = new Map(); - public media: Media[]; - public namespaces: { name: "string" }[]; - public senderApps: SenderApplication[]; - public status: string; - public statusText: string; - public transportId: string; - constructor ( public sessionId: string , public appId: string , public displayName: string , public appImages: Image[] , public receiver: Receiver - , successCallback: (session: Session) => void) { + , _successCallback: (session: Session) => void) { this.media = []; this.namespaces = []; @@ -85,7 +86,7 @@ export default class Session { } break; - }; + } case "shim:/session/connected": { this.status = SessionStatus.CONNECTED; @@ -94,12 +95,12 @@ export default class Session { this.displayName = message.data.displayName; this.statusText = message.data.statusText; - if (successCallback) { - successCallback(this); + if (_successCallback) { + _successCallback(this); } break; - }; + } case "shim:/session/updateStatus": { const volume: Volume = message.data.volume; @@ -121,22 +122,23 @@ export default class Session { } break; - }; + } case "shim:/session/impl_addMessageListener": { const { namespace, data } = message.data; - for (const listener of this._messageListeners.get(namespace)) { + for (const listener of + this._messageListeners.get(namespace)) { listener(namespace, data); } break; - }; + } case "shim:/session/impl_sendMessage": { const { messageId, error } = message.data; const [ successCallback, errorCallback ] - = this._sendMessageCallbacks.get(messageId) + = this._sendMessageCallbacks.get(messageId); if (error && errorCallback) { errorCallback(new _Error(ErrorCode.SESSION_ERROR)); @@ -147,7 +149,7 @@ export default class Session { this._sendMessageCallbacks.delete(messageId); break; - }; + } case "shim:/session/impl_setReceiverMuted": { const { volumeId, error } = message.data; @@ -163,12 +165,13 @@ export default class Session { this._setReceiverMutedCallbacks.delete(volumeId); break; - }; + } case "shim:/session/impl_setReceiverVolumeLevel": { const { volumeId, error } = message.data; const [ successCallback, errorCallback ] - = this._setReceiverVolumeLevelCallbacks.get(volumeId); + = this._setReceiverVolumeLevelCallbacks + .get(volumeId); if (error && errorCallback) { errorCallback(new _Error(ErrorCode.SESSION_ERROR)); @@ -179,7 +182,7 @@ export default class Session { this._setReceiverVolumeLevelCallbacks.delete(volumeId); break; - }; + } case "shim:/session/impl_stop": { const { stopId, error } = message.data; @@ -203,17 +206,20 @@ export default class Session { this._stopCallbacks.delete(stopId); break; - }; + } } }); } public addMediaListener (listener: MediaListener) { - console.info("STUB :: Session#addMediaListener") + console.info("STUB :: Session#addMediaListener"); } - public addMessageListener (namespace: string, listener: MessageListener) { + public addMessageListener ( + namespace: string + , listener: MessageListener) { + if (!this._messageListeners.has(namespace)) { this._messageListeners.set(namespace, new Set()); } @@ -263,7 +269,9 @@ export default class Session { "urn:x-cast:com.google.cast.media" , (namespace, data) => { - if (hasResponded) return; + if (hasResponded) { + return; + } const mediaObject = JSON.parse(data); @@ -283,7 +291,7 @@ export default class Session { } else { errorCallback(new _Error(ErrorCode.SESSION_ERROR)); } - }) + }); } public queueLoad ( diff --git a/ext/src/shim/cast/classes/SessionRequest.ts b/ext/src/shim/cast/classes/SessionRequest.ts index 68f7564..140f529 100755 --- a/ext/src/shim/cast/classes/SessionRequest.ts +++ b/ext/src/shim/cast/classes/SessionRequest.ts @@ -1,7 +1,7 @@ "use strict"; -import { Capability } from "../enums"; import { requestSession } from "../../timeout"; +import { Capability } from "../enums"; // https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionRequest export default class SessionRequest { @@ -14,4 +14,4 @@ export default class SessionRequest { Capability.VIDEO_OUT , Capability.AUDIO_OUT ] , public requestSessionTimeout: number = requestSession) {} -}; +} diff --git a/ext/src/shim/cast/classes/Timeout.ts b/ext/src/shim/cast/classes/Timeout.ts index 81e6014..bc1ec69 100755 --- a/ext/src/shim/cast/classes/Timeout.ts +++ b/ext/src/shim/cast/classes/Timeout.ts @@ -7,4 +7,4 @@ export default class Timeout { constructor () { Object.assign(this, timeouts); } -}; +} diff --git a/ext/src/shim/cast/classes/Volume.ts b/ext/src/shim/cast/classes/Volume.ts index 78e98e2..a5f8b0c 100755 --- a/ext/src/shim/cast/classes/Volume.ts +++ b/ext/src/shim/cast/classes/Volume.ts @@ -12,4 +12,4 @@ export default class Volume { public level: number = null , public muted: boolean = null) { } -}; +} diff --git a/ext/src/shim/cast/index.ts b/ext/src/shim/cast/index.ts index 18c482b..0e07c84 100755 --- a/ext/src/shim/cast/index.ts +++ b/ext/src/shim/cast/index.ts @@ -35,7 +35,9 @@ type ReceiverActionListener = ( receiver: Receiver , receiverAction: typeof ReceiverAction) => void; -type RequestSessionSuccessCallback = (session: Session, selectedMedia: string) => void; +type RequestSessionSuccessCallback = ( + session: Session + , selectedMedia: string) => void; type SuccessCallback = () => void; type ErrorCallback = (err: Error_) => void; @@ -43,10 +45,10 @@ type ErrorCallback = (err: Error_) => void; let apiConfig: ApiConfig; let receiverList: any[] = []; -let sessionList: Session[] = []; +const sessionList: Session[] = []; let sessionRequestInProgress = false; -let receiverListeners = new Set(); +const receiverListeners = new Set(); let sessionSuccessCallback: RequestSessionSuccessCallback; let sessionErrorCallback: ErrorCallback; @@ -93,8 +95,6 @@ export default { subject: "bridge:/startDiscovery" }); - console.log(receiverList.length) - apiConfig.receiverListener(receiverList.length ? ReceiverAvailability.AVAILABLE : ReceiverAvailability.UNAVAILABLE); @@ -103,6 +103,7 @@ export default { } , logMessage: (message: string): void => { + /* tslint:disable-next-line:no-console */ console.log("CAST MSG:", message); } @@ -119,7 +120,8 @@ export default { , requestSession: ( successCallback: RequestSessionSuccessCallback , errorCallback: ErrorCallback - , sessionRequest: SessionRequest = apiConfig.sessionRequest): void => { + , sessionRequest: SessionRequest + = apiConfig.sessionRequest): void => { console.info("fx_cast (Debug): cast.requestSession"); @@ -176,7 +178,7 @@ export default { , unescape: (escaped: string): string => { return unescape(escaped); } -} +}; onMessage(message => { switch (message.subject) { @@ -197,7 +199,7 @@ onMessage(message => { apiConfig.receiverListener(ReceiverAvailability.AVAILABLE); break; - }; + } /** * Cast destination lost (serviceDown). Remove from the receiver list @@ -213,7 +215,7 @@ onMessage(message => { } break; - }; + } case "shim:/selectReceiver": { console.info("fx_cast (Debug): Selected receiver"); @@ -239,7 +241,9 @@ onMessage(message => { apiConfig.sessionListener(session); sessionRequestInProgress = false; - sessionSuccessCallback(session, message.data.selectedMedia); + sessionSuccessCallback( + session + , message.data.selectedMedia); })); } @@ -255,7 +259,7 @@ onMessage(message => { } break; - }; + } /** * Popup is ready to receive data to populate the cast destination @@ -271,7 +275,7 @@ onMessage(message => { }); break; - }; + } /** * Popup closed before session established. diff --git a/ext/src/shim/media/classes/Media.ts b/ext/src/shim/media/classes/Media.ts index 86c0da4..6a6986c 100644 --- a/ext/src/shim/media/classes/Media.ts +++ b/ext/src/shim/media/classes/Media.ts @@ -4,44 +4,35 @@ import uuid from "uuid/v1"; import EditTracksInfoRequest from "./EditTracksInfoRequest"; import GetStatusRequest from "./GetStatusRequest"; +import MediaInfo from "./MediaInfo"; import PauseRequest from "./PauseRequest"; import PlayRequest from "./PlayRequest"; import QueueInsertItemsRequest from "./QueueInsertItemsRequest"; +import QueueItem from "./QueueItem"; import QueueReorderItemsRequest from "./QueueReorderItemsRequest"; import QueueUpdateItemsRequest from "./QueueUpdateItemsRequest"; import SeekRequest from "./SeekRequest"; -import VolumeRequest from "./VolumeRequest"; import StopRequest from "./StopRequest"; -import MediaInfo from "./MediaInfo"; -import QueueItem from "./QueueItem"; +import VolumeRequest from "./VolumeRequest"; import Volume from "../../cast/classes/Volume"; import { PlayerState - , RepeatMode - , MediaCommand } from "../enums"; + , RepeatMode } from "../enums"; import _Error from "../../cast/classes/Error"; import { ErrorCode } from "../../cast/enums"; import { onMessage, sendMessageResponse } from "../../messageBridge"; -import { SuccessCallback +import { Callbacks + , CallbacksMap , ErrorCallback - , UpdateListener - , Callbacks - , CallbacksMap } from "../../types"; + , SuccessCallback + , UpdateListener } from "../../types"; export default class Media { - private _id: string = uuid(); - - private _updateListeners = new Set(); - private _sendMediaMessageCallbacks: CallbacksMap = new Map(); - - private _lastCurrentTime: number; - - public activeTrackIds: number[] = null; public currentItemId: number = null; public customData: any = null; @@ -57,6 +48,14 @@ export default class Media { public supportedMediaCommands: string[] = []; public volume: Volume = new Volume(); + + private _id: string = uuid(); + + private _updateListeners = new Set(); + private _sendMediaMessageCallbacks: CallbacksMap = new Map(); + + private _lastCurrentTime: number; + constructor ( public sessionId: string , public mediaSessionId: number @@ -129,7 +128,7 @@ export default class Media { , successCallback?: SuccessCallback , errorCallback?: ErrorCallback): void { - console.log("STUB :: Media#editTracksInfo"); + console.info("STUB :: Media#editTracksInfo"); } public getEstimatedTime (): number { @@ -172,21 +171,21 @@ export default class Media { item: QueueItem , successCallback?: SuccessCallback , errorCallback?: ErrorCallback) { - console.log("STUB :: Media#queueAppendItem"); + console.info("STUB :: Media#queueAppendItem"); } public queueInsertItems ( queueInsertItemsRequest: QueueInsertItemsRequest , successCallback?: SuccessCallback , errorCallback?: ErrorCallback) { - console.log("STUB :: Media#queueInsertItems"); + console.info("STUB :: Media#queueInsertItems"); } public queueJumpToItem ( itemId: number , successCallback?: SuccessCallback , errorCallback?: ErrorCallback) { - console.log("STUB :: Media#queueJumpToItem"); + console.info("STUB :: Media#queueJumpToItem"); } public queueMoveItemToNewIndex ( @@ -194,47 +193,47 @@ export default class Media { , newIndex: number , successCallback?: SuccessCallback , errorCallback?: ErrorCallback) { - console.log("STUB :: Media#queueMoveItemToNewIndex"); + console.info("STUB :: Media#queueMoveItemToNewIndex"); } public queueNext ( successCallback?: SuccessCallback , errorCallback?: ErrorCallback) { - console.log("STUB :: Media#queueNext"); + console.info("STUB :: Media#queueNext"); } public queuePrev ( successCallback?: SuccessCallback , errorCallback?: ErrorCallback) { - console.log("STUB :: Media#queuePrev"); + console.info("STUB :: Media#queuePrev"); } - public queueRemoveItem( + public queueRemoveItem ( itemId: number , successCallback?: SuccessCallback , errorCallback?: ErrorCallback) { - console.log("STUB :: Media#queueRemoveItem"); + console.info("STUB :: Media#queueRemoveItem"); } public queueReorderItems ( queueReorderItemsRequest: QueueReorderItemsRequest , successCallback?: SuccessCallback , errorCallback?: ErrorCallback) { - console.log("STUB :: Media#queueReorderItems"); + console.info("STUB :: Media#queueReorderItems"); } public queueSetRepeatMode ( repeatMode: string , successCallback?: SuccessCallback , errorCallback?: ErrorCallback) { - console.log("STUB :: Media#queueSetRepeatMode"); + console.info("STUB :: Media#queueSetRepeatMode"); } public queueUpdateItems ( queueUpdateItemsRequest: QueueUpdateItemsRequest , successCallback?: SuccessCallback , errorCallback?: ErrorCallback) { - console.log("STUB :: Media#queueUpdateItems"); + console.info("STUB :: Media#queueUpdateItems"); } public removeUpdateListener (listener: UpdateListener) { @@ -274,7 +273,7 @@ export default class Media { } public supportsCommand (command: string) { - console.log("STUB :: Media#supportsCommand"); + console.info("STUB :: Media#supportsCommand"); } diff --git a/ext/src/shim/media/classes/MediaInfo.ts b/ext/src/shim/media/classes/MediaInfo.ts index 308f086..38437be 100644 --- a/ext/src/shim/media/classes/MediaInfo.ts +++ b/ext/src/shim/media/classes/MediaInfo.ts @@ -27,7 +27,7 @@ export default class MediaInfo { public textTrackStyle: TextTrackStyle = null; public tracks: Track[] = null; - constructor ( + constructor ( public contentId: string , public contentType: string) {} } diff --git a/tslintCommon.json b/tslintCommon.json index 08adf00..888b2f5 100644 --- a/tslintCommon.json +++ b/tslintCommon.json @@ -21,6 +21,11 @@ , "semicolon": [ true, "always" ] , "space-before-function-paren": [ true, "always" ] , "trailing-comma": false + , "variable-name": [ true + , "ban-keywords" + , "check-format" + , "allow-pascal-case" + , "allow-leading-underscore" ] } , "rulesDirectory": [] }