Move comms to ts (3/3 | client)
This commit is contained in:
parent
c1e0e7b280
commit
57ad81a7a4
@ -1,19 +1,33 @@
|
|||||||
import Debug from '../../conf/Debug';
|
import Debug from '../../conf/Debug';
|
||||||
import BrowserDetect from '../../conf/BrowserDetect';
|
import BrowserDetect from '../../conf/BrowserDetect';
|
||||||
|
import Logger from '../Logger';
|
||||||
|
import { browser } from 'webextension-polyfill-ts';
|
||||||
|
import Settings from '../Settings';
|
||||||
|
|
||||||
if (process.env.CHANNEL !== 'stable'){
|
if (process.env.CHANNEL !== 'stable'){
|
||||||
console.info("Loading CommsClient");
|
console.info("Loading CommsClient");
|
||||||
}
|
}
|
||||||
|
|
||||||
class CommsClient {
|
class CommsClient {
|
||||||
|
commsId: string;
|
||||||
|
|
||||||
|
logger: Logger;
|
||||||
|
settings: any; // sus?
|
||||||
|
|
||||||
|
|
||||||
|
commands: {[x: string]: any[]};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_listener: (m: any) => void;
|
||||||
|
port: any;
|
||||||
|
|
||||||
|
|
||||||
constructor(name, logger, commands) {
|
constructor(name, logger, commands) {
|
||||||
|
try {
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
|
|
||||||
if (BrowserDetect.firefox) {
|
this.port = browser.runtime.connect(null, {name: name});
|
||||||
this.port = browser.runtime.connect({name: name});
|
|
||||||
} else if (BrowserDetect.anyChromium) {
|
|
||||||
this.port = chrome.runtime.connect({name: name});
|
|
||||||
}
|
|
||||||
|
|
||||||
this.logger.onLogEnd(
|
this.logger.onLogEnd(
|
||||||
(history) => {
|
(history) => {
|
||||||
@ -32,6 +46,9 @@ class CommsClient {
|
|||||||
this.commsId = (Math.random() * 20).toFixed(0);
|
this.commsId = (Math.random() * 20).toFixed(0);
|
||||||
|
|
||||||
this.commands = commands;
|
this.commands = commands;
|
||||||
|
} catch (e) {
|
||||||
|
console.error("CONSTRUCOTR FAILED:", e)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
destroy() {
|
destroy() {
|
||||||
@ -60,34 +77,11 @@ class CommsClient {
|
|||||||
|
|
||||||
async sendMessage_nonpersistent(message){
|
async sendMessage_nonpersistent(message){
|
||||||
message = JSON.parse(JSON.stringify(message)); // vue quirk. We should really use vue store instead
|
message = JSON.parse(JSON.stringify(message)); // vue quirk. We should really use vue store instead
|
||||||
|
return browser.runtime.sendMessage(null, message, null);
|
||||||
if(BrowserDetect.firefox){
|
|
||||||
return browser.runtime.sendMessage(message)
|
|
||||||
} else {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
try{
|
|
||||||
if(BrowserDetect.edge){
|
|
||||||
browser.runtime.sendMessage(message, function(response){
|
|
||||||
var r = response;
|
|
||||||
resolve(r);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
chrome.runtime.sendMessage(message, function(response){
|
|
||||||
// Chrome/js shittiness mitigation — remove this line and an empty array will be returned
|
|
||||||
var r = response;
|
|
||||||
resolve(r);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(e){
|
|
||||||
reject(e);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: sus function — does it get any use?
|
||||||
async requestSettings(){
|
async requestSettings(){
|
||||||
this.logger.log('info', 'comms', "%c[CommsClient::requestSettings] sending request for congif!", "background: #11D; color: #aad");
|
this.logger.log('info', 'comms', "%c[CommsClient::requestSettings] sending request for congif!", "background: #11D; color: #aad");
|
||||||
|
|
||||||
@ -99,12 +93,12 @@ class CommsClient {
|
|||||||
return Promise.resolve(false);
|
return Promise.resolve(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.settings.active = JSON.parse(response.extensionConf);
|
this.settings = {active: JSON.parse(response.extensionConf)};
|
||||||
return Promise.resolve(true);
|
return Promise.resolve(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
async sendMessage(message) {
|
async sendMessage(message) {
|
||||||
await this.sendMessage_nonpersistent(message);
|
return this.sendMessage_nonpersistent(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
registerVideo(){
|
registerVideo(){
|
Loading…
Reference in New Issue
Block a user