Reformat extension message definitions

This commit is contained in:
hensm
2021-04-24 02:37:51 +01:00
committed by Matt Hensman
parent 16c2c797d3
commit d806bfcf0c
10 changed files with 197 additions and 250 deletions

View File

@@ -11,7 +11,7 @@ interface TabConnectInfo {
frameId: number;
}
export default class Messenger<T extends any[]> {
export default class Messenger<T> {
connect (connectInfo: RuntimeConnectInfo) {
return browser.runtime.connect(connectInfo) as
unknown as TypedPort<T>;

View File

@@ -1,11 +1,11 @@
"use strict";
const portMap = new WeakMap<any, browser.runtime.Port>();
const portMap = new WeakMap<TypedPort<any>, browser.runtime.Port>();
/**
* Allows typed access to a runtime.Port object.
*/
export class TypedPort<T extends any[]> {
export class TypedPort<T> {
public name: string;
public error?: { message: string };
public sender?: browser.runtime.MessageSender;
@@ -36,18 +36,18 @@ export class TypedPort<T extends any[]> {
};
public onMessage = {
addListener: (cb: (message: T[number]) => void) => {
portMap.get(this)?.onMessage.addListener(cb);
addListener: (cb: (message: T) => void) => {
portMap.get(this)?.onMessage.addListener(cb as any);
}
, removeListener: (cb: (message: T[number]) => void) => {
portMap.get(this)?.onMessage.removeListener(cb);
, removeListener: (cb: (message: T) => void) => {
portMap.get(this)?.onMessage.removeListener(cb as any);
}
, hasListener: (cb: (message: T[number]) => void) => {
, hasListener: (cb: (message: T) => void) => {
return portMap.get(this)?.onMessage.hasListener(cb as any) ?? false;
}
};
public postMessage (message: T[number]) {
portMap.get(this)?.postMessage(message);
public postMessage (message: T) {
portMap.get(this)?.postMessage(message as any);
}
}

View File

@@ -5,7 +5,7 @@ import semver from "semver";
import { TypedPort } from "./TypedPort";
import logger from "./logger";
import { Messages, Message, Port } from "../messaging";
import { Message, Port } from "../messaging";
import nativeMessaging from "./nativeMessaging";
import options from "./options";